将字符串 table(二进制 .res 文件)从 VB6 迁移到 VB.NET

Migrating a string table (binary .res file) from VB6 to VB.NET

我必须将一个旧的 VB6 程序移植到 VB.NET 并且偶然发现了一个以二进制格式存储的旧“.res”(资源)文件。使用 VS 2013,我可以将该文件嵌入到我的 .NET 项目中,并且 VS 显示它只包含一个字符串 table。

问题是,我不知道如何将这些 res 文件转换为更现代的文本格式,或者如何直接从 res 文件加载字符串。我将文件链接到我的应用程序 es 一个嵌入式资源,但我尝试使用 "Visual Basic Compatibility library" 中的 VB6.LoadResString 的所有尝试都会导致异常,显示未找到密钥。

此外,VS 似乎不允许我将 copy/paste 字符串 table 放入文本文件中,至少,不允许我将其 copy/paste 放入文本文件中。实际上,它允许我 copy/paste 一个接一个地字符串,但是正如您可以想象的那样,这非常麻烦且容易出错。这就是为什么我正在寻找更好的解决方案。有什么想法吗?

将 .res 文件嵌入一个简单的 VB6 程序,该程序从最小 ID 循环到最大 ID,并使用 LoadResString(缺少 ID 的错误陷阱)将字符串写入文本文件。

有一个功能性的 VB6 Class 可以在以下位置执行此操作:

ResDecomp Class Decompiles RES Files

包含示例程序,其中一个是 "viewer" 的一种,另一个只是将 RT_STRING 资源字符串提取到 XML 文档中。您可以轻松地更改后者以将字符串值转储到文本文件、数据库等。