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

struct怎麼共用呀?

答題得分者是:RaynorPao
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-09-29 19:11:49 IP:210.85.xxx.xxx 未訂閱
如果有兩個以上的Form想要共用一個struct. 不管是宣告在那一個檔案. 另一個Form要怎麼作, complier才能過呢? extern struct MyStruct; <--- Complier是不會過的 如果放在某個Form的public區, 又不能給初始值在.h裡 可是如果在.cpp作的話, Complier還是不會過. 怎麼寫才是正確的寫法呢?
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-09-30 08:32:24 IP:203.73.xxx.xxx 未訂閱
引言: 怎麼寫才是正確的寫法呢?
我也不知道怎麼寫才算是正確的寫法 但是~~我都是這麼做的~~ 另外 create 一個 *.h 在這個 *.h 裡面放入所有這個專案要使用的 const, macro, global variable,... 當然也包括 struct, 定義如下 typedef struct _MY_STRUCT { ....... } MY_STRUCT, *PMY_STRUCT, **PPMY_STRUCT; 然後將你的兩個 form 的 h 檔 一起 include 這個 *.h
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-09-30 11:06:48 IP:210.63.xxx.xxx 未訂閱
這個方法我試過了! 但是complier完之後, 會有Warning, 說有兩個module重複宣告 執行程式的結果! 好像BCB真的給兩個共同名稱的struct 因為我的目的是要兩個Form都去Access同一個地方 但結果顯示, 是Access兩個不同的地方  痛苦呀
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-09-30 11:46:29 IP:203.73.xxx.xxx 未訂閱
引言: 但是complier完之後, 會有Warning, 說有兩個module重複宣告 執行程式的結果! 好像BCB真的給兩個共同名稱的struct 因為我的目的是要兩個Form都去Access同一個地方 但結果顯示, 是Access兩個不同的地方 痛苦呀 < face="Verdana, Arial, Helvetica"> (1) 在宣告 struct 的 struct1.h 檔案的最前面加上 #ifndef __STRUCT1_H__ #define __STRUCT1_H__ (2) 在宣告 struct 的 struct1.h 檔案的最後面加上 #endif (3) 在 Unit1.h, Unit1.cpp, Unit2.h, Unit2.cpp 中 include 的時候也要注意以下幾點 (3.1) 在 Unit1.h 中加入 #include "struct1.h" (3.2) 在 Unit2.h 中加入 #include "struct1.h" (3.3) 在 Unit1.cpp 最前面加入 #include "Unit1.h" 備註:我雖然寫「最前面」,但要加在 #pragma hdrstop 這行後面 (3.4) 在 Unit2.cpp 最前面加入 #include "Unit2.h" 備註:我雖然寫「最前面」,但要加在 #pragma hdrstop 這行後面 (3.5) 在 Unit1.cpp 宣告一個全域變數 XXXX_STRUCT gxxx; (3.6) 在 Unit2.cpp 宣告一個全域變數 extern XXXX_STRUCT gxxx; 以上做法不妨參考看看吧
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
pahan
一般會員


發表:1
回覆:7
積分:1
註冊:2002-09-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-09-30 19:09:56 IP:210.243.xxx.xxx 未訂閱
extern struct MyStruct; <--- Complier是不會過的 上面那一行是寫在 struct.h 檔案 請在 struct.cpp 加上 : struct MyStruct;
系統時間:2024-04-25 18:51:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!