全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:924
推到 Plurk!
推到 Facebook!

呼叫.h檔案的問題

尚未結案
benkoyou
一般會員


發表:1
回覆:1
積分:0
註冊:2005-06-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-27 17:19:18 IP:61.66.xxx.xxx 未訂閱
問題一   .h檔中之變數定義如下    
typedef unsigned char BYTE;    typedef struct {
        BYTE        ReadName[2][3];
        int        Rcount;
}IFD_READER;
程式片段如下 IFD_READER stRead; ComboBox1->Items->Add((char *)stRead.ReadName[i]); 小弟想把陣列裡面的的值丟到ComboBox1中 請問上一行的程式中Add後面接的(char *)是什麼意思呢?這樣的寫法有運用到什麼觀念嗎? 問題二 .h檔中定義如下
typedef unsigned char BYTE;
typedef unsigned int  UINT;    extern ULONG WINAPI ISO(        
        IN        SC       Card,
        IN        BYTE     *ID,
        OUT        BYTE        *ObjData,
        OUT        BYTE        *Len,
        OUT        UINT        *Response
        );
請問大大上述.h檔中之 IN SC CARD, SC是屬於typedef嗎可是我看原本的.h檔中為什麼找不到呢? 那IN 和 OUT 又是什麼呢? 有加*號的變數是否為指標變數? 若我在程式中call了這一個ISO程式碼如下 Rtn = ISO(Card,ID,ObjData,&Len,&Response); 為什麼此行程式中的ID,ObjData前面不用加&,而Len,Response前面就要加&號呢? 我知道我的問題笨了點 希望板上大大不吝嗇的指教 發表人 - benkoyou 於 2005/06/27 17:33:54 發表人 - benkoyou 於 2005/06/27 17:35:23 發表人 - benkoyou 於 2005/06/27 17:42:30
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-27 17:27:01 IP:210.68.xxx.xxx 未訂閱
您好: 請為您的問題取一個有意義的標題    PO程式碼的方式請參考版規說明,煩請修改謝謝您的配合 >
benkoyou
一般會員


發表:1
回覆:1
積分:0
註冊:2005-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-27 17:36:27 IP:61.66.xxx.xxx 未訂閱
版主您好 請問修改成這樣可以嗎?
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-27 17:46:01 IP:210.68.xxx.xxx 未訂閱
引言: 版主您好 請問修改成這樣可以嗎?
沒錯,就是這樣,感謝您的配合
yhchu
一般會員


發表:2
回覆:70
積分:24
註冊:2004-01-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-28 16:25:46 IP:220.130.xxx.xxx 未訂閱
問題一: stRead.ReadName[i] 的型態為元素為 BYTE 的一維陣列,也就是指向 BYTE 的指標 (BYTE *),Add 要的參數是 AnsiString。因為 AnsiString 不知道怎麼由 (BYTE *) 轉換,但是可以由 char *,也就是字元指標轉換過來,所以用 (char *) 強制編譯器把 stRead.ReadName[i] 當作 char *。事實上 BYTE 跟 char 只差在 signed 和 unsigned 的差別。 問題二: IN 和 OUT 定義在 windef.h 裡面,是讓你比較清楚參數值的傳遞方向,沒有實際作用吧 (這個我不太清楚,有錯請指正)。另外,需不需要 & 就看函數定義需要的參數型態跟你給的變數型態之間的關係,例如函數要 const int *,你的變數型態是 int (假設叫 x),那你就要用 &x,把 x 的位址傳過去,形態才符合。
系統時間:2024-06-19 2:10:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!