procedure SendMessage(s: String);
var
p: PChar;
begin
p := StrAlloc(Length(s) + 1);
StrPCopy(p, s);
ExSendMessage(p);//ExSendMessage是另外一个DLL的函数
StrDispose(p);
end;
程序在执行完这个过程后报错。
另外,在那个DLL的内部跟踪进去发现传递的字符串内容变掉了,变成很怪异的字符。
这是为什么?
var
p: PChar;
begin
p := StrAlloc(Length(s) + 1);
StrPCopy(p, s);
ExSendMessage(p);//ExSendMessage是另外一个DLL的函数
StrDispose(p);
end;
程序在执行完这个过程后报错。
另外,在那个DLL的内部跟踪进去发现传递的字符串内容变掉了,变成很怪异的字符。
这是为什么?
如果用pchar() 转换试试
关键在这个函数里边楼主应该好好查一下。
就把分给楼上的这位吧。
同时想问一下以后自己解决的问题怎么结贴啊?