我在Dll中添加了一个窗体结果运行时总出现下面的错误:
'Cannot assign a TFont to a TFont'
请问如何解决有人碰到过吗?

解决方案 »

  1.   

    字体赋值??这个,,贴代码出来好一些
    或者你忘了加什么单元了:Graphics
      

  2.   

    出现这个问题可能是DLL不能加载某个TFont
      

  3.   

    好DLL代码如下:
    library Enter;uses
      SysUtils,
      Classes,
      Windows,
      Messages,
      Forms,
      Graphics,
      Unit1 in 'Unit1.pas' {Form1};{$R *.res}
    var
      DLLApp    : TApplication;
      DLLScr    : TScreen;function Opendll(App: TApplication; Scr: TScreen): Tform;
    begin
      Application := App;
      Screen := Scr;
      Application.CreateForm(TForm1, Form1);
      result := Form1;
    end;procedure ExitDLL(Reason: Integer);
    begin
      if Reason = DLL_PROCESS_DETACH then begin
        Application := DLLApp;
        Screen := DLLScr;
      end;
    end;exports
      Opendll;begin
      DLLApp := Application;
      DLLScr := Screen;
      DLLProc := @ExitDLL;
    end.窗体单元随便建立,没有我自己写的代码一切默认,只要添加进一个菜单就会出现上述问题。
      

  4.   

    Unit1的代码没必要贴出来因为没有我自己写的代码,只需要添加一个菜单和一个StatusBar就会出现问题,难道没人碰到过吗?
      

  5.   

    试了一下,找到原因:
    你最好是将dllform的menu的automerge设为true
    然后再调用主窗体上也放一个menu试一下,使他们自动融合,是没有这个问题的;不过通常我会将dllform做成mdi子窗体,不会出现此类问题!
      

  6.   

    试了一下,找到原因:
    你最好是将dllform的menu的automerge设为true
    然后再调用主窗体上也放一个menu试一下,使他们自动融合,是没有这个问题的;不过通常我会将dllform做成mdi子窗体,不会出现此类问题!
      

  7.   

    可是如果不用MDI子窗体的方式我怎么办?我还要添加一个StatusBar,我的Dll程序应该怎么改一下呢?
      

  8.   

    我还是第一次看到这样在DLL中建窗口!
    帮你顶一下吧,
    大家研究一下!
      

  9.   

    uses
      ShareMem,
      再是其它的Unit;...
      

  10.   

    如果你要在DLL的函数参数或返回值中传递VCL对象, uses的第一个单元必须是ShareMem,否则莫明其妙的事情会很多,偶可是深受其害的
      

  11.   

    对了,忘记提醒一下:对于DLL,必须是libray 中uses的第一个单元是ShareMem;对于使用该DLL的应用程序,必须是在program单元中第一个uses ShareMem。另外发布应用程序的时候,要带上borlndmm.dll,在你的 DelphiInstallPath\bin 目录下有。
      

  12.   

    还有人在否?我想问个问题,我在运行我的project的时候,cannot debug proiectunless a host application is defined.Use the Run|parameters...dialog box.哥哥们怎么办啊?我刚接触了一下delphi.:)
      

  13.   

    Re:
    还有人在否?我想问个问题,我在运行我的project的时候,cannot debug proiectunless a host application is defined.Use the Run|parameters...dialog box.哥哥们怎么办啊?我刚接触了一下delphi.:)
    -------------
    DLL的调试必须有一个宿主程序,该程序使用了你要调试的DLL。另外还要注意,要能调试DLL,记得DLL Project options中Linker选项中将 Include remote debug symbols 选项选中。/ 一点经验之谈,望刚接触的兄弟们少走弯路。