2009-05-06 93 views
2

如何在Visual Studio 2003项目中使用通过Visual Studio 2008编译的DLL和库?是否可以使用VS2003构建的VS2003解决方案库?

感谢, 丹

+0

我想澄清一下,我使用没有.Net依赖关系的C++。 – DanJ 2009-05-06 17:21:36

+0

我确实有指向传入参数的C++类的指针。建议删除这些并仅使用本机类型? stl类型如const std :: string&?怎么样? – DanJ 2009-05-06 17:23:42

回答

1

你绝对可以使用DLL。我在VS2003和VS2008中使用了相同的第三方DLL。为了使事情变得更容易,您只应将简单的旧数据类型传递给DLL函数。结构或类要困难得多,但在大多数情况下VS2003和VS2008之间也应该是可行的。

查看this questions了解更深入的信息,比我能给你的更多。

0

你不能做到这一点。唯一可能的事情是重新编译为.NET 1.x.

+0

为什么你会认为这是与.NET相关的? – Aardvark 2009-05-06 15:46:34

1

一般而言,除非其中一个编译器被明确列为与另一个编译器兼容的二进制文件,否则您不可能将编译后的C++库(动态或静态)用于其他编译器。

一些答案提到'第三方'或Windows DLL。然而,我敢打赌,大多数(如果不是全部的话)这些DLL使用C API而不是C++。 C++ ABI(应用程序二进制接口)不是标准化的 - 像名称修改这样的东西不能保证在同一编译器的不同版本中是相同的,并且调用约定可以根据编译器选项而变化。

快速谷歌搜索不转了,看起来使用的任何链接,但正如我在开始时说,在一般情况下,你不能使用编译C++库,静态或动态的,在代码中使用不同的编译编译器。 C是一个不同的野兽,那答案是完全不同的!