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;