使用Visual C ++ 6构建的应用程序是否可以使用Visual Studio 2008构建的DLL?

时间:2009-09-04 13:06:36

标签: visual-studio visual-studio-2008 visual-c++ compatibility

我正在开发一个SDK,我们的客户端仍然使用VC ++ 6进行编码,而其他客户使用Visual Studio 2005和其他人使用2008.

目前,我们构建了几种SDK,我们用这些编译器构建完全相同的源代码。我想知道这是否真的有必要。使用VS2008构建我们的SDK(采用DLL的形式)是否安全,并期望使用VC ++ 6的客户能够毫无问题地使用它?

3 个答案:

答案 0 :(得分:2)

取决于。您的DLL是否依赖于VC运行时,MFC或ATL?如果是这样,您的客户将不得不分发这些dll。你的DLL是否导出C ++结构/类/函数? C ++没有标准化的ABI,因此它们可能会也可能不会与其他编译器一起使用。如果你的dll只输出extern“C”{}风格,你会没事的。

答案 1 :(得分:0)

如果您不允许客户端程序删除SDK中分配的内存,则非常安全。反之亦然。

答案 2 :(得分:0)

如果DLL具有纯C API,则您的可执行文件永远不会释放DLL分配的任何资源(反之亦然),那么它应该可以工作。