我正在为大学项目学习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;
}
我该怎么办?
答案 0 :(得分:2)
您正在构建ANSI构建,但使用的是Unicode文字。使用常规字符串文字(在前面删除L
前缀),或切换到Unicode构建。
答案 1 :(得分:0)
只需从字符串中删除L前缀即可。
答案 2 :(得分:0)
问题是您正在尝试调用MessageBox
函数的宽字符版本,而构建环境中并非如此。只需删除函数调用中的L
宏即可。