PB调用Delphi的DLL的问题?

秋天之落叶 2018-11-01 05:53:59
delphi中的DLL代码,函数定义使用pchar可以正常在PB中调用,但是结果是加密串的第一个字符?

library mysha1;

uses
System.SysUtils,
System.Classes, System.Hash;

function mysha(s, key: PChar): PChar; stdcall;
var
ss: PChar;
begin
ss := PChar(System.Hash.THashSHA1.GetHMAC(string(s), string(key)));
Result := ss;
end;

{$R *.res}

exports mysha;

begin

end.

PB中的函数定义:
Function string mysha(ref string s,ref string key) Library "mysha1.dll" alias for "mysha;Ansi"
生成:
string s1,s2
s1=mle_9.text
s2=space(512)
s2= mysha(s1,s1)
mle_10.text=s2
----------
显示的结果是加密串的第一个字符,很奇怪。而且监视s1时,234显示为?。
请教高手,delphi中dll的数据类型如何定义?PB中的数据类型如何定义?
...全文
92 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋天之落叶 2018-11-03
  • 打赏
  • 举报
回复
完美解决,哈哈


680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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