我是 MFC 的新手,我不知道如何处理这个错误。
错误
错误 C2664:“void ATL::CStringT::Format(const wchar_t *,...)”:无法将参数 1 从“const char [6]”转换为“const wchar_t *”
继承人这一行:
m_Echo1.Format("%d %",state.dwMemoryLoad);
您发布的代码行有 2 个明显的错误:
%
)。如果您希望格式字符串包含文字百分号,则必须使用%%
.m_Echo1
是类型CString
,则必须将参数包装在 a _T
orTEXT
宏中:_T( "%d %%" )
。如果m_Echo1
是类型CStringW
,则参数必须作为 UNICODE 字符串文字传递,方法是在其前面加上L
: L"%d %%"
。注意:您发布的错误消息与代码行不匹配。错误消息是指const char [6]
代码中的字符串文字类型为const char [5]
. 确保错误消息和代码匹配。
默认情况下,Windows 应用程序设置为使用 16 位字符,而不是 8 位字符。将带引号的字符串更改为 L"%d %" 以指定 16 位字符的字符串。