码迷,mamicode.com
首页 > 其他好文 > 详细

string类型转LPCTSTR

时间:2014-12-13 23:19:42      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   使用   sp   on   div   log   

今天在写MFC的时候,发现MessageBox函数的类型是LPCTSTR,而我使用C++ STL的string类型却无法直接转,所以在网上找到一段函数,用于转化

std::wstring StoWs(const std::string& s)
{
 int len;
 int slength = (int)s.length() + 1;
 len = MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, 0, 0); 
 wchar_t* buf = new wchar_t[len];
 MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, buf, len);
 std::wstring r(buf);
 delete[] buf;
 return r;
}

std::string s;

如果是 UNICODE 字符的话:
std::wstring stemp = StoWs(s); 

LPCWSTR result = stemp.c_str();


如果不是:
LPCWSTR result = s.c_str();

另附上一段对应类型表

LPSTR - (long) pointer to string - char *

LPCSTR - (long) pointer to constant string - const char *

LPWSTR - (long) pointer to Unicode (wide) string - wchar_t *

LPCWSTR - (long) pointer to constant Unicode (wide) string - const wchar_t *

LPTSTR - (long) pointer to TCHAR (Unicode if UNICODE is defined, ANSI if not) string - TCHAR *

LPCTSTR - (long) pointer to constant TCHAR string - const TCHAR *

 

string类型转LPCTSTR

标签:style   blog   ar   color   使用   sp   on   div   log   

原文地址:http://www.cnblogs.com/ccode/p/4162000.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!