当前位置:  开发笔记 > 开发工具 > 正文

投射到LPCWSTR?

如何解决《投射到LPCWSTR?》经验,为你挑选了1个好方法。

我正在尝试创建一个(非常)简单的Win32 GUI程序,但由于某种原因,编译器(我使用的是VC++ 2008 Express)希望我手动将每个字符串或char*强制转换为LPCWSTR:

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

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

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

这是代码:

#include 

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

Stefan.. 14

VS2008中新项目的默认设置是构建UNICODE感知应用程序.您可以更改该默认值并返回使用ANSI或MBCS应用程序(属性 - >配置属性 - >常规 - >字符集),或使用这样的Unicode字符串:

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

不要投你的字符串LPCWSTR,因为这会导致不确定的行为!char与wchar_t不同!



1> Stefan..:

VS2008中新项目的默认设置是构建UNICODE感知应用程序.您可以更改该默认值并返回使用ANSI或MBCS应用程序(属性 - >配置属性 - >常规 - >字符集),或使用这样的Unicode字符串:

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

不要投你的字符串LPCWSTR,因为这会导致不确定的行为!char与wchar_t不同!

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有