【问题标题】:Visual Studio 2013 C++ Hello World Program Unexpected Debug ResultVisual Studio 2013 C++ Hello World 程序意外调试结果
【发布时间】:2014-09-13 15:12:43
【问题描述】:

首先,很抱歉,如果标题选择得不是很好,但我不知道如何处理这段代码,当使用 Visual Studio 2013 编译为 C 时显示一些奇怪的东西。

代码是:

    #include <windows.h>
#include <stdafx.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{
    MessageBox(NULL, "Hello World!", "Note", MB_OK);
    return 0;
}

而且,结果是:

我有来自 MSDN 的 MS Visual Studio 2013 Original Genuine。 还有,我不是中国人。 IDE的界面是英文的。

【问题讨论】:

  • 这是怎么编译的?宽字符串和窄字符串不是兼容的类型。给 winapi 函数提供宽字符串。
  • 我从教程中复制粘贴了这段代码(没有 stdafx.h 标头)(如果需要,我会提供链接)。我试图编译它,但我得到一个错误 c1010。然后,我添加了那个头文件,它编译成功了。
  • stdafx.h 也应该是包含的第一个标头,所以我不确定它是如何编译的。当然,对于 hello world 应用程序来说,使用预编译的头文件是毫无意义的。该教程可能也没有定义UNICODE,这在使用winapi时是一件非常糟糕的事情。
  • 我也想过 UNICODE。谢谢您的回复。我会坚持其他教程。

标签: c++ visual-studio debugging visual-studio-2013


【解决方案1】:

我不完全确定您是如何编译它的,但您很可能在该项目中使用了错误的字符集。

试试:

MessageBox(NULL, L"Hello World!", L"Note", MB_OK);

如果您不打算使用该字符集,您也应该更改它。 右键单击项目并转到属性。 配置。 一般的。 字符集。

【讨论】:

    猜你喜欢
    • 2015-03-04
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多