CString 与 const char* 的拼接

extern "C" __declspec(dllexportvoid _stdcall setSSLCertificateFilePath(const char* caCrtFile, const char* serverCrtFile, const char* serverKeyFile);

以上函数,用VS2008 编译时,没有问题


setSSLCertificateFilePath(theApp.GetAppPath()+"\\ca.crt", theApp.GetAppPath()+"\\server.crt", theApp.GetAppPath()+"\\server.key");


theApp.GetAppPath() 为CString&


后改用VS2005编译时,就报错


错误9error C2679: 二进制“+”: 没有找到接受“const char [8]”类型的右操作数的运算符(或没有可接受的转换)d:\source\eventlibsource\win32\appfl\testpro\testprodlg.cpp164


原因是VS2005默认使用的是Unicode字符集


修改VS2005项目属性:常规->字符集


将“使用Unicode字符集”改为“使用多字节字符集”即可。

你可能感兴趣的:(VC)