如题,用delphi弄了一个加解密算法dll,准备在c#中调用,此dll用delphi测试调用成功,但c#调用报错,请各位各人出招,先行谢过~~Delphi函数定义: function Get_Encrypt(const Code:AnsiString; const License:AnsiString):AnsiString;stdcall;
function Get_Decrypt(const Code:AnsiString; const License:AnsiString):AnsiString;stdcall; function Get_Encrypt(const Code:AnsiString; const License:AnsiString):AnsiString;
var
v,k:TLongWordDynArray;
begin
if (Length(Code) = 0) then exit;
v := StrToArray(Code, true);
k := StrToArray(License, false);
result := ArrayToStr(XXTeaEncrypt(v, k), false);
end;
function Get_Decrypt(const Code:AnsiString; const License:AnsiString):AnsiString;
var
v,k:TLongWordDynArray;
begin
if (Length(Code) = 0) then exit;
v := StrToArray(Code, false);
k := StrToArray(License, false);
result := ArrayToStr(XXTeaDecrypt(v, k), true);
end; C#调用:
[DllImport("Interface.dll", CharSet=CharSet.Auto)]
public static extern string Get_Decrypt(string Code, string License);
[DllImport("Interface.dll", CharSet=CharSet.Auto)]
public static extern string Get_Encrypt(string Code, string License); 此调用不成功,google查资料确认"delphi的dll如果用了string类型那么c#是不能调用的,用了string类型的dll只供delphi调用,除非delphi里面用的是pchar,那么在c#里面可以把类型转换了来调用。" 请各位大侠帮忙看看,可有什么处理的方法? 或者,哪位能提供一个可供c#调用的delphi加解密算法dll(DES,XXTEA等均可)?
function Get_Decrypt(const Code:AnsiString; const License:AnsiString):AnsiString;stdcall; function Get_Encrypt(const Code:AnsiString; const License:AnsiString):AnsiString;
var
v,k:TLongWordDynArray;
begin
if (Length(Code) = 0) then exit;
v := StrToArray(Code, true);
k := StrToArray(License, false);
result := ArrayToStr(XXTeaEncrypt(v, k), false);
end;
function Get_Decrypt(const Code:AnsiString; const License:AnsiString):AnsiString;
var
v,k:TLongWordDynArray;
begin
if (Length(Code) = 0) then exit;
v := StrToArray(Code, false);
k := StrToArray(License, false);
result := ArrayToStr(XXTeaDecrypt(v, k), true);
end; C#调用:
[DllImport("Interface.dll", CharSet=CharSet.Auto)]
public static extern string Get_Decrypt(string Code, string License);
[DllImport("Interface.dll", CharSet=CharSet.Auto)]
public static extern string Get_Encrypt(string Code, string License); 此调用不成功,google查资料确认"delphi的dll如果用了string类型那么c#是不能调用的,用了string类型的dll只供delphi调用,除非delphi里面用的是pchar,那么在c#里面可以把类型转换了来调用。" 请各位大侠帮忙看看,可有什么处理的方法? 或者,哪位能提供一个可供c#调用的delphi加解密算法dll(DES,XXTEA等均可)?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货