在MessageBOX等中,不能将const wchar_t转换为'const_char'作为参数2

时间:2013-08-10 18:29:19

标签: c++ directx

我正在为大学项目学习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;
}

我该怎么办?

3 个答案:

答案 0 :(得分:2)

您正在构建ANSI构建,但使用的是Unicode文字。使用常规字符串文字(在前面删除L前缀),或切换到Unicode构建。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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