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