在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));
当然,环境不同,转换的方法也就不一样。