如何在C++Builder中使用Delphi控件

字號:

使C++Builder使用DelphiVCL類庫的方法基于Windows中較通用的DLL方式。在實(shí)際應(yīng)用中找到了將
    VCL控件轉(zhuǎn)化為DLL庫,在C++Builder動態(tài)調(diào)用DLL。此法適用于非可視VCL控件。
    假令在Delphi中有一Sample控件,有屬性Actived、Pro1、Pro2,欲將這個控件轉(zhuǎn)到C++Builder中使用。XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
    一、Delphi中DLL的制作
    在Delphi中新建一DLL項目SampleDLL,時在此項目中Create一個新的類TTtempcomp基類為TComponent即也為一個控件,在其中加入一個constructorCreate1,但不作任何動作;在DLL中加入要導(dǎo)出的屬性的Function(Actived、Pro1、Pro2)&Create、Destroy的框架,Exports中加入導(dǎo)出的Function、Procdure名稱;在DLL的主過程中對TTempcomp的實(shí)例temp1進(jìn)行Create1,另外保存出口和設(shè)置ExitProc;在OpenSample的函數(shù)中加入HwCtrl:=Sample1.Create(temp1)對Sample進(jìn)行實(shí)例化,對CloseSample和其它屬性加入相應(yīng)的語句;
    二、C++Builder中DLL的使用
    將Delphi中生成的DLL用implib生成LIB文件加入C++Builder的工程文件;
    在頭文件中加入
    extern "C" __declspec(dllimport) bool _stdcall OpenSample(void);
    extern "C" __declspec(dllimport) void _stdcall CloseSample(void);
    extern "C" __declspec(dllimport) bool _stdcall Actived (void);
    extern "C" __declspec(dllimport) int _stdcall Pro1 (void);
    extern "C" __declspec(dllimport) int _stdcall Pro2 (void);
    在OpenSample后你就可以使用Delphi中的屬性Actived、Pro1、Pro2