vc++ 2019通过错误消息拒绝我的语句sprintf(subjectId, "%s", imageInfo->name);
:
错误C2664: 'int _swprintf(wchar_t *const,const wchar_t *const,…)':无法将参数1从'char[50]'转换为'wchar_t *const'
其中imageInfo->name
类型为char *
,subjectId
类型为字符数组(char subjectId[50]
)。
我的vc++字符集配置是"使用Unicode字符集"。但我必须使用窄字符,因为传递给我的消息是窄字符。据我所知,即使在宽字符集的情况下,sprintf()
仍然可以使用。另外,我叫了sprintf()
,为什么它抱怨_swprintf()
呢?
如果选择" Use Unicode Character set ",它将使用Unicode字符集。c风格的字符串现在保存在TCHAR
中(与WCHAR
相同,与wchar_t
相同),而不是char
。
如果你不想要这些转换,就不要要求它们。
您可以在Microsoft页面上找到有关Unicode和多字节字符集支持的更多信息。