关于delphi动态库创建和调用的问题

johnmack 2016-05-02 09:02:58
调用代码
procedure TForm1.Button5Click(Sender: TObject);
var
Card, return: PChar;
i: integer;
a, b: string;
begin
Card := PChar(StringOfChar(Char(0), 32)); //StrAlloc(32 * SizeOf(char));
return := PChar(StringOfChar(Char(0), 128)); //StrAlloc(128 * SizeOf(char));
Card := '001';
i := GetPersonInfo(Card,return);
//ShowMessage(string(return));
ShowMessage(inttostr(i));
StrDispose(Card);
StrDispose(return);
end


动态库代码
function GetPersonInfo(var CardCode: PChar; Var RtnStr: PChar):Integer;stdcall;
var
CardID, xm, Rtn, Card: string;
xb,dqzt: integer;
Balance: Currency;
i: integer;
Temp: PChar;
begin
//Card := strPas(CardCode);

temp := StrAlloc(32 * SizeOf(Char));
StrCopy(temp, CardCode);
ShowMessage(CardCode);
//ShowMessage(IntToStr(integer(@CardCode)));
//ShowMessage(IntToStr(integer(@RtnStr)));
end;
...全文
106 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
johnmack 2016-05-02
  • 打赏
  • 举报
回复
传递过去是乱码。
pathletboy 2016-05-02
  • 打赏
  • 举报
回复
检查声明部分的调用约定是否正确

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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