将CStdStringW转换为char *
convert CStdStringW to TCHAR *
我有一段最初使用CString的代码。由于它不可用于VSExpress用户,我用CString"克隆"替换了它:http://www.codeproject.com/KB/string/stdstring.aspx
这个克隆工作得很好,但在使用它时仍然存在一个问题:
TCHAR *GetConnectionString(){return m_szConnectionString)};
我得到错误"没有合适的转换从"CStdStringW"到"TCHAR *"存在",因为字符串处理不是我的力量,我不知道如何解决这个问题。我知道我可能需要做一些类型转换但是....完整的代码可以在下面找到:使用VS Express
时,在控制台应用程序中使用CString好吧,祝你今天愉快,希望有人能帮我。
问候Lumpi
一旦提交到一个非标准字符串类,就不得不使用它了。您应该更改返回值类型:
CStdString GetConnectionString() {
return m_szConnectionString;
};
另一个选择是将返回类型从TCHAR更改为const TCHAR:
const TCHAR* GetConnectionString() {
return (LPCTSTR)m_szConnectionString;
};
这不是一个很好的解决方案,当调用代码存储指针和连接字符串被改变时,它将失败。顺便说一下,这也是原始代码中的一个缺陷。
根据你发布的链接,CStdString
来源于basic_string<TCHAR>
。因此,可以使用它的c_str()方法。
const TCHAR *GetConnectionString()
{
return m_szConnectionString.c_str();
}
相关文章:
- 将无符号char*转换为std::istream*C++
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 将函数参数"const char*"转换为"std::string_view"是
- C ++如何在使用"tolower"时将char转换为int
- 有没有办法在C++的赋值中将"char**"转换为"double"?
- JavaCPP 错误:无法将参数"1"的"char*"转换为"Abc*
- 为什么从 char 转换为 std::byte 可能是未定义的行为?
- 如何在虚幻引擎4中将char*转换为TCHAR?
- C++:将模板类型 char 转换为 std::string
- strcmp/char* 转换无法按预期工作
- C++中的SQLite char*转换
- 无法从 const char* 转换为 const char *&
- 在 C++ 中将 char 转换为 int,而无需符号位传播
- 如果必须包含西里尔字符,如何将 char* 转换为 std::string?
- 试图使用strCMP时的char转换错误
- 无法从'const char *'转换为'LPCTSTR'
- 将 std::vector<char> 转换为字符* 会导致字符缺陷
- 使用 static_cast 将 char 转换为 int c++
- 如何在 C++(MFC) 中将 char* 转换为 LPCTSTR
- 无法将const char转换为字符串构造字符串