我正在开发一个SDK,我们的客户端仍然使用VC ++ 6进行编码,而其他客户使用Visual Studio 2005和其他人使用2008.
目前,我们构建了几种SDK,我们用这些编译器构建完全相同的源代码。我想知道这是否真的有必要。使用VS2008构建我们的SDK(采用DLL的形式)是否安全,并期望使用VC ++ 6的客户能够毫无问题地使用它?
答案 0 :(得分:2)
取决于。您的DLL是否依赖于VC运行时,MFC或ATL?如果是这样,您的客户将不得不分发这些dll。你的DLL是否导出C ++结构/类/函数? C ++没有标准化的ABI,因此它们可能会也可能不会与其他编译器一起使用。如果你的dll只输出extern“C”{}风格,你会没事的。
答案 1 :(得分:0)
如果您不允许客户端程序删除SDK中分配的内存,则非常安全。反之亦然。
答案 2 :(得分:0)
如果DLL具有纯C API,则您的可执行文件永远不会释放DLL分配的任何资源(反之亦然),那么它应该可以工作。