请问方便的话, 能否给小弟发一个最简单的DLL的例子,功能不要求多大,如调用DLL传一个参数,然后通过DLL将这个数的平方返回来就行了。
最好是将整个例子发过来谢谢。[email protected]
[email protected]

解决方案 »

  1.   

    你是要dll的代码,还是要调用dll的代码。
    这个随便一个delphi书中都有介绍吧
      

  2.   

    library testdll;
    uses
      SysUtils,
      dialogs,
      Classes;
    {$R *.RES}
    procedure showvalue(value:integer);export;
    begin
        showmessage(inttostr(value));
    end;
    exports
        showvalue;
    begin
    end.var
      Form1: TForm1;implementation{$R *.DFM}procedure showvalue(value:integer);external 'testdll.dll';procedure TForm1.Button1Click(Sender: TObject);
    begin
        showvalue(100);
    end;
      

  3.   

    已发过去了,在你的[email protected]
      

  4.   

    定义DLL
    library Project1;{ Important note about DLL memory management: ShareMem must be the
      first unit in your library's USES clause AND your project's (select
      Project-View Source) USES clause if your DLL exports any procedures or
      functions that pass strings as parameters or function results. This
      applies to all strings passed to and from your DLL--even those that
      are nested in records and classes. ShareMem is the interface unit to
      the BORLNDMM.DLL shared memory manager, which must be deployed along
      with your DLL. To avoid using BORLNDMM.DLL, pass string information
      using PChar or ShortString parameters. }uses
      SysUtils,
      Classes;{$R *.RES}function F_Square(Aparam: Double): Double; stdcall;
    begin
      Result := Aparam *  Aparam;
    end;exports
      F_Square;
      
    end.调用DLL
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
    type  TMyFun = function(aParam: double): Double; stdcall;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    var
      m : TMyFun;
      h: THandle;
    begin
      h := LoadLibrary('Project1.dll');
      if h > 32 then
      begin
        @m := GetProcAddress(h, 'F_Square');
        if not (@m = nil) then
          ShowMessage(FloatToStr(m(12)));
      end;
      FreeLibrary(h);
    end;end.
      

  5.   

    http://www.csdn.net/expert/topic/648/648015.xml?temp=.8814661http://www.csdn.net/expert/topic/628/628608.xml?temp=.791073http://www.csdn.net/expert/topic/634/634413.xml?temp=.571377
      

  6.   

    TO:: lws0472(天外飞仙) 
    你发的邮件里带有 VBS/Redlof@M 病毒 
    但是还是要感谢你,谢谢.