我尝试使用 Windows API 创建一个非常简单的应用。
我在控制台做了一些小应用程序。这是我第一次使用 Win32 应用程序。 我已经搜索并找到了本网站推荐的伪造文件。但我试着写第一行:
#include <stdafx.h>
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBoxW(NULL, "Good bye Cruel World", "Note", MB_OK);
return 0;
}
但它不起作用(从 VS 2008 创建的默认项目中删除行并写入这些行)。
最佳答案
大多数 Windows API 调用有两种版本,一种采用单字节字符串,另一种采用 2 字节 unicode 字符串。单字节的名称末尾有一个 A,2 字节的名称末尾有一个 W。在 windows.h 中定义了宏,因此如果您将字母省略,它会根据编译器宏选择一个或另一个。
在您编写的代码中 -
MessageBoxW (NULL, "Good bye Cruel World", "Note", MB_OK );
您使用单字节字符串调用 API 的宽字符版本,这是行不通的。更改为 MessageBoxA 或将您的字符串更改为宽字符串 -
MessageBoxW (NULL, L"Good bye Cruel World", L"Note", MB_OK );
关于c++ - Windows API - 初学者帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2437918/