【问题标题】:How do I show a Win32 MessageBox?如何显示 Win32 消息框?
【发布时间】:2009-07-18 20:52:48
【问题描述】:

我正在尝试制作一个弹出消息框,上面写着“Hello World”。 我从 File>New Project>Visual C++>CLR>Windows Form Application 开始 然后我将工具箱中的一个按钮拖到表单上,双击它 输入了

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
MessageBox("Hello World");
}

然后我编译... 但我收到一条错误消息说

错误 C2440: '' : 无法从 'const char [12]' 转换为 'System::Windows::Forms::MessageBox'

【问题讨论】:

    标签: visual-studio winapi visual-c++


    【解决方案1】:

    你需要:

    MessageBox::Show("Hello World");
    

    (根据您在 Visual Studio 2005 中的说明进行测试。)

    【讨论】:

      【解决方案2】:

      我不确定您的最终目标是什么,但主题行中提到了“C 语言中的 Windows 应用程序”——您创建了一个 C++/CLI 应用程序,这并不是一回事。

      C++/CLI 是微软尝试创建更接近 .NET 运行时的 C++ 方言。

      如果要构建 C 程序,请从 Visual C++ -> Win 32 项目开始。

      在生成的代码中,在_tWinMain函数中,添加对原生MessageBox函数的调用:

      int APIENTRY _tWinMain(HINSTANCE hInstance,
                           HINSTANCE hPrevInstance,
                           LPTSTR    lpCmdLine,
                           int       nCmdShow)
      {
          UNREFERENCED_PARAMETER(hPrevInstance);
          UNREFERENCED_PARAMETER(lpCmdLine);
      
          MessageBox(NULL, _T("Hello world!"), _T("My program"), MB_OK);
      
      // ...
      }
      

      这应该让你开始。

      【讨论】:

      • 我正在尝试学习 theForger 的 Win32 API 编程教程,但我什至不知道如何开始......我在完成他们的第一个作业时遇到了麻烦 =(
      • 好的,那么您不应该使用 CLR 项目类型,而应该使用本机 Win32 项目。尝试从这里开始:winprog.org/tutorial/start.html 并从 Visual C++ -> Win32 -> Win32 项目开始。最好从一个空项目开始(项目向导第 2 页上的复选框。)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      相关资源
      最近更新 更多