这是我的代码:
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的时候提示 在方法或属性的后面不允许域定义
为什么?
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的时候提示 在方法或属性的后面不允许域定义
为什么?
library Project2;uses
SysUtils,
Classes;
exports
sendstring;{$R *.res}begin
procedure sendstring(var s:pchar);export;
begin
s:='hello';
end;
end.
你的方法我试了,DLL根本就不能编译!提示错误
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.