在DLL中如何包含窗体,C++Builder6中方法如下:
(1)先包含接口文件,这是各个DLL中需要实现的功能,并在主窗口中调用这些接口。
#ifndef IDLLControlHPP
#define IDLLControlHPP
//DLL中的基本接口类,窗口消息处理须继承此类
class IDLLObject
{
public:
virtual void __fastcall Initialize(Forms::TApplication* AApp) = 0 ;
virtual void __fastcall UNInitialize(void) = 0 ;
virtual HANDLE __fastcall MergeForm(Controls::TWinControl* AParent) = 0 ;
virtual void __fastcall GetPulsVersion(char * PulsName,char * Version,char * description)=0;
virtual void __fastcall DelObject()=0;//卸载DLL中的窗体
virtual void __fastcall ShowObject(bool isShow)=0;//是否显示DLL中的窗体
};
#endif
(2)创建一个DLL工程,在其中添加一个窗口,边框设为bsNone.并添加如下事件处理函数。其他代码编写和平常创建窗口一样。
void __fastcall TfrmLogin::FormCloseQuery(TObject *Sender, bool &CanClose)
{
CanClose = caFree;
}
(3)每个DLL中的窗体中,