热转印www.yxheatpress.com

公司网站模板http://qiyemoban.software8.co/

常用链接

统计

友情链接

最新评论

LPTSTR转换为std::string方法探索

在VC编程中,经常会遇到字符串之间的转换,本文就LPTSTR转换为std::string进行探讨。

在unicode环境下,LPTSTR表示宽字符

有两种方法
原文参考自web开发网:http://www.software8.co/wzjs/cpp/3617.html

1、

LPTSTR sddd = _T("ddddd");
  char *ansiRemoteHost = new char[wcslen(sddd)*2+1];
  memset(ansiRemoteHost,0,255);
  WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK,sddd,wcslen(sddd)
   ,ansiRemoteHost,wcslen(sddd),NULL,NULL);
  string sddddd = string(ansiRemoteHost);

2、

LPTSTR sddd = _T("ddddd");
CString sChar = CString(sddd);
USES_CONVERSION;
string sddddd = string(T2A(sChar));

 

当然,环境不同,转换的方法也就不一样。

posted on 2013-04-01 16:57 不听话的 阅读(2799) 评论(4)  编辑 收藏 引用

评论

# re: LPTSTR转换为std::string方法探索 2013-04-02 12:45 Lo

第二种方法用得太奇怪了
这样就行了吧?
LPTSTR sddd = _T("ddddd");
string sddddd = (CStringA)CString(sddd);
  回复  更多评论   

# re: LPTSTR转换为std::string方法探索 2013-04-02 20:29 万连文

使用atl的转换
T2CA

不要再制造这些东西了,因为已经在那里了。

呃,发现你的第二种方法已经是那样了,不过没必要再分配一次CString了吧  回复  更多评论   

# re: LPTSTR转换为std::string方法探索 [未登录] 2013-05-04 14:40 albert

看大家的评论,也就是说std::string是多字符集的字符串了?是这样吗?  回复  更多评论   

# re: LPTSTR转换为std::string方法探索 [未登录] 2013-05-04 14:42 albert

好像是的:摘自xstring文件
typedef basic_string<char, char_traits<char>, allocator<char> >
string;
typedef basic_string<wchar_t, char_traits<wchar_t>,
allocator<wchar_t> > wstring;  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理