我有一個具有2個winforms的應用程序:Form1.h和TrackEdit.h。他們都在相同的名稱空間(「ParkCleanUp2」)。父窗口調用函數.NET C++
從內Form1中我把這個代碼:
ParkCleanUp2::TrackEdit^ te;
如果它給了我這些錯誤:
Error 24 error C2039: 'TrackEdit' : is not a member of 'ParkCleanUp2' (TrackEdit.cpp) c:\users\-joey\documents\visual studio 2010\projects\park cleanup 2\park cleanup 2\Form1.h 2332
Error 25 error C2065: 'TrackEdit' : undeclared identifier (TrackEdit.cpp) c:\users\-joey\documents\visual studio 2010\projects\park cleanup 2\park cleanup 2\Form1.h 2332
Error 26 error C2065: 'te' : undeclared identifier (TrackEdit.cpp) c:\users\-joey\documents\visual studio 2010\projects\park cleanup 2\park cleanup 2\Form1.h 2332
不過,如果我去TrackEdit.h它告訴我:
namespace ParkCleanUp2 {
//Some namespae includes
public ref class TrackEdit : public System::Windows::Forms::Form
所以我想知道爲什麼它給了我錯誤「'TrackEdit':不是'ParkCleanUp 2'「以及爲什麼它正在查看TrackEdit.cpp文件,而我包含.h文件。 我發現很奇怪,也許很重要的一點是,當我評論TrackEdit.h中的#include "Form1.h
行時,它完美無缺,但在TrackEdit.h中,我無法調用Form1的函數(如選中一個列表框),我想實現。
你能告訴我們你的代碼呢? – antonijn
我唯一能猜到的是你已經使用了'ParkCleanUp2.TrackEdit'而不是'ParkCleanup2 :: TrackEdit',這是真的嗎? – antonijn
@AntonieBlom這是我目前用來運行表單的代碼: ParkCleanUp2 :: TrackEdit^te = gcnew ParkCleanUp2 :: TrackEdit(TrackUIDs [track_list-> SelectedIndex]); > ShowDialog(); 雖然,這一個給我的''TrackEdit':不是'ParkCleanUp2''錯誤的成員,如果我刪除了「ParkCleanUp2 ::」命名空間前綴錯誤消失了,但其他的仍然存在。所以如果我使用這個代碼: TrackEdit^te = gcnew TrackEdit(TrackUIDs [track_list-> SelectedIndex]); > ShowDialog(); 第一個錯誤是固定的,但其他錯誤仍然存在。 – LeopardGL