我有几个基于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 ++(即,如果需要重新编码那么少)?
如果是的话,我应该注意哪些“陷阱”?
感谢。
答案 0 :(得分:2)
各种版本的VS.Net可以在一定程度上打开旧的.Net项目,但是它们都不能打开任何pre-.Net,包括任何一种语言的6.0。
您应该能够在其中一个.Net VS应用程序中创建一个新的C ++项目,并在那里重建您的C ++项目,它应该可以工作,因为非托管C ++代码不需要.Net运行时(它仍然可以编译为原生机器代码),但是我在很长一段时间内没有做太多的C ++,所以我不确定100%它会起作用。
答案 1 :(得分:0)
是的,但这有点痛苦。这就是大多数商店坚持使用VC6的原因。我承认我没有在Windows 98上测试COM DLL,但是早在NT 4.0 w / Visual Studio 2005上就已经测试过了。
我想强调的是没有最小的努力。根据代码的编写方式,转换可能非常痛苦。在一个项目中,搜索&替换10个问题中的9个。因人而异。您可能需要重写一些低级COM管道。