各位大俠,有沒有遇到一個這樣的問題
用Delph7撰寫一個動態庫
Function GetARetStr(Src: Pchar): Pchar; stdcall;
在D7和D2007下呼叫都正常
------------------------------
但在D10中呼叫時不能正常傳遞引數,引數只有一個字符傳到了DLL中
--------------------------------
var
AStr: string;
begin
AStr:='[XXXXX]="TEST"'
sRet:=GetARetStr(Pchar(AStr));
end;
-------------
在D10中運行
在DLL中寫代價匯出引數發現只有一個[
---------
Delphi7或者是Delphi2007中
在DLL中寫代價匯出引數值正常:[XXXXX]="TEST"
---------------------------------------------
幫忙,這是怎么回事?
uj5u.com熱心網友回復:
傳遞的字符不通用了,在D'7和Delphi007中,為了在D10能使用,建議:1、要用widestring,取代AnsiString,相應的字符也要用WideChar字符,代替AnsiChar字符。
2、寫Dll時,不能使用匯編陳述句。因為64位的和32位的,完全不一樣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/60233.html
上一篇:資料暫存,擴展名為MB檔案問題
下一篇:MDI下的子視窗問題求教
