
class CMyClassInDll : public IMyClassInDll
{
......
}
LPVOID PASCAL CreateObject()
{
return (LPVOID) new CMyClassInDll
}
然后在要调用该DLL的模块里也include那个抽象基类的头文件,然后定义一个该抽象基类的指针:
IMyClassInDll *pObj
加载DLL,获得从DEF里输出那个函数CreateObject(),怎么获得不说了,是一般方法了。
然后: pObj = (IMyClassInDll *)CreateObj()
OK啦,现在你可以通过 pObj->来使用CMyClassInDll类啦!最后要注意的是,好像用完后,
delete pObj会出错?我不清楚。反正你在IMyClassInDll里声明一个类似Release的函数,在该函数里delete this就成了!
这实际就是COM(至少是进程内组件)的C++实现的理论基础。是一个最简化版本的COM组件。
可以定义类,并导出。如果另一个工程也是C++的话,使用比较简单,包含导出的类的定义的头文件,添加lib即可。
如果是跨语言,那就没有c格式的函数容易使用了。。
找另一台的电脑上去复制下这个缺失的文件。可以尝试使用腾讯电脑管家来修复缺失DLL文件
1、打开腾讯电脑管家
2、电脑诊所
3、软件问题
4、丢失.Dll 文件
5、一键修复
6、完成
如果还是解决不了,去下一个文件直接复制进去就能搞定了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)