【发布时间】:2011-04-19 15:53:19
【问题描述】:
考虑将 C++ API 定义为一系列 __options(declexport/import) 类。
此外,假设调用者永远不允许在这些类上调用普通的operator new(size_t)。要么是静态工厂方法,要么是特定于类的operator new。并且根据需要在删除大小上做同样的标记(通常只是一个虚拟析构函数)。
现在,如果您使用 VS2010 中的工具编译和链接一个 DLL 和一个 IMPLIB,您可以将那个 implib 和 DLL 交给 VS2005 的用户并期望它工作吗?
这里根本不涉及 MFC。
我将特别感谢任何关于该主题的相对正式的 Microsoft 声明的引用。
【问题讨论】:
-
您的测试结果如何?
-
简单案例有效。打哈欠。
-
那太好了!听起来你做的一切都是正确的。
-
对我来说不是。我担心(a)一些不起眼的例外情况会爆炸,或者(b)MS保留从我下面拉出地毯的权利。所以我希望能找到比我更早的人来过这里,或者这一切真的有一个明确的“官方”声明。
-
我的回答保持不变:不要传入特定于版本的实现类型。通过查看
MSVC100P.DLL的导出输出最容易找到此列表。
标签: visual-studio visual-c++ backwards-compatibility