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中的数据类型如何定义?