CString 转 String

坏男孩 2011-08-19 04:02:41
string s(CString.GetBuffer());
GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

别人都说这个可发实现由CString转String 为什么我的不行啊,我用的编译器是VS2010。大哥们帮帮忙哦。
提示说 string 没有符合的构造函数。

还有我有一个CString s = _T("aaa bbbb");
我想分隔得到str1 = aaa;
str2 = bbb.知道的麻烦说一下 ,主要的还是第一个问题 后面的自已弄几下应该可以解决掉。
...全文
207 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
5t4rk 2011-08-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 babilife 的回复:]

不管是不是Unicode下,string转CString,都直接用
string stlstr="afd";
CString msstr=stlstr.c_str();//给CString赋值可以随意使用Unicode或ANSI字符串,CString会自动转换

CString转string:
#include "atlconv.h"
USES_CONVERSION;
CStr……
[/Quote]
++
ding
一叶之舟 2011-08-19
  • 打赏
  • 举报
回复
用split先分隔再构造两个string
赵4老师 2011-08-19
  • 打赏
  • 举报
回复
字符串那些事儿:BSTR-LPSTR-LPWSTR-CString-VARIANT-COleVariant-_variant_t-CComBSTR-_bstr_t
http://blog.csdn.net/pizi0475/archive/2010/03/04/5346708.aspx
走好每一步 2011-08-19
  • 打赏
  • 举报
回复
呵呵,vs2010,不解释
至善者善之敌 2011-08-19
  • 打赏
  • 举报
回复
不管是不是Unicode下,string转CString,都直接用
string stlstr="afd";
CString msstr=stlstr.c_str();//给CString赋值可以随意使用Unicode或ANSI字符串,CString会自动转换

CString转string:
#include "atlconv.h"
USES_CONVERSION;
CString msstr=_T("salfj");
string stlstr=T2A((LPTSTR)(LPCTSTR)msstr);
wstring stlstrw;
#if UNICODE
stlstrw=(LPTSTR)(LPCTSTR)msstr;
#else
stlstrw=A2W((LPTSTR)(LPCTSTR)msstr);
#endif

CString 转 TCHAR* 最简单的方法:(LPTSTR)(LPCTSTR)msstr;
要不就用msstr.GetBuffer();然后msstr.ReleaseBuffer();

建议:
#if UNICODE
typedef wstring tstring;
#else
typedef string tstring;
#endif
以后就都使用tstring了,那么不管是否为Unicode,都直接
CString msstr=_T("salfj");
tstring stlstr=(LPTSTR)(LPCTSTR)msstr;
v_table 2011-08-19
  • 打赏
  • 举报
回复
#pragma once

#include <tchar.h>
#include <string>

#ifdef _UNICODE
#define tstring std::wstring
#else
#define tstring std::string
#endif
luciferisnotsatan 2011-08-19
  • 打赏
  • 举报
回复
CStringA sa = "aaa bbbb";
string str(sa.GetBuffer());
sa.ReleaseBuffer();
cout<<str;

CStringW sw = L"aaa bbbb";
wstring wstr(sw.GetBuffer());
sw.ReleaseBuffer();
wcout<<wstr;

没问题
turing-complete 2011-08-19
  • 打赏
  • 举报
回复
为什么非要用CString呢?
luciferisnotsatan 2011-08-19
  • 打赏
  • 举报
回复
你改不会是unicode工程吧。
设置了UNICODE,CString对应的是wchar_t。而string还是char,wstring才是wchar_t。

64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧