关于交叉编译:使用在不同版本的Visual C中构建的库/ DLL

Using libs/DLLs built in a different version of Visual C++

如果第三方开发人员给我们提供了用VC 2005生成的.lib和/或.dll,它们可以在VC 2008中使用吗?如果他使用2008 Pro编译并且我们运行2008 Standard / Express,该怎么办?

我知道C不像以前那样具有可移植性,在VC运行时等方面也是如此,但是我想至少可以在较新版本的VC中使用预先存在的库/ dll。铅>


您将无法将2005 .lib与2008一起使用-它们链接到不同的运行时库,并且对象布局和vtable结构可能会略有不同。

您也许可以在不同版本之间使用.dll,但是这在很大程度上取决于.dll的界面。如果它导出类或方法,则将类作为参数或返回它们,则可能不会。


关于2008 Pro vs 2008 Standard / Express版问题,这些生成的代码100%兼容。我已经开始在Pro上进行项目,然后继续在Express上进行开发,反之亦然。

2008年各种版本生成的二进制文件将兼容。所有这些更改都是IDE中可用的功能。