0

我们的 VB6 程序当前调用 C++ dll 中的代码。这个 dll 不需要注册,它只需要一个 .def 文件来指定属性和方法。Vb6 后期绑定到它。该dll是用VS2005编写的,不依赖于Net框架。

由于我们正在将我们的应用程序迁移到 Net4 并且还想用新功能增强 C++ dll,我想知道如何将现有的 C++ 代码迁移到 VC++。我想此后 dll 将愉快地集成到我们已经包含 C# 和 VB.Net 库的解决方案中。

是否有一些关于该计划的注意事项的教程/文档?

编辑:我认为我对 VC++ 有一些基本的误解,认为它可以移植到 100% 托管代码,同时保持 C++ 语法。我得到的答复似乎表明 VC++ 将始终生成本机、非托管代码?

4

2 回答 2

2

从纯 C++ 的角度来看,您应该能够自动将 VS2005 解决方案和项目转换为 VS2010。如果我记得当您将解决方案或项目加载到 VS2010 中时,它会自动为您转换。

于 2012-04-19T12:34:22.923 回答
1

如果您在 VS2010 中打开 VS2005 项目文件,VS2010 会自动将旧项目转换为新项目格式,并且自动转换将尽最大努力确保一切正确。这通常有效,但并非总是如此。所以这里故事的寓意是,为了安全起见,仔细检查所有新项目的编译器/链接设置。

同样使用 VS2010,您可以在托管代码和本机代码之间获得更好的互操作可能性:P/Invoke 和 C++/CLI。P/Invoke 更简单,但你会发现这些东西可能会编译但在运行时会失败。C++/CLI 更灵活,工作量更大,但在必要时更容易调试互操作。

于 2012-04-19T12:45:44.663 回答