2017-05-05 66 views
0

我正在使用Visual C++ 2010 Express。我有一個窗體(Form1.h),它包含一個文本框(textBox1)。從另一個cpp文件訪問Form1的文本框,Visual C++ 2010

我想另一個test.cpp能夠訪問textBox1並顯示消息。

我有類似:

在Form1.h

... standard form code generated by Visual Studio 

private: System::Windows::Forms::TextBox^ textBox1; 

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) 
{ 
    textBox1->Text = "Connecting to server ..."; 
} 

而且在TEST.CPP包含有類似

.... 

void write (const unsigned char *data, int length) 
{ 
    System::Windows::Forms::textBox1->Text = "Send failed"; 
} 
.... 

編譯後,我有以下錯誤:

  • 'textBox1':不是成員「系統:視窗:形式」
  • 'textBox1的:未聲明的標識符
  • 左「 - >正文」必須指向類/結構/聯合/通用型
  • 語法錯誤:缺少「 ;」 'string'之前

我是Visual C++新手,不知道如何正確訪問類/對象。 在此先感謝您的幫助。

回答

0

我覺得有些編譯器問題可以通過改變來解決:

系統:視窗:形式:textBox1的只是textBox1的

思維的另一種方式是textBox1的是一個管理(^) System :: Windows :: Forms :: TextBox類型的指針。

其他拼寫錯誤可能仍然存在。上面的代碼片段似乎在C++/.NET中。這是與「普通」C++不同的野獸。

+0

感謝您的意見。我看到另一個試圖做類似的事情,但使用test.cpp中定義的函數並在Form1中調用它。對我來說,我想在test.cpp中使用它。鏈接是: http://stackoverflow.com/questions/20980056/change-label-text-from-different-header-file-visual-c-2010 –

+0

啊......那麼這樣的答案似乎是合理的。正如答案的作者所述,文本框對於Form1類是私有的,因此需要訪問者函數。 –

+0

如何在test.cpp中調用它? –