【发布时间】:2011-04-24 13:50:57
【问题描述】:
我们有一个客户想要将一堆 VB6 项目转换为 VC++ 本地代码。我想知道是否有任何工具可用于此类转换。
我们尝试了http://vbto.net/,它可以转换,但会产生大量编译错误。该工具将所有 cpp 项目创建为“exe”,而许多源 VB6 项目是“activex dll”。
VB6 项目如何映射到 VC++ 项目?例如,“activex dll”是否映射到 vc++ ATL 项目?我们应该注意什么?如果您能分享您的经验,我们将不胜感激。
(是的,我们的第一反应是建议转换为 VB.NET/C#,但程序需要在没有安装 .NET 框架的机器上运行,并且还调用 kernel32.dll 中的方法)
【问题讨论】:
-
为什么要转换成 C++?有什么好处?顺便说一句,.Net 框架作为 Windows 的一部分安装在最新版本上,您可以通过 Pinvoke 从 .Net 调用 Kernel32。尽管您很可能在不调用 Kernel32 的情况下在纯 .Net 中实现相同的效果。
-
为什么要转换?如果你不能证明重写当前程序应该没问题。使用自动工具转换的任何大小的 VB6 项目都将难以维护。
-
我们确实最终使用了 vbto.net 并手动修复了编译器错误。这很困难,但我们成功地移植了代码。完全重写对我们来说不是一个选项,因为运行应用程序的新系统没有安装任何 .net 运行时或 Visual Basic dll。
标签: visual-c++ vb6