的main.cpp無法從一個類訪問另一個類的實例
#include "stdafx.h"
#include <iostream>
#include "Form1.h"
#include "myclass.h"
using namespace Akva;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Form1^ MainForm = gcnew Form1();
Application::Run(MainForm);
return 0;
};
Form1.h
#include "myclass.h"
public ref class Form1 : public System::Windows::Forms::Form
{
...
};
myclass.h
#include "Form1.h"
class MyClass
{
public: void addBox();
};
void MyClass::addBox()
{
PaintBox^ pb = cgnew PaintBox();
MainForm->Controls->Add(pb); //here
};
I無法從「MyClass」類訪問main.cpp中的實例「MainForm」。 我怎麼能得到它?
UPD:myclass.h中的代碼包含在創建實例MainForm之前,並且Form1的實例在myclass.h中不可見。
#include "stdafx.h"
#include <iostream>
#include "Form1.h"
#include "myclass.h"
using namespace Akva;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Application::Run(gcnew Form1()); //here
return 0;
};
另一個問題:我如何訪問Form1的元素和實例?
我想從「MyClass」創建PictureBox。
您的myclass。h頭文件#包含Form1.h。您的Form1.h頭文件#includes myclass.h。像這樣的循環依賴不能工作。你將不得不重構你的代碼,所以這不會發生。其中通常涉及將某些方法的實現從Form1.h移動到.cpp文件中。 –