读书人

DLL里面封装类和调用的有关问题

发布时间: 2012-02-08 19:52:21 作者: rapoo

DLL里面封装类和调用的问题
请问在DLL里面是怎样封装类和客户端是怎么调用的?谢谢!

[解决办法]
参考下这个
http://topic.csdn.net/t/20060701/16/4854694.html
[解决办法]
如果可能强烈建议你用static lib。dll实在有很多的限制,这个处理起来是相当繁琐的。

对于类对象,如果是要封装类细节的话,采用类com的方式来实现,即定义一个纯虚类作为接口,实现类派生自这个纯虚类,然后给一个函数创建一个对象,返回一个纯虚类的接口。之所以这么做,是因为你只能得到函数指针,而无法得到“类定义”的指针。

否则的话应该用生成的lib库链接你的代码,可以直接使用类定义(记得为你的dll定义中加上相应的限定符__declspec(dllexport)以导出符号)。

这取决于你为什么要用dll,如果是为了以后升级方便,应当采用第一种,这种方式最灵活,替换dll就可以更换接口对应的对象,如果是单纯为了共享,就用第二种,实现上简单点。

dll和调用者之间有一层很深的“隔阂”——dll代码和调用者的代码往往是运行在不同的代码段里的,这为2者之间的通信会造成很大的麻烦。

读书人网 >C++

热点推荐