W
woodstock
Unregistered / Unconfirmed
GUEST, unregistred user!
一个程序调用一个DLL,被调用的DLL是一个窗口,
exports
ShowCalendar;
函数声明:
TDLLForm = class(TForm)
calDllCalendar: TCalendar;
end;
function ShowCalendar(AHandle: THandle; ACaption: String; pParent: TWinControl): Longint;
var
DLLForm: TDllForm;
begin
Application.Handle := AHandle; //主程序的Application.Handle赋给DllForm
DLLForm := TDLLForm.Create(Application);
DLLForm.Parent := pParent; // !疑点!
Result := Longint(DLLForm);
DLLForm.Caption := ACaption;
DLLForm.Show;
end;
在程序中调用如下:
ShowCalendar(Application.Handle, Caption, Panel1)
结果:错误!
分析:我的目的是要把DLL窗口 显示在Panel1 上面,即:DLLForm.Parent := pParent
如果在同一个程序中完全可以这么使用的,但是在动态库中,运行错误。
不知道大侠们有什么好的解决办法,谢谢。
exports
ShowCalendar;
函数声明:
TDLLForm = class(TForm)
calDllCalendar: TCalendar;
end;
function ShowCalendar(AHandle: THandle; ACaption: String; pParent: TWinControl): Longint;
var
DLLForm: TDllForm;
begin
Application.Handle := AHandle; //主程序的Application.Handle赋给DllForm
DLLForm := TDLLForm.Create(Application);
DLLForm.Parent := pParent; // !疑点!
Result := Longint(DLLForm);
DLLForm.Caption := ACaption;
DLLForm.Show;
end;
在程序中调用如下:
ShowCalendar(Application.Handle, Caption, Panel1)
结果:错误!
分析:我的目的是要把DLL窗口 显示在Panel1 上面,即:DLLForm.Parent := pParent
如果在同一个程序中完全可以这么使用的,但是在动态库中,运行错误。
不知道大侠们有什么好的解决办法,谢谢。