这样试试:
procedure ShowForm(OwnerApplication: TApplication; aName: string);
begin
  Application := OwnerApplication;
  CoInitialize(nil);
  With TModifyPasswordForm.Create(OwnerApplication) do
    try
      Label5.Caption := aName;
      ShowModal;
    except
      Free;
      CoUninitialize;     
    end;
end;

解决方案 »

  1.   

    dll中不要传递这个~~string类型的参数,改成pchar看看。
      

  2.   

    dll中不要传递这个~~string类型的参数,改成pchar看看。
      

  3.   

    用Borlandor(五角▲大民)的方法会在关闭DLL窗口时把主窗口一起关闭,而我需要把两个窗口一个个关闭。
      

  4.   

    用Borlandor(五角▲大民)的方法会在关闭DLL窗口时把主窗口一起关闭,而我需要把两个窗口一个个关闭。
      

  5.   

    我也碰到过类似情形,把 freeLibrary(aHandle)去掉就可以了!好象是windows 接管了该段内存!或是你的参数有问题也会有如下问题的,改成
    win的标准参数看一下把!肯定是你没有注意一个小地方造成的!
      

  6.   

    还有,application->application.handle
      

  7.   

    哈哈,有这么厉害!
    记得把uses ShareMem,而且加到最前面。please try it again :var OldApp: TApplication;procedure ShowForm(OwnerApplication: TApplication; aName: string);
    begin
      OldApp := Application;
      Application := OwnerApplication;
      CoInitialize(nil);
      With TModifyPasswordForm.Create(OwnerApplication) do
        try
          Label5.Caption := aName;
          ShowModal;
        except
          Free;
          CoUninitialize;     
        end;
      
      Application := OldApp;
      
    end;