比如我用向导构建了一个Dll工程Project1,添加一个Form1。我在Project1.dpr中“begin end.”之间插入创建Form1的代码。---------------------------------------------------------
library Project1;uses
  SysUtils,
  Classes,
  Unit1 in 'Unit1.pas' {Form1};{$R *.res}begin
  Form1 := TForm1.Create(nil);
  Form1.ShowModal;
  Form1.Free;
end.
---------------------------------------------------------我用VC++编写简单的程序调用它,发现一旦LoadLibrary()后,Form1立刻就显示出来了。第一次试用Delphi编写DLL,发现程序结构和VC写的很不一样,现在的问题是,这个“begin  end.”到底对应用C写的DLL框架的哪一部分呢?呵呵谢谢指教。

解决方案 »

  1.   

    这里的begin end.对应的是DLL初始化,进入点你首先要写好library Project1;uses
      SysUtils,
      Classes,
      Unit1 in 'Unit1.pas' {Form1};{$R *.res}
      procedure showfrom(parnet: hwnd);stdcall;
      begin
         Form1 := TForm1.Crateapplication(parnet); //呵呵,不知道有没写错。。
         Form1.ShowModal;
      end;exports //导出函数
      showfrom; 
    beginend.
    ---------------------------------------------------------
      

  2.   

    那是不是对应“DllMain”函数阿,如果是的话,DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)中的参数怎么得到呢?
      

  3.   

    procedure EntryPointProc(Reason: Integer);
    begin
        case reason of
            DLL_PROCESS_ATTACH:
                begin            end;
            DLL_PROCESS_DETACH:
                begin            end;
        end;
    end;begin
      DllProc := @EntryPointProc;
      EntryPointProc(DLL_PROCESS_ATTACH);
    end.