Re: [問題] extern

看板C_and_CPP作者 (累人啊....)時間16年前 (2009/10/26 15:43), 編輯推噓3(307)
留言10則, 3人參與, 最新討論串2/9 (看更多)
: → tyc5116:有耶,我現在問題是這樣,我全部都寫在主程式都正常,不過因Y 10/26 14:57 : → tyc5116:為現在要用thread的功能,要把這些寫成一個函式 10/26 14:58 : → tyc5116:結果就出現這個問題了 10/26 14:58 : → james732:建議再給完整一點的程式與檔案的分配方式 10/26 15:08 大概就是像這樣 //Transition.h class TransitionData{ public: int ID; bool isGateOpen; }; //Truckload.h #include "Transition.h" class TruTransitionData{ typedef list<TransitionData> Contents; public: void addTransition(TransitionData new_Transition); int GetCount(); private: Contents Load; }; 然後在主程式中宣告 TruTransitionData Transition_Data; 並且使用其成員函數 MessageBox::Show(Transition_Data.GetCount().ToString()); 這些都很正常,如果把他放到另一個cpp檔內 //aaa.cpp #include "Truckload.h" extern TruTransitionData Transition_Data; void Procedure(){ MessageBox::Show(Transition_Data.GetCount().ToString()); } 這時候就會出錯誤了,然後這時候我主程式還沒有呼叫這一個函式 (這是函式是留著以後要用thread的) 以上,再麻煩高手回答,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.18.48.28

10/26 15:53, , 1F
你要在寫一行 TruTransitionData Transition_Data;
10/26 15:53, 1F

10/26 15:54, , 2F
來「定義」這個變數
10/26 15:54, 2F

10/26 15:54, , 3F
這一行寫在哪個檔案都沒差,但不寫不行
10/26 15:54, 3F

10/26 16:37, , 4F
不懂,在主程式的Transition_Data就直接傳過來了不是嗎?
10/26 16:37, 4F

10/26 16:39, , 5F
不是很懂你所指的定義
10/26 16:39, 5F

10/26 17:09, , 6F
請貼完整程式碼吧
10/26 17:09, 6F

10/26 17:10, , 7F
你兩個 .cpp 檔應該不在同一個 project 裡吧
10/26 17:10, 7F

10/26 17:11, , 8F
用 #using 的話你得要自己寫 dllexport 才能用
10/26 17:11, 8F

10/26 17:20, , 9F
在同一個專案裡啊
10/26 17:20, 9F

10/26 17:29, , 10F
我懂l大的意思了,我在主程式是這樣沒錯,在b.cpp才extern
10/26 17:29, 10F
文章代碼(AID): #1AvLCiNB (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
問題
0
10
完整討論串 (本文為第 2 之 9 篇):
問題
3
12
問題
5
13
問題
1
1
問題
1
2
問題
2
8
問題
3
10
問題
0
10
文章代碼(AID): #1AvLCiNB (C_and_CPP)