線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:860
推到 Plurk!
推到 Facebook!

呼叫一個 c++ 程序的問題

尚未結案
TATSU
版主


發表:50
回覆:135
積分:62
註冊:2003-01-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-09 01:56:45 IP:203.218.xxx.xxx 未訂閱
那一個 c 的程序是這樣的 int prginit(char **argv, char **argg) 但到了 Delphi 裡,應如何處理?我沒有學過 c ,不懂得應如何呼叫這一個程序。 Delphi 中: prginit(argv : ??? ; argg : ??? ) : longint; stdcall;
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-09 09:29:17 IP:218.80.xxx.xxx 未訂閱
type TPstr = ^string; function prginit(argv :TPstr; argg :TPstr) : longint; stdcall; ========================= 為學日益,為道日損,損之又損,以致於無。為無為,而無不為。
TATSU
版主


發表:50
回覆:135
積分:62
註冊:2003-01-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-10 08:09:46 IP:203.218.xxx.xxx 未訂閱
引言: type TPstr = ^string; function prginit(argv :TPstr; argg :TPstr) : longint; stdcall; ========================= 為學日益,為道日損,損之又損,以致於無。為無為,而無不為。
static char *text_arg[] = {"abc","def","ghi","jkl"}; static char *num_arg[] = {"123","456","789"}; int main(void) { prginit(text_arg, num_arg) } 它是這樣呼叫的,那我該如何轉換成 Delphi code?
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-10 10:40:01 IP:218.80.xxx.xxx 未訂閱
var
  StrLst1,StrLst2: TStringList;    procedure initStrList;
begin
  StrLst1:= TStringList.create;
  StrLst2:= TStringList.create;
  StrLst1.Add('abc');
  StrLst1.Add('def');
  StrLst1.Add('ghi');
  StrLst2.Add('123');
  StrLst2.Add('456');
  StrLst2.Add('789');  
end;    function prginit(var aStr1 :TStringList; var aStr2 :TStringList) : longint; 
begin
end;    procedure Demo;
begin
  initStrList;
  prginit(StrLst1,StrLst2);
end;     
========================= 為學日益,為道日損,損之又損,以致於無。為無為,而無不為。 發表人 - Leway 於 2004/03/10 10:41:09
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-10 11:11:10 IP:218.80.xxx.xxx 未訂閱
也可 text_arg: array[0..3] of string = ('abc','def','ghi','jkl'); num_arg: array[0..2] of string = ('123','456','789'); prginit(@(text_arg[0]), @(num_arg[0])); ========================= 為學日益,為道日損,損之又損,以致於無。為無為,而無不為。
TATSU
版主


發表:50
回覆:135
積分:62
註冊:2003-01-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-10 12:02:27 IP:203.218.xxx.xxx 未訂閱
多謝你的回答,以上兩個方法我都會嘗試。
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-03-10 12:28:02 IP:147.8.xxx.xxx 未訂閱
Pascal string is different from C string... My guess  < class="code"> function prginit(const argv,argg: PChar): longint; stdcall; {...} var text_arg,num_arg: string; {...} text_arg := Format('%s%s%s%s%s%s%s%s',['abc',#0,'def',#0,'ghi',#0,'jkl',#0]); num_arg := Format('%s%s%s%s%s%s',['123',#0,'456',#0,'789',#0]); prginit(@text_arg[1],@num_arg[1]);
系統時間:2024-05-07 10:52:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!