无法将参数 1 从 'const char [11]' 转换为 'LPCWSTR'
Cannot convert argument 1 from 'const char [11]' to 'LPCWSTR'
我正在C++中制作一个创建.bmp
文件的程序,但我遇到了一个我不理解的错误:
"HANDLE CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE)":无法将参数1从"const char[11]"转换为"LPCWSTR"
当我编译以下代码时会发生此错误:
file = CreateFile("exmple.bmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
编译时启用了UNICODE
,因此CreateFile()
映射到CreateFileW()
,它的第一个参数是LPCWSTR
,一个指向16位(宽字符)字符串的指针。
要修复此错误,请将L
添加到字符串文字的前面,使其成为宽字符串:
file = CreateFile(L"exmple.bmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
-
在"example.bmp"字符串前面加一个"L",例如:
file = CreateFile(L"exmple.bmp",GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL);
-
这会将"example.bmp"转换为宽字符串。
您需要在文件名之前添加'L'。
相关文章:
- C++ 在参数中将字符串转换为 LPCWSTR
- CPP Windows 字符串转换混淆了 CStringA 和 LPCWSTR
- 代码 c++ VS 2010 中的 LPCWSTR 到字符串转换问题
- 无法将常量字符 [16] 转换为 LPCWSTR
- 无法将参数 2 从 'const char [5]' 转换为 'LPCWSTR'
- 如何转换LPCWSTR和CHAR
- 如何将 CStringW 转换为 LPCWSTR
- 将SystemTime转换为LPCWSTR
- LPCWSTR 无法在 TextOut() 方法上正确转换
- 无法将'LPCWSTR {aka const wchar_t*}'转换为 'LPCSTR {aka const char*}
- 如何将DWORD或char*类型的变量转换为LPCWSTR
- 'HMODULE GetModuleHandleW(LPCWSTR)':无法将参数 1 从 'const char *' 转换为 'LPCWSTR'
- 从字符转换为 LPCWSTR
- 如何将字符* 转换为 LPCWSTR
- 错误 C2664:'auxDIBImageLoadW':无法将参数 1 从 'LPSTR' 转换为 'LPCWSTR'
- 将浮点数转换为 LPCWSTR
- 如何将LPCWSTR转换为LPWSTR
- 将LPSTR转换为LPCWSTR
- 调用CreateProcessW(Mobile MFC)时BSTR到LPCWSTR的转换
- 如何将LPTSTR转换为LPCWSTR