DLL里面封装类和调用的问题
请问在DLL里面是怎样封装类和客户端是怎么调用的?谢谢!
[解决办法]
参考下这个
http://topic.csdn.net/t/20060701/16/4854694.html
[解决办法]
如果可能强烈建议你用static lib。dll实在有很多的限制,这个处理起来是相当繁琐的。
对于类对象,如果是要封装类细节的话,采用类com的方式来实现,即定义一个纯虚类作为接口,实现类派生自这个纯虚类,然后给一个函数创建一个对象,返回一个纯虚类的接口。之所以这么做,是因为你只能得到函数指针,而无法得到“类定义”的指针。
否则的话应该用生成的lib库链接你的代码,可以直接使用类定义(记得为你的dll定义中加上相应的限定符__declspec(dllexport)以导出符号)。
这取决于你为什么要用dll,如果是为了以后升级方便,应当采用第一种,这种方式最灵活,替换dll就可以更换接口对应的对象,如果是单纯为了共享,就用第二种,实现上简单点。
dll和调用者之间有一层很深的“隔阂”——dll代码和调用者的代码往往是运行在不同的代码段里的,这为2者之间的通信会造成很大的麻烦。