ddvboy(ddv) 
===========================
  谁得到谁的句柄? liuziran(倒立旋风转的青蛙) 
=============================
在什么时候传application的句柄给DLL
我调用DLL的函数的每个地方吗?
还是我的DLL需要有个专门的函数就是接收application的handle ?

解决方案 »

  1.   


    DLL:
    ------------------------------------------------------
    procedure  abc(wnd :HWND;var a :integer);stdcall;export;
    implementation
     procedure  abc(wnd :HWND;var a :integer);
     var
       Form1 :TForm1;
     begin
       try
        Form1 :=TForm1.Create(nil);
        wnd :=Form1.Handle;
        Form1.Show;
       except
        form1.Free;
       end;
        //... end;
    ----------------------------------------------------------------
    Call :
    procedure  abc(wnd :HWND;var a :integer);stdcall;external 'test.dll';
    implementation{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
    var
      a: Integer;
    begin
      //...
      abc(Application.Handle,a);
    end;
      

  2.   

    liuziran(倒立旋风转的青蛙) wnd :=Form1.Handle;
    这句可以吗?
    到时候会执行
    Application.Handle:=Form1.Handle;
      

  3.   

    你的dll函数是否使用了string类型?