gpt4 book ai didi

转换到 LPCWSTR?

转载 作者:可可西里 更新时间:2023-11-01 13:17:02 25 4
gpt4 key购买 nike

我正在尝试创建一个(非常)简单的 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, HINSTANCE hPrevInstance, 
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, L"Hello", L"Note", MB_OK);
return 0;
}

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

关于转换到 LPCWSTR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/667616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com