请问在DELPHI中的如何静态加载DLL,能否在IDE中直接加载

解决方案 »

  1.   

    使用Dll中的函数必须先做函数申明,IDE中好象没有什么简便的方法加载,自己写函数申明吧.
    类似  function PlayMetaFile; external gdi32.dll name 'playMetaFile';
      

  2.   

    1.定义Dll,你知道的(注意别忘了引出函数名);
    2.定义引入的函数,参照:
      function MyCalu; external MySysUtils.dll name 'MyCalu';
      

  3.   

    补充你的观点,
    “能否在IDE中直接加载”
    没有这种说法(据我所知),是在程序里加载,不是在IDE里,Dll不是可视组件,欢迎探讨。
      

  4.   

    原来见到过做DLL模版,然后加载到新建中(New Items)...
    但没学到,欢迎探讨。
      

  5.   

    采用静态调用方式
    主程序代码:  function AiGetJpgRes(AResName:PChar):THandle; far;external 'Ai9Res.dll';
      function AiGetBmpRes(AResName:PChar):THandle; far;external 'Ai9Res.dll';
      function AiGetIcoRes(AResName:PChar):THandle; far;external 'Ai9Res.dll';
      function AiGetCurRes(AResName:PChar):HCursor; far;external 'Ai9Res.dll';
      function AiGetStrRes(AResName:Integer):String; far;external 'Ai9Res.dll';其中JPG图的调用如下:
    procedure TForm1.Button2Click(Sender: TObject);
    var
      Stream:TResourceStream;
      MyJpg: TJpegImage;
    begin  Stream :=TResourceStream.Create(AiGetJpgRes(PChar('LOGIN')),'LOGIN','JPEG');
      Try
        MyJpg:=TJpegImage.Create;
        try
          MyJpg.LoadfromStream(Stream);
          Image1.Picture.Assign(MyJpg);
        Finally
          MyJpg.Free;
        end;
      Finally
        Stream.Free;
      end;
    end;DLL中代码:{$R Ai92RES.RES}function AiGetJpgRes(AResName:PChar): THandle; export;
    begin
       FindResource(hInstance, PChar('JPEG'),AResName);
      Result := hInstance;
    end;
    function AiGetBmpRes(AResName:PChar): THandle;export;
    begin
      FindResource(HInstance,'BITMAP' ,AResName);
      Result:=HInstance;
    end;
    function AiGetStrRes(AResName:Integer):string; export;
    begin
      Result:=LoadStr(AResName);
    end;function AiGetIcoRes(AResName:PChar): THandle; export;
    begin
      Result :=  LoadIcon(HInstance,AResName);
    end;function AiGetCurRes(AResName:PChar): HCursor; export;
    begin
      Result:=LoadCursor(HInstance,AResName);
    end;exports
      AiGetBmpRes index 1,
      AiGetJpgRes index 2,
      AiGetIcoRes Index 3,
      AiGetCurRes index 4,
      AiGetStrRes index 5;
    end