【问题标题】:C++/CLI msvc++2010 class problemC++/CLI msvc++2010类问题
【发布时间】:2011-09-01 00:35:20
【问题描述】:

我想调用在我的主函数中创建的类的成员函数,但我得到一些错误,我不能调用非静态成员函数。如何调用“Form1”的公共成员函数“msg”?

int main(array<System::String ^> ^args) {
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false); 

    Application::Run(gcnew Form1());

    int test = 0;
    if (test>0) {
        Form1::msg("1");
    } else {
        Form1::msg("2");
    }
    return 0;
}

【问题讨论】:

  • 你不能让这段代码工作。如果没有先阅读有关 Winforms 编程的书,请不要尝试这样做。

标签: windows visual-c++ c++-cli


【解决方案1】:

您需要Form1 的实例句柄。显然,您应该将gcnew Form1() 的左值存储为调用msg 的对象。

【讨论】:

  • 尝试Form1^ p = gcnew Form1(); 创建托管句柄。将p 传递给Run()。然后使用p-&gt;msg("1")p-&gt;msg("2")。但汉斯是对的:这段代码看起来很奇怪。阅读有关 WinForms 的书。
猜你喜欢
  • 2011-07-26
  • 2011-03-11
  • 2018-12-05
  • 2011-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多