我试图在visual studio中从 MyForm 中调用 Form2
#include "Form2.h"
#pragma once
...
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
Form2^ xx = gcnew Form2();
xx->ShowDialog();
}
但是我收到了错误:
标识符" Form2"未定义
我不明白为什么。我已经包含了#34; Form2.h"在MyForm.h中。 怎么解决?
答案 0 :(得分:1)
我猜你在Form2.h中有#include "MyForm.h"
。
您需要做的是将所有方法内容移出.h文件,并将它们放在.cpp文件中。完成后,您应该能够将.h中的许多#include
语句移动到.cpp。
通过#including彼此的两个头文件,你最终会遇到这样的情况。 #pragma曾经破坏了递归,但无论哪一个最终被编译都不会看到另一个,因为它会在后处理文件中出现。通过只将类定义留在头文件中,并将内容移动到.cpp文件中,现在头文件不需要互相引用,只有.cpp需要引用两个头文件,所以一切都编译好了干净。