呼叫.h檔案的問題 |
尚未結案
|
benkoyou
一般會員 發表:1 回覆:1 積分:0 註冊:2005-06-27 發送簡訊給我 |
問題一
.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 發送簡訊給我 |
|
benkoyou
一般會員 發表:1 回覆:1 積分:0 註冊:2005-06-27 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
yhchu
一般會員 發表:2 回覆:70 積分:24 註冊:2004-01-28 發送簡訊給我 |
問題一: 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 的位址傳過去,形態才符合。
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |