c++ - Windows API - 初学者帮助

标签 c++ winapi

我尝试使用 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/

相关文章:

c++ - Windows (XP)下编译C/C++ makefile文件

c++ - 子矩阵越界 (OpenCV)

c - 启用绕过代理服务器并通知 IE 进行更改

c++ - 无法将参数从 'const char[20]' 转换为 'LPCWSTR'

winapi - 如何显示 WIndows 开始菜单

c++ - 进程工作集内存急剧上升后软件崩溃

c++ - 关于 C++ 中的访问说明符

c++ - Qt 远程对象

c# - UpdateResource 不适用于 lpType 作为字符串

winapi - 如何知道 Windows HWND 的当前位图缩放因子?