1.PB呼叫Delphi開發的DLL,傳入動態陣列。
function getdata(a: array of pchar): integer; stdcall;
var
i: Integer;
//str: string;
begin
Result := 0;
for i := Low(a) to High(a) do
begin
//str := StrPas(a[i]);
showmessage(a[i]);
end;
Result := 1;
end;
2.pb中外部函式宣告
function int getdata(string a[]) LIBRARY "F:\pbtest\test.dll"
3.PB中呼叫:
int li
string a[]={'jerry','roser','joho'}
li=getdata(a)
messagebox('',string(li))
4.報錯資訊
---------------------------
PB90.EXE - 應用程式錯誤
---------------------------
"0x02c84ad7" 指令參考的 "0x00060d00" 記憶體。該記憶體不能為 "read"。
要終止程式,請單擊“確定”。
要除錯程式,請單擊“取消”。
---------------------------
確定 取消
---------------------------
uj5u.com熱心網友回復:
那給陣列指定大小uj5u.com熱心網友回復:
頂貼無罪!!!uj5u.com熱心網友回復:
PB 這個宣告的時候不算嗎,那請教在PB中怎么指定
string a[]={'jerry','roser','joho'}
uj5u.com熱心網友回復:
宣告和呼叫里都加個ref試試uj5u.com熱心網友回復:
function int getdata(ref string a) LIBRARY "F:\pbtest\test.dll"這樣宣告看看?
uj5u.com熱心網友回復:
borlndmm.dll復制到就用程式目錄里看看!uj5u.com熱心網友回復:
delphi陣列和PB陣列不是一個概念,樓主換種方法吧。uj5u.com熱心網友回復:
等待高手解釋下轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/85301.html
標籤:API 調用
上一篇:讀取寄件備份
下一篇:PB如何匯出壓縮檔案
