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;

版权声明:本文为weixin_41167925原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。