標籤: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