DLL导出类,谁搞过?~~~~~1.7号结贴,决不当滥贴~~~~~~~`
如题;研究一下
我知道使用
class __declspec (dllexport) TMyClass
这样子可以导出类,其中public:的函数确实也可以调用,
问题来了,,,,public:中的成员有没有办法可以调用~
我在我的一个类中输出一个Graphics::TBitmap *pbmp;
这个成员在主程序中却无法得到对应的图形;
而在DLL中让他输出的图形是对的~~~~~~~~~~
郁闷~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[解决办法]
如果是public的可以调用的,外面要对类进行定义。
bcb我没弄过,delphi以前倒是做过。
印象中是delphi6开发指南里面就有一章讲导出类
[解决办法]
既然类都正常导出了
public的成员应该能正常被exe用啊
当然你知道
必须静态使用Dll的
dll中用MDI窗体会遇到麻烦
其他没障碍啊
[解决办法]
http://www.csdnback.com/ForumsView/t/20040815/16/3276228.html
http://www.cppblog.com/sunraiing9/archive/2006/12/13/16363.html
找了2篇C++的,觉得不是很详细。你看看有没有用。
[解决办法]
现在没有时间研究这个东西啦
[解决办法]
public中的成员应该是可以使用的,不过现在不提倡这样做。
最好的方法是用接口,导出类的话最好也是模仿接口,尽量用方法(Method)隐藏实现细节,而不是直接访问成员变量。
[解决办法]
好像最近MEFULEU一直在研究DLL嘛:)
在DLL Wizard生成的文件里注释说:在DLL外new或delete 一个DLL里不是从TObject继承的类要加入一个什么.Lib(BorlandMM.dll的导出库),不知道是不是这个原因.
偶最近也在搞这个东东,注释里说传AnsiString或含有AnsiString的结构或类时也要加这个Lib,到时还要把BorlandMM.dll一起发布,偶在想传 AnsiString* 是不是就可以不用这个Lib了呢,试了一下还行,不过这东西本来就是有时有问题,不敢确定啊~~郁闷:(
[解决办法]
我只是想访问不是函数的成员。--什么叫不是函数的成员?
公共部分的成员变量是可以的,不过你要在项目里面加入这个类的h文件才行.
不过如shadowstar说的,一般也不提倡这样做.建议你看com之类的东西,对你搞这方面有帮助!