to:Focus(老鱼) :
我搜索贴子的时候,看见有人说可以。是一个叫做hanlen的。他到处跟人说
他有实现了的源代码,需要在源程序和DLL中努力。我想找找看。
我现在等着这个东西急用,所以拿出全部家当了。
还没有谢谢你帮忙呢。
另外,我的绰号过些时候再修改。:-)
我搜索贴子的时候,看见有人说可以。是一个叫做hanlen的。他到处跟人说
他有实现了的源代码,需要在源程序和DLL中努力。我想找找看。
我现在等着这个东西急用,所以拿出全部家当了。
还没有谢谢你帮忙呢。
另外,我的绰号过些时候再修改。:-)
我查了,没有,可以重新发一个给我吗?to:大家
另外,千山解决了这个问题,但是,程序不能能正常退出。下面转贴千山的代码。回复人: liang_z(千山一刀之忍者神龟) (2001-11-5 16:23:56) 得0分
首先:Dll和Exe都要带包编译
dll 工程文件中:
var
DllApp : TApplication;
{$R *.RES}procedure MyDLLProc(Reason: Integer);
begin
// DLL is unloading. Restore the Application pointer.
if Reason = DLL_PROCESS_DETACH then
begin
if Assigned(DllApp) then
Application := DllApp;
end;
end;procedure EnterMdiChild(MainApp:TApplication);stdcall;export;
var
Child : TForm1;
begin
if not Assigned(DllApp) then
begin
DllApp := Application;
Application := MainApp;
end; try
Child := TForm1.Create(Application);
Child.Show();
except
Child.Free();
end;
end;exports
EnterMdiChild;begin
DLLProc := @MyDLLProc;
end.以下为EXE中调用:
调用函数
procedure TFormMain.Button1OnClick(Sender:TObject);
begin
EnterMdiChild(Application);
end
谢谢,你的方法是对的。
再三感谢恶人。Delphi原本就这样友好嘛。