如何在Delphi应用中共享VC++编制的DLL中的对象,和类???(100分)

Z

Zyee

Unregistered / Unconfirmed
GUEST, unregistred user!
本人想在Delphi5中调用一VC的DLL,该DLL的不少函数是通过Object,Class来实现的,在Dephi<br>中调用此类的DLL有何约定,class 的定义是否只需申明成 virtual,abstract 便可?如何取得<br>class的指针??....<br>望大家出出注意,指点指点<br>
 
loadlibrary()
 
这是基本不可能的!
 
是的,好象在Delphi中是不经常这样用的,<br>不过在VC++中,我们可以方便地编写class,Object共享的DLL,只要在相应的.h中修改<br>__declspec(dllimport)/__declspec(dllexport),AFX_EXT_CLASS即可,<br>我想在delphi中肯定有办法引用的.
 
VC中的函数用 extern "C" + __stdcall 调用是完全可以在 Delphi 中使用的,<br>而不管 VC 内部是否使用 MFC ------- Windows 有现成的 MFC,<br>用不着另外的安装。<br><br>但至于类,似乎只有接口或者类型库能在 Delphi 中使用;现成的<br>类是无法使用的 ------------ 如果不进行特殊处理,Delphi 本<br>身就不能实现自身的类导出,而必须采用接口或者与接口相似的处理<br>才行。<br><br>------------- 不要在 DLL 中导出类,否则你迟早会被它拖垮的!<br>接口或者过程(函数)是当前 DLL 唯一能正确处理的东西。
 
VC++编制的DLL中的对象需做成ACTIVEX DLL,DeLphi则作为控件使用。
 
直接从DLL导出class肯定是不行的<br>我现在是这样试的,先从DLL导出一个函数,用以取得要引用的class的指针,然后再试着引用<br>需要的函数,过程,可是每次都是class的指针好象是取到了,可是继续引用的话就是抱 <br>access error<br>难道delphi中真的没有办法了吗 ?
 
大家知道,在VC中只需简单的定义<br><br>#ifdef _CLASSINDLL<br> #define CLASSINDLL_CLASS_DECL &nbsp; &nbsp; &nbsp; __declspec(dllexport)<br>#else<br> #define CLASSINDLL_CLASS_DECL &nbsp; &nbsp; &nbsp; __declspec(dllimport)<br>#endif<br><br>class CLASSINDLL_CLASS_DECL CInDLL &nbsp;<br>{<br>public:<br> CInDLL();<br> virtual ~CInDLL();<br><br> void TestIt();<br><br>};<br><br>在VC++中便可以很容易的编写,调用包含类CInDll的动态库的<br><br><br>
 
接受答案了.
 

Similar threads

D
回复
0
查看
795
DelphiTeacher的专栏
D
D
回复
0
查看
823
DelphiTeacher的专栏
D
顶部