to:Focus(老鱼) :
  我搜索贴子的时候,看见有人说可以。是一个叫做hanlen的。他到处跟人说
他有实现了的源代码,需要在源程序和DLL中努力。我想找找看。
  我现在等着这个东西急用,所以拿出全部家当了。
  还没有谢谢你帮忙呢。
  另外,我的绰号过些时候再修改。:-)

解决方案 »

  1.   

    to:dongys_2000(dongys) :
      我查了,没有,可以重新发一个给我吗?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
     
      

  2.   

    其实很简单,只要exe和dll使用runtime packages就行了。以前回答过的。
      

  3.   

    to:hellion(恶人):
       谢谢,你的方法是对的。
      

  4.   

    to:hellion(恶人):
      再三感谢恶人。Delphi原本就这样友好嘛。
      

  5.   

    我也要一份,谢谢[email protected]