我一直试图将一个名为Facade
的单例类的对象从Form1
传递给Form2
。是的,这是一个广泛讨论的主题,但是所有网站都在c#中解决了这个问题,并且我试图在c ++中使用这些技术并且它不起作用,尽管它们在c#中工作。在Form1
...
textBox1->Text=f.getVars1().ToString();
Form2^ f2=gcnew Form2(f);//error 5
...
在Form2
Facade f1;
Form2(Facade f2)
{
InitializeComponent();
f1=f2;//error 3
}
并在Form2
按钮事件textBox1->Text=f1.getVars1().ToString();
它在我尝试时显示这些错误
Error 3 error C2679: binary '=' : no operator found which takes a
right-hand operand of type 'Facade' (or there is no acceptable
conversion)
Error 5 error C2664: 'FacadeCheck::Form2::Form2(Facade)' : cannot
convert parameter 1 from 'Facade' to 'Facade'
此外,我几乎尝试了所有解决方案,所以任何人都请尝试在c++
解决这个问题,这将是一个很大的帮助。我使用2010版本的ms visual studio ...感谢任何帮助,提前感谢。
您需要将对象作为gc引用传递和存储。在Form2中执行:
Facade ^ f1;
Form2(Facade ^ f2)
{
...
f1 = f2;
}