4

我有几个基于 ATL/COM 的 DLL,我一直在使用 Visual C++ 6.0。我需要从生成的 DLL 中提取一些“旧”的东西:

(1) 它们必须与使用 Visual Basic 6.0(旧的 VB6,强调不是 VB.Net)开发的项目兼容。

(2) 它们必须与旧操作系统兼容 - 最低为 Windows 98 SE。需要明确的是,我的意思是它们必须在这样的操作系统上运行,而不是我必须能够在运行这样的操作系统的机器上开发它们。

我厌倦了 Visual Studio 6.0。转换为 Dot Net(或任何其他类似的重大更改)目前是不可能的,所以我必须继续使用 VB6。但是我可以用最少的努力(即如果需要重新编码的话)切换到较新的 Visual Studio 的 C++ 吗?

如果是这样,是否有任何我应该注意的“陷阱”?

谢谢。

4

2 回答 2

2

不同版本的 VS.Net 可以在一定程度上打开较旧的 .Net 项目,但它们都不能打开任何 .Net 之前的任何东西,包括任何一种语言的 6.0。

您应该能够在其中一个 .Net VS 应用程序中创建一个新的 C++ 项目并在那里重建您的 C++ 项目,并且它应该可以工作,因为非托管 C++ 代码不需要 .Net 运行时(并且它仍然可以编译为本机机器代码),但是我很久没有做过太多 C++ 了,所以我不确定 100% 它会起作用。

于 2010-03-31T19:36:57.940 回答
0

是的,但它是轻微的痛苦。这就是为什么大多数商店都坚持使用 VC6。我承认我没有在 Windows 98 上测试过 COM DLL,但可以追溯到 NT 4.0 w/Visual Studio 2005。

我想强调一点,没有最小的努力。根据您的代码编写方式,转换可能会非常痛苦。在一个项目中,搜索和替换修复了 10 个问题中的 9 个。YMMV。您可能需要重写一些低级 COM 管道。

于 2010-03-31T19:45:06.940 回答