0

我正在为大学项目学习 DirectX,但是我的编译器显示此错误:

"10 C:\Dev-Cpp\projectdirectx\main.cpp cannot convert `const wchar_t*' to `const CHAR*' for argument `2' to `int MessageBoxA(HWND__*, const CHAR*, const CHAR*, UINT)'"

我根本不明白,我不知道我做错了什么,我试图做的是一个简单的消息框,这是代码:

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nShowCmd)
{
      MessageBox(NULL, L"testing testing",
                 L"C++", MB_OK);


      return 0;
}

我该怎么办?

4

3 回答 3

2

您正在构建一个 ANSI 版本,但使用的是 Unicode 文字。要么使用常规字符串文字(L在前面放置前缀),要么切换到 Unicode 构建。

于 2013-08-10T18:31:58.830 回答
0

只需从字符串中删除 L 前缀。

于 2013-08-10T18:31:45.493 回答
0

问题是您正在尝试调用MessageBox函数的宽字符版本,而在您的构建环境中并非如此。只需删除L函数调用中的宏,它应该可以工作。

于 2013-08-10T18:32:06.983 回答