投射到LPCWSTR?

前端之家收集整理的这篇文章主要介绍了投射到LPCWSTR?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建一个(非常)简单的Win32 GUI程序,但由于某种原因,编译器(我正在使用VC 2008 Express)希望我手动将每个字符串或char *强制转换为LPCWSTR:

我每次执行此操作时都会收到此编译器错误,例如,我为“Hello”和“Note”收到此错误

错误C2664:’MessageBoxW’:无法将参数2从’const char [22]’转换为’LPCWSTR’

请告诉我,每次我这样做都不需要施展……

这是代码

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
    MessageBox(NULL,"Hello","Note",MB_OK);
    return 0;
}

解决方法

VS2008中新项目的默认设置是构建UNICODE感知应用程序.您可以更改该默认值并返回使用ANSI或MBCS应用程序(属性 – >配置属性 – >一般 – >字符集),或使用这样的Unicode字符串:
int WINAPI WinMain(HINSTANCE hInstance,L"Hello",L"Note",MB_OK);
    return 0;
}

不要将字符串转换为LPCWSTR,因为这会导致未定义的行为! char与wchar_t不同!

猜你在找的C&C++相关文章