开始查看此网站上的win32 API:http://www.winprog.org/tutorial/start.html
我真的只是编译了第一个例子,它给了我一个中文/日文的消息提示,或者其他类似的东西。
问题:为什么?
显然,就我的理解而言,我应该得到“再见,残酷的世界!”在一个消息框中(大概名为'注意')。
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, "Goodbye, cruel world!", "Note", MB_OK);
return 0;
}
感谢。
答案 0 :(得分:9)
尝试更改代码:
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, L"Goodbye, cruel world!", L"Note", MB_OK);
return 0;
}
如果它的工作原因是你缺少一些指向正确API的标题,你似乎用ANSI字符串调用MessageBoxW(unicode版本)。如果这不仅仅是一个测试,而是你开始编写一个真实世界的程序,请考虑确保你想要使用什么样的字符(这通常是一个预编译器标志)。然后使用宏_T(
使您的文字与unicode / ansi兼容。
从@Benoit编辑评论: 使用VS 2008/10启动新项目默认设置unicode字符集。
答案 1 :(得分:5)
MessageBox(NULL, _T("Goodbye, cruel world!"), _T("Note"), MB_OK);
或
MessageBoxA(NULL, "Goodbye, cruel world!", "Note", MB_OK);
答案 2 :(得分:1)
我无法将其设置为默认值,因此必须设置每个新项目。 要查找设置: 使用Visual Studio 2010 从主菜单→项目→属性→配置属性→常规→项目详细信息→字符集→“使用多字节字符集”(设置为“使用Unicode字符集”)
之后一切似乎都很好。