如果第三方开发人员为我们提供了使用VC++ 2005生成的.lib和/或.dll文件,它们是否可以在VC++ 2008中使用?如果他编译2008 Pro,那么我们运行2008 Standard/Express?使用以不同版本的Visual C++构建的库/ DLL
我知道C++不像以前那样容易移植,VC++运行时等等,但我想至少我们可以在更新版本的VC++中使用预先存在的库/ DLL。
如果第三方开发人员为我们提供了使用VC++ 2005生成的.lib和/或.dll文件,它们是否可以在VC++ 2008中使用?如果他编译2008 Pro,那么我们运行2008 Standard/Express?使用以不同版本的Visual C++构建的库/ DLL
我知道C++不像以前那样容易移植,VC++运行时等等,但我想至少我们可以在更新版本的VC++中使用预先存在的库/ DLL。
2008年将无法使用2005 .libs - 它们链接到不同的运行时库,而对象布局和vtable结构可能略有不同。
您可能能够在不同版本之间使用.dll,但它非常依赖于.dll的界面。如果它导出类或方法将类作为参数或返回它们,那么可能不会。
关于2008 Pro和2008标准版/ Express版问题,它们生成的代码是100%兼容的。我已经开始Pro项目,然后继续开发Express,反之亦然。
各种2008版本生成的二进制文件将兼容。所有这些变化都是IDE中可用的功能。
兼容的代码!=兼容的二进制文件。问题是,如果您在Express中构建的库可以与Pro中内置的应用程序链接,反之亦然。 – 2010-03-10 13:36:22
@John,我的回答可能措辞不妙。各种2008版本生成的二进制文件将兼容。所有这些变化都是IDE中可用的功能。 – ChrisF 2010-03-10 13:52:04
那么我可以使用多年前写的Windows系统DLL ......我可以看到你很可能在libs上是正确的。 – 2010-03-10 13:19:49
是的 - 正如我所说的,与.dll的兼容性取决于界面的种类。纯C接口,例如win32 api .dlls,是安全的。 – 2010-03-10 13:43:11