看板 C_and_CPP 關於我們 聯絡資訊
: → 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
littleshan:你要在寫一行 TruTransitionData Transition_Data; 10/26 15:53
littleshan:來「定義」這個變數 10/26 15:54
littleshan:這一行寫在哪個檔案都沒差,但不寫不行 10/26 15:54
tyc5116:不懂,在主程式的Transition_Data就直接傳過來了不是嗎? 10/26 16:37
tyc5116:不是很懂你所指的定義 10/26 16:39
littleshan:請貼完整程式碼吧 10/26 17:09
Ebergies:你兩個 .cpp 檔應該不在同一個 project 裡吧 10/26 17:10
Ebergies:用 #using 的話你得要自己寫 dllexport 才能用 10/26 17:11
tyc5116:在同一個專案裡啊 10/26 17:20
tyc5116:我懂l大的意思了,我在主程式是這樣沒錯,在b.cpp才extern 10/26 17:29