在c ++中的winforms之间传递对象

问题描述 投票:-2回答:1

我一直试图将一个名为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 ...感谢任何帮助,提前感谢。

c++ winforms parameter-passing
1个回答
0
投票

您需要将对象作为gc引用传递和存储。在Form2中执行:

Facade ^ f1;
Form2(Facade ^ f2)
{
  ...
  f1 = f2;
}
© www.soinside.com 2019 - 2024. All rights reserved.