library Project1;
uses
SysUtils, Classes;function testSt(N:String):String;stdcall;
begin
result:='2';
end;exports
testSt;
end.编译输出没有问题,但是在程序调用时却有问题,调用过程如下:implementation
function testSt(N:String):String;
stdcall;external'Project1.dll';procedure TForm1.Button3Click(Sender: TObject);
begin
edit3.Text:= testSt('ffff');
end;总是提示使用的了非法的指针,为什么?如果将Dll函数改成function Double(N:Integer):Integer;stdcall;
begin
result:=N*2;
end;这样就可以正常调用,这是什么原理?那为高兄指导一下,谢谢
uses
SysUtils, Classes;function testSt(N:String):String;stdcall;
begin
result:='2';
end;exports
testSt;
end.编译输出没有问题,但是在程序调用时却有问题,调用过程如下:implementation
function testSt(N:String):String;
stdcall;external'Project1.dll';procedure TForm1.Button3Click(Sender: TObject);
begin
edit3.Text:= testSt('ffff');
end;总是提示使用的了非法的指针,为什么?如果将Dll函数改成function Double(N:Integer):Integer;stdcall;
begin
result:=N*2;
end;这样就可以正常调用,这是什么原理?那为高兄指导一下,谢谢
关于dll调用我也想在过程文件中加入,这样省得每个单元文件都的重复加入,但是如何加?ShareMem是什么意思?To:netwolfds(晓竹)
pchar和string有什么区别吗?为什么一定要用pchar?