单独的程序没问题:
比如我单独做一个MDI程序 主窗口为MAINFORM(类型MDIFORM) 调用第二个窗口CHILDFORM1(类型 MDICHILD)
如果我在CHILDFORM1上调用第三个窗口CHILDFORM2(类型是NORMAL) 用的是如下的方法 VAR
CHILDFORM2:TCHILDFORM2;
BEGIN
CHILDFORM2:=TCHILDFORM2.CREAT(SELF);
CHILDFORM2.SHOWMODAL; //这样用摸态的 可以没问题
END; 改成DLL程序有问题
但现在的问题是 如果我把上面的设置都不变 而把第二个窗口和第三个窗口都写在一个DLL中 就不行了
代码都没变 问题出现在创建第三个窗口以MODAL显现时我在调用DLL的时候已经写了如下的代码
procedure DLLEntryPoint(dwReason: DWORD);
begin
case dwReason of
DLL_PROCESS_ATTACH:
begin
DLLScr := Screen;
DLLApp := Application;
end;
DLL_PROCESS_DETACH:
begin
Screen := DllScr;
Application := DllApp;
end;
end;
end;
begin
DLLProc := @DLLEntryPoint; //Assign the address of DLLEntryPoint to DLLProc
DLLEntryPoint(DLL_PROCESS_ATTACH); //Indicate that the DLL is attaching to the process
end.
比如我单独做一个MDI程序 主窗口为MAINFORM(类型MDIFORM) 调用第二个窗口CHILDFORM1(类型 MDICHILD)
如果我在CHILDFORM1上调用第三个窗口CHILDFORM2(类型是NORMAL) 用的是如下的方法 VAR
CHILDFORM2:TCHILDFORM2;
BEGIN
CHILDFORM2:=TCHILDFORM2.CREAT(SELF);
CHILDFORM2.SHOWMODAL; //这样用摸态的 可以没问题
END; 改成DLL程序有问题
但现在的问题是 如果我把上面的设置都不变 而把第二个窗口和第三个窗口都写在一个DLL中 就不行了
代码都没变 问题出现在创建第三个窗口以MODAL显现时我在调用DLL的时候已经写了如下的代码
procedure DLLEntryPoint(dwReason: DWORD);
begin
case dwReason of
DLL_PROCESS_ATTACH:
begin
DLLScr := Screen;
DLLApp := Application;
end;
DLL_PROCESS_DETACH:
begin
Screen := DllScr;
Application := DllApp;
end;
end;
end;
begin
DLLProc := @DLLEntryPoint; //Assign the address of DLLEntryPoint to DLLProc
DLLEntryPoint(DLL_PROCESS_ATTACH); //Indicate that the DLL is attaching to the process
end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货