604
社区成员
发帖
与我相关
我的任务
分享
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//说明Delphi Dll文件内函数的指针
HANDLE __stdcall (*NewButton)(HANDLE handle);
//取得此Dll文件函数地址
(FARPROC &) NewButton=GetProcAddress(hInst,"NewButton");
//调用Dll文件函数
btn = NewButton(this);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
//说明Delphi Dll文件内函数的指针
int __stdcall (*DeleteButton)(HANDLE handle);
//取得此Dll文件函数地址
(FARPROC &) DeleteButton=GetProcAddress(hInst,"DeleteButton");
DeleteButton(btn);
FreeLibrary(hInst);
}
HANDLE __stdcall NewButton(HANDLE parent)
{
TWinControl* ctl = (TWinControl*)(parent);
TButton* btn = new TButton(ctl);
btn->Parent = ctl;
btn->Top = 100;
btn->Left = 100;
btn->Caption = "test";
return (HANDLE)btn;
}
int __stdcall DeleteButton(HANDLE button)
{
TButton* btn = (TButton*) button;
delete btn;
return 0;
}
//说明Delphi Dll文件内函数的指针
int __stdcall (*FormShow)(HWND handle);
//将Delphi编写的Dll文件载入
HINSTANCE hInst = LoadLibrary("..\\DLLFormDemo.dll");
//取得此Dll文件函数地址
(FARPROC &) FormShow=GetProcAddress(hInst,"FormShow");
//调用Dll文件函数
FormShow(this->Handle);
//释放Dll文件
FreeLibrary(hInst);
int __stdcall FormShow(HWND handle)
{
Dynamic_Form = new TDynamic_Form(NULL);
Dynamic_Form->ShowModal();
delete Dynamic_Form;
return 0;
}