调用DLL时出错?

303 2002-11-16 05:20:27
不知道为什么?在调用一个DLL时总是出错。
在那个函数中如果是算如平方数时没有问题,但是把一个字符串传进去以后,把两个字符串相加就出错。
h := LoadLibrary('test.dll');
if h > 32 then
begin
@m := GetProcAddress(h, 'GetSqr1');
if not (@m = nil) then
t:=m(edit1.Text);
ShowMessage(t);

end;
FreeLibrary(h);
ShowMessage这还是正确的,点完确定以后就出错了。不知道为什么?
...全文
30 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
303 2002-11-20
  • 打赏
  • 举报
回复
b := a+'dsfd';
result:= pchar(b);
我又改成了这样,是不出什么提示了,但是,最后还是出现了一个错误提示。哪们能否给小弟一个实例,就要求能将字符串传入Dll中,在Dll 中将一个字符串和这个相加就行。谢谢。
hrbwzk@163.com
wuwzk@msn.com
谢谢。
walonelee 2002-11-16
  • 打赏
  • 举报
回复
对,可能是pchar的问题
RamjetZhang 2002-11-16
  • 打赏
  • 举报
回复
pchar?
chancecui 2002-11-16
  • 打赏
  • 举报
回复
把string该成shortstring
jjaacc 2002-11-16
  • 打赏
  • 举报
回复
t:=m(edit1.Text);
改成: t:=GetSqrl('11');
试一下。
why_why 2002-11-16
  • 打赏
  • 举报
回复
begin
b := a+'dsfd';
setlength(result,b);
result:= b;
end
303 2002-11-16
  • 打赏
  • 举报
回复
这是dll 部分 
function GetSqr1(a : string):string;stdcall;
var
b : string;
begin
b := a+'dsfd';
result:= b;
end;

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧