【发布时间】:2015-08-11 19:43:04
【问题描述】:
我是在 C++ 中使用 DLL 的新手,我想知道如何成功加载和使用 DLL 中包含的类不会出现“损坏的堆栈”、“空指针”或任何应用程序崩溃 ^^。这让我现在有点困惑。 即使它可能更安全,我也不想使用接口类,因为它似乎使用起来太复杂了。我知道我应该在 DLL 和应用程序中包含相同的内容以防止崩溃。这意味着我的包含文件应该提到成员名称。
问题出在这里:
我想分发我的软件(DLL + 包含文件)但我不想 我的客户看到我的项目的架构。但唯一的班级 我想从我的 DLL 中导出,作为成员,来自其他对象的对象 类。所以我的班级依赖于其他班级等等 级联。
是否可以只提供一个类的一个包含文件,只提供有用的方法而不会有崩溃的风险?如果不是,哪些解决方案可能适合我的需求?
谢谢
【问题讨论】:
-
谢谢,这是一个有趣的话题,但我正在寻找一种不涉及使用接口类的方法。我想知道这是否可能。
-
@PadThai:不要使用接口类,使用接口的裸函数。这样,您就不会依赖于 C++ 类布局中特定于供应商和版本的变化。 Windows 有一个 C ABI,但 C++ 对象没有那么标准化(COM 涵盖的部分除外,它不包括数据成员)。
标签: c++ c++11 visual-c++ dll include