谁能告诉我如何将 vb6(COM dll 的 ocx 和 exe)的遗留应用程序转换为使用 Regfree COM 。
我尝试在 Visual Studio 中打开 dll 并创建 list 文件,但其中一些 dll 出现错误。
是否有任何工具可以帮助我完成此过程?
我尝试了 codeproject 中的一个名为 regsvr42 的工具,它没有完全创建 list 。
我使用了像 PE explorer 这样的工具来获取所有 typelib 信息,但是将它们转换为 list 文件太困难了。
我们已经开始将它迁移到 .NET,几个月来我们必须部署它,如果它是基于 xcopy 的部署会更容易。
最佳答案
要创建 list 文件,您可以尝试使用来自 http://mmm4vb6.atom5.com/ 的 Make My Manifest。 .
编辑 MMM 网站已关闭。我看到here作者在托管方面遇到了问题,并提供了另一个位置来获取 Make My Manifest - download it here .
如果您可以控制对象的创建,您可以使用来自 http://www.thecommon.net/10.html 的 DirectCOM
请记住,如果使用的 DLL 或 OCX 之一正在使用 CreateObject 调用动态创建其他 COM 对象,则该引用将不会存储在 vbp 项目文件中,您将不会获得完整的 list 文件。可能您将不得不在应用程序运行时捕获对象创建。 Depends.exe 应用程序可以分析正在运行的应用程序并报告所有使用的 dll。不知道有没有工具可以找到额外的COM相关信息。
关于deployment - vb6 xcopy 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/270523/