library Project1;uses
SysUtils,
Classes; {$R *.res}
function GetString():pchar;stdcall;
var sSay:string;
begin
ssay:='M M:' +'Hello!';
getMem(result, sizeof(ssay) + 1);
strcopy(result, pchar(ssay));
end;
exports
GetString;
begin
end.
SysUtils,
Classes; {$R *.res}
function GetString():pchar;stdcall;
var sSay:string;
begin
ssay:='M M:' +'Hello!';
getMem(result, sizeof(ssay) + 1);
strcopy(result, pchar(ssay));
end;
exports
GetString;
begin
end.
sizeof(string) 返回永远是4,导致Result的长度是5,记过结尾是ssay的第5个字符H,而不是#0
导致什么结果就难说了
所以第一次就错了,只是到第二次才反映出来罢了