首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

【求解救】Delphi写的DLL,C++Builder调用,结果不正确

2013-01-08 
【求拯救】Delphi写的DLL,C++Builder调用,结果不正确,//Delphi DLL函数function GetExpireDateBySN(const Ac

【求拯救】Delphi写的DLL,C++Builder调用,结果不正确,


//Delphi DLL函数
function GetExpireDateBySN(const AcitveSN: PChar): PChar; stdcall;
var
  Str: string;
  D: Integer;
begin
  Str := StrPas(AcitveSN);
  Str := UnEncrypt(Str);
  Str := RightStr(Str, 5);
  D := StrToInt(Str);
  Str := FormatDateTime('YYYY-MM-DD', D);
  Result := PChar(Str);
end;

function GetPosNumBySN(const ActiveSN: PChar): Integer; stdcall;
var
  Str: string;
begin
  Str := StrPas(ActiveSN);
  //  ShowMessage(Str);
  Str := UnEncrypt(Str);
  Str := LeftStr(Str, 6);
  Str := RightStr(Str, 2);
  try
    Result := StrToInt(Str);
  except
    Result := 0;
  end;
end;





//BCB中的代码,我用是静态加载的,在头文件中申明如下

extern "C" char* __stdcall GetExpireDateBySN(char* ActiveSN);
extern "C" int __stdcall GetPosNumBySN(char* AcitveSN);

//调用时如下
int PosNum;
WideString ExpireDate;
WideString ActiveCode="8989380234982308"
PosNum=GetPosNumBySN(AnsiString(g_ActiveCode).c_str());
ExpireDate=GetExpireDateBySN(AnsiString(g_ActiveCode).c_str());


Dll用delphi调用一点问题也没有,但是用BCB调用 ,却得到不同的结果。
[解决办法]
什么版本的开发环境,后来版本的pchar都是双字节的,你改用pansichar试试
[解决办法]
引用:
什么版本的开发环境,后来版本的pchar都是双字节的,你改用pansichar试试

+1

热点排行