在VC編程中,經常會遇到字符串之間的轉換,本文就LPTSTR轉換為std::string進行探討。
在unicode環境下,LPTSTR表示寬字符
有兩種方法
原文參考自web開發網:http://www.software8.co/wzjs/cpp/3617.html
1、
LPTSTR sddd = _T("ddddd");
char *ansiRemoteHost = new char[wcslen(sddd)*2+1];
memset(ansiRemoteHost,0,255);
WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK,sddd,wcslen(sddd)
,ansiRemoteHost,wcslen(sddd),NULL,NULL);
string sddddd = string(ansiRemoteHost);
2、
LPTSTR sddd = _T("ddddd");
CString sChar = CString(sddd);
USES_CONVERSION;
string sddddd = string(T2A(sChar));
當然,環境不同,轉換的方法也就不一樣。