我有一段最初使用CString的代码。由于VSExpress用户无法使用它,因此我将其替换为CString“clone”: http://www.codeproject.com/KB/string/stdstring.aspx
这个克隆工作正常,但使用它时仍然存在一个问题:
TCHAR *GetConnectionString(){return m_szConnectionString)};
我收到错误“没有合适的转换”CStdStringW“到”TCHAR *“存在”,因为字符串处理不是我的力量,我不知道如何解决这个问题。好的,我知道我可能要做某种类型的演员但...... 整个代码可以在以下位置找到: Use CString in console app when using VS Express
好吧,祝你有个愉快的一天,希望有人可以帮助我。
关心Lumpi
答案 0 :(得分:1)
根据您发布的链接,CStdString
来自basic_string<TCHAR>
。因此,您可以使用其c_str()方法。
const TCHAR *GetConnectionString()
{
return m_szConnectionString.c_str();
}
答案 1 :(得分:1)
一旦你提交了一个非标准的字符串类,你就不得不使用它了。您应该更改返回值类型:
CStdString GetConnectionString() {
return m_szConnectionString;
};
另一个选项是将返回类型从TCHAR更改为const TCHAR:
const TCHAR* GetConnectionString() {
return (LPCTSTR)m_szConnectionString;
};
这不是一个很好的解决方案,当调用代码存储指针并且连接字符串被更改时,它将失败。这也是原始代码中的一个缺陷。