dll导出C++类的方式
C++类通常有3中导出方式,具体可以参考这篇博客:
Dll导出C++类的3种方式
简单来总结一下:
一、纯C语言方式,类似显式传递this指针
缺点
- 调用创建对象函数的时候编译器无法判断类型是否匹配
- 需要手动调用Release函数,一旦忘记则会造成内存泄露
- 如果导出的函数的参数支持除基本数据类型以外的其他类型的参数(例如:class),则也得为这些类型提供接口。
二、直接导出C++类
缺点:
-
这种方式虽然简单易用,但是局限性很大,而且后期维护会很麻烦,除了导出的东西太多、使用者对类的实现依赖太多之外,还有其它问题:必须保证使用同一种编译器。导出类的本质是导出类里的函数,因为语法上直接导出了类,没有对函数的调用方式、重命名进行设置,导致了产生的dll并不通用。
-
Dll地狱问题,假设DLL需要升级,对CDll进行了修改,增加了一个成员变量m_n2,其他的都不改变
总结起来,其实是一句话:导出类的DLL