function ReadCard(CardUID: Pchar; var CardType: Pchar; var cardname:PChar; var Balance: Currency; var sumamt:Currency):pchar;
引數1:發卡流水 型別:字串
引數2:卡型別 型別:回傳字串
引數3:持卡人 型別:回傳字串
引數4:余額 型別:回傳浮點型
引數4:累計刷卡 型別:回傳浮點型
函式回傳:卡編號 型別:回傳字串
及/提交資料庫當前刷卡金額
function ChangeBalance(CardUID,sOp,sMemo:string;SumAmt:Currency):Boolean;
在PB中如何進行注冊,試了用string.型別的,老是提示意外出錯,PB關閉.急求各位大俠解決.我的郵箱號[email protected]
謝謝各位
uj5u.com熱心網友回復:
Delphi 做外部介面不能用string型別,不然就記憶體溢位了,用PCharuj5u.com熱心網友回復:
呼叫前給個初試值還有回傳值搞個pchar型的 寫dll的人是不是腦袋裝大便了啊?
uj5u.com熱心網友回復:
string ls_card = space(128)
一般呼叫,最好分配記憶體空間
uj5u.com熱心網友回復:
這個問題你基本上很難解決,因為人家提供DLL的人回傳的是Pchar,在PB呼叫會出錯,因為這個型別用PB的string型別接收,回傳的是不致的,所以最好它能這樣定義:function ReadCard(CardUID: Pchar; var CardType: Pchar; var cardname:PChar; var Balance: Currency; var sumamt:Currency, var returnStr:pchar):integer;
這樣呼叫比較好,因為我寫過DELPHI的DLL經PB呼叫,積累的經驗啊
面且DELPHI寫的DLL,輸出的值不能用STRING,或是SHORTSTRING型別否則在PB呼叫會偏移位元組,我個人的所經歷,希望對你有用
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/89245.html
標籤:API 調用
上一篇:匯入CSV時碰到重復行如何去掉
