我用vc++2008 建立了Form1与Form2两个 windows应用 窗口,启动窗体Form1中有一过程:
public: System::Void ShowMySub(){
Debug::WriteLine(L"XXXX showmysub");
}
在Form1中 呼出了Form2: 代码如下:
Form2^ Form2=gcnew Form2();
Form2->Name=L" Form2";
Form2->Owner=this;
Form2->Show();
我在 Form2.cpp 中 #include "Form1.h ,并想在Form2的过程中调用 Form1中的过程函数: ShowMySub()
我在Form2中执行的调用代码如下:
Form^ Form1 = (Form^)this->Owner;
Form1->BackColor = Color::Red;
Form1->ShowMySub(); // 出错!
错误 1 error C2825: 'Form1': 当后面跟“::”时必须为类或命名空间 d:\vbgood\myc++projects\vc++2008v\ssamp_c++5\ssamp_c++\FrmTVCTRLpanel.h 532 SSAMP_C++
错误 2 error C2039: “btnTVPlayAndPuse_MouseUp”: 不是“`global namespace'”的成员 d:\vbgood\myc++projects\vc++2008v\ssamp_c++5\ssamp_c++\FrmTVCTRLpanel.h 532 SSAMP_C++
错误 3 error C2146: 语法错误 : 缺少“;”(在标识符“btnTVPlayAndPuse_MouseUp”的前面) d:\vbgood\myc++projects\vc++2008v\ssamp_c++5\ssamp_c++\FrmTVCTRLpanel.h 532 SSAMP_C++
错误 4 fatal error C1903: 无法从以前的错误中恢复;正在停止编译 d:\vbgood\myc++projects\vc++2008v\ssamp_c++5\ssamp_c++\VBalanceBar.h 130 SSAMP_C++