string转LPCTSTR类型

LPCTSTR不是一个类型,而是两种类型:LPCSTR和LPCWSTR其中之一。会根据你当前程序是否使用UNICODE字符集来变成那二者之一。

如果使用UNICODE字符集,则LPCTSTR = LPCWSTR,如果使用Multi-Byte字符集,则LPCTSTR = LPCSTR。

//Multi-Byte编码下, string转LPCSTR(LPCTSTR)类型: 
string str = "hello, I'm string";
LPCSTR strtmp1 = str.c_str();

 

//Unicode编码下, string转LPCWSTR(LPCTSTR)类型: 
string str = "hello, I'm string";
size_t size = str.length();
wchar_t* buffer=new wchar_t[size+1];
MultiByteToWideChar(CP_ACP, 0, str.c_str(), size, buffer, size*sizeof(wchar_t));
buffer[size] = 0;
delete buffer;

 

posted on 2017-03-20 13:07  czhoud  阅读(4804)  评论(0编辑  收藏  举报

导航