我想在EXE文件中引用DLL中的一个Frame,但出现错误!
DLL中的代码如下:
function ShowFrame(FormHandle: Tapplication;TTT:TTabSheet): String;
var
  Frame1: TFrame1 ;
begin
  Frame1 := Frame1.Create(FormHandle);
  Frame1.Parent := TTT ;
  Frame1.Show ;
  Result := '' ;
end;调用的代码如下:
ShowFrame(Application,TabSheet1) ;错误提示:
Project t_1.exe raised exception class EAccessViolation with message 'Access violation at address 004032C2 in module 't_1.exe',Read of address FAFCD3B9',Process stopped.Use Step or Run to contine.请问该如何解决!

解决方案 »

  1.   

    我靠!又是内存地址错误问题!DELPHI不行了!DELPHI莫名其妙就会出这样的问题,有时重启就没有时了,你试试
      

  2.   

    樓上兄弟,出現上面的錯誤不能怪delhpi不行了吧.
      

  3.   

    Frame1 := Frame1.Create(FormHandle);?
      

  4.   

    Frame1.Show ;// ??? Frame 设置它的 Parent 就可以了
      

  5.   

    我当时也发过这样的帖子好像不行的
    后来我把DLL的frame封装到窗体上,还算可以的
    这有一段代码DLL输出Form到Exe程序的panel上的var
      myForm:Tform;  //全局变量 procedure newWinCreate(WinID:HWND);
    var
      myRect:TRect;
    begin
      myForm:=Tdl.Create(nil);
      (myForm as Tdl).init;  //完成 Tdl的初始化代码
      if WinID<>0 then
      begin
        myForm.Left:=0;
        myForm.Top:=0;
        GetWindowRect(WinID , myRect);
        myform.Caption:=myTitle;
        myForm.BorderStyle:=bsNone;
        myForm.ParentWindow:=WinID;
        myForm.Width:=myRect.Right-myRect.Left;
        myForm.Height:=myRect.Bottom-myRect.Top;
        myForm.Show;
      end else
      begin
        GetWindowRect(WinID,myRect);
        myform.Caption:=myTitle;
        myForm.showmodel;
      end;
    end;
    说明:
        参数WinID是宿主程序Panel的handle,TDL是窗体类。调用newWinCreate(handle1.handle)即可完成。