const char[]、 const wchar_t[]转换问题

时间:2022-02-26 05:52:52
开发环境:VS2010
1. error C2665: “CPublicFunctions::WriteINIStr”: 3 个重载中没有一个可以转换所有参数类型
可能是“BOOL CPublicFunctions::WriteINIStr(wchar_t,wchar_t,wchar_t)”
“BOOL CPublicFunctions::WriteINIStr(wchar_t,CString,wchar_t)” 
尝试匹配参数列表“(const wchar_t [5], CString, wchar_t)”时

重载怎么不匹配?const wchar_t []和wchar_t有啥不同,要怎么转换?

2.如果想写一个以const char[]作为参数的函数,要怎么写?(便于WriteINIStr("a","b","c");这样调用)

2 个解决方案

#1


window下的宽字符问题,建议楼主程序编译环境选择为unicode,统一用TCHAR就不用转换了。

#2



#ifdef UNICODE
使用multibytetowidechar把char转换到wchar,然后存储到cstring中
#else
这里可以用widechartomultibyte把cstring中的数据转换成char
#endif

#1


window下的宽字符问题,建议楼主程序编译环境选择为unicode,统一用TCHAR就不用转换了。

#2



#ifdef UNICODE
使用multibytetowidechar把char转换到wchar,然后存储到cstring中
#else
这里可以用widechartomultibyte把cstring中的数据转换成char
#endif