这是我的代码:
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure sendstring(var s:pchar);external 'project1.dll';
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var
s:pchar;
begin
sendstring(s);
edit1.Text:=string(s);
end;end.DLL部分的代码
library Project2;uses
  SysUtils,
  Classes;
  procedure sendstring(var s:pchar);export;
  begin
  s:='hello';
  end;
  exports
         sendstring;{$R *.res}begin
end.
在编译unit的时候提示 在方法或属性的后面不允许域定义
为什么?

解决方案 »

  1.   

    DLL部分的代码
    library Project2;uses
      SysUtils,
      Classes;  
      exports
             sendstring;{$R *.res}begin
      procedure sendstring(var s:pchar);export;
      begin
      s:='hello';
      end;
    end.
      

  2.   

    to knock(天天睡觉) 
    你的方法我试了,DLL根本就不能编译!提示错误
      

  3.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    procedure sendstring(var s:pchar);external '路径最好写上绝对的project1.dll'name 'sendstring';
      
    type
      TForm1 = class(TForm)
        Edit1: TEdit;
        procedure FormCreate(Sender: TObject);private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var
    s:pchar;
    begin
    sendstring(s);
    edit1.Text:=string(s);
    end;end.