dll文件:
function  ShowForm():boolean;stdcall;
  begin
                Application.createform(TfrmLive,frmLive);
                frmLive.Show;
                ShowForm:=true;
  end;
  exports
  ShowForm;
dll中的窗体文件:
procedure TfrmLive.bbtnCloseClick(Sender: TObject);
begin
        frmLive.close ;
end;其它程序调用时只要执行:bbtnCloseClick,整个程序就关闭了,这是为什么?
在ShowForm()中加上application.handle 类型的参数也不行
另外:还有这个dll中的 ShowForm函数在vb中如何调用?我测试时出现无法找到入口点的错误。

解决方案 »

  1.   

    是不是Auto Create 窗体的问题
      

  2.   

    function  ShowForm(handle:cardinal):boolean;stdcall;
      begin
                   Application.handle:=handle;
                    Application.createform(TfrmLive,frmLive);
                    frmLive.Show;
                    ShowForm:=true;
      end;
      exports
      ShowForm;
    ShowForm(Application.handle);
      

  3.   

    var 
    Global_App:TApplication;
    function ShowForm(App: TApplication;):  stdcall;
    begin
      Global_App := App;
      frmLive:= TFrmClient.Create(Global_App);
    ......
    这样用吧,没有测试,应可以的吧