X
xuegaoyili
Unregistered / Unconfirmed
GUEST, unregistred user!
本人做一个窗体用DLL给封装了。在里面的可被调用函数是
rocedure ShowDllForm(wnd:THandle;titlechar);stdcall;
var
dfm:TForm1;
begin
try
application.Handle:=wnd;
dfm:=TForm1.Create(application);
dfm.Caption:=title;
dfm.ShowModal;
finally
dfm.Free;
end;
end;
(其中的TForm1是另一单元中的窗体类)
在VC6中我是这样调用的。
HINSTANCE hinstLib;
MYPROC ProcAdd;
hinstLib = LoadLibrary("Project1.dll"
if (hinstLib != NULL)
{
ProcAdd = (MYPROC) GetProcAddress(hinstLib, "ShowDllForm"
ProcAdd(GetSafeHwnd(), "这是指定标题"
// If the function address is valid, call the function.
// Free the DLL module.
FreeLibrary(hinstLib);
}
这此地方编译和执行都没问题的。问题在于,我在窗体上放了一个按钮,里面写了
close;这么一句关闭窗体的程序。一点就出错。
rocedure ShowDllForm(wnd:THandle;titlechar);stdcall;
var
dfm:TForm1;
begin
try
application.Handle:=wnd;
dfm:=TForm1.Create(application);
dfm.Caption:=title;
dfm.ShowModal;
finally
dfm.Free;
end;
end;
(其中的TForm1是另一单元中的窗体类)
在VC6中我是这样调用的。
HINSTANCE hinstLib;
MYPROC ProcAdd;
hinstLib = LoadLibrary("Project1.dll"
if (hinstLib != NULL)
{
ProcAdd = (MYPROC) GetProcAddress(hinstLib, "ShowDllForm"
ProcAdd(GetSafeHwnd(), "这是指定标题"
// If the function address is valid, call the function.
// Free the DLL module.
FreeLibrary(hinstLib);
}
这此地方编译和执行都没问题的。问题在于,我在窗体上放了一个按钮,里面写了
close;这么一句关闭窗体的程序。一点就出错。