问题描述
==============我使用 CodeBlock,此代码来自 Direct X 教程.
=============== I use CodeBlock, this code is from a Direct X tutorial.
我收到以下错误:
推荐答案
你的项目没有定义 UNICODE
预处理器符号,所以 Windows API 函数接受字符串指针需要 char*
而不是 wchar_t *
.改变
Your project doesn't have the UNICODE
preprocessor symbol defined, so Windows API functions that take pointers to strings expect char *
and not wchar_t *
. Change
到
对剩余的字符串文字执行相同的操作.或者,将它们更改为 _T("WindowClass1")
,这将根据定义的 UNICODE
符号扩展为正确类型的字符串文字.
Do the same for the remaining string literals. Alternatively, change them to _T("WindowClass1")
, this will expand to the correct type of string literal based on the UNICODE
symbol being defined.
我的建议是转到您的项目属性并将 Character Set
设置更改为 Unicode
,然后显式使用所有 Windows API 函数的宽字符版本.例如,调用 CreateWindowW
而不是 CreateWindow
.
My recommendation is to go to your project properties and change the Character Set
setting to Unicode
, and then use the wide char versions of all Windows API functions explicitly. For example, instead of CreateWindow
, call CreateWindowW
.
我建议的项目设置仅适用于 Visual Studio,不确定如何在 Code::Blocks 中执行此操作.
The project setting I suggested only applies to Visual Studio, not sure how to do that in Code::Blocks.
这篇关于错误:无法在赋值中将“const wchar_t [13]"转换为“LPCSTR {aka const char*}"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!