谢谢

解决方案 »

  1.   

    就是说dll中的函数没有导出,你应在dll的工程文件的export部分加上需要导出的函数名.
      

  2.   

    是不是没有导出,或者是你在调用DLL中的函数时,大小写不一致
      

  3.   

    比如说你有二个函数为myfunc1,myfunc2要引出,
    则你得在DLL的工程文件的最后(begin end之前)加上
    ...export
      myfunc1,
      myfunc2;beginend;
      

  4.   

    dll的代码:
    library test;uses
      SysUtils,
      Classes;
      procedure str(var str:pchar);export;
                begin
                str:='this is a test!';
                end;
      exports
            str;{$R *.res}begin
    end.调用dll的代码
    unit test_1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
      procedure str(var str:pchar);external 'test_1.dll';
    var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var
    str_1:pchar;
    begin
    str(str_1);
    edit1.Text:=string(str_1);
    end;end.