CString、LPSTR、std::string、LPCSTR之间的转换
2012-10-13 21:39
411 查看
LPSTR WideChar2MBCS( const CString& strCS )
{
const UINT wLen= strCS.GetLength()+1;
UINT aLen= WideCharToMultiByte(CP_ACP,0,strCS,wLen,NULL,0,NULL,NULL);
LPSTR lpa=newchar[aLen];
WideCharToMultiByte(CP_ACP,0,strCS,wLen,lpa,aLen,NULL,NULL);
return lpa;
}
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
std::string WideChar2StdStr(const CString&
strcs)
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cppblog.com/Images/dot.gif)
{
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
LPSTR l= WideChar2MBCS(strcs);
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
std::string stdStr(l);
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
delete [] l;
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return stdStr;
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
LPOLESTR MBCS2WideChar( LPCSTR lpa )
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cppblog.com/Images/dot.gif)
{
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
size_t aLen= strlen(lpa)+1;
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
int wLen= MultiByteToWideChar(CP_ACP,0,lpa,aLen,NULL,0);
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
LPOLESTR lpw=new WCHAR[wLen];
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
MultiByteToWideChar(CP_ACP,0,lpa,aLen,lpw,wLen);
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return lpw;
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
CString MBCS2CString( LPCSTR lpa )
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cppblog.com/Images/dot.gif)
{
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
LPOLESTR lpw= MBCS2WideChar(lpa);
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
CString cstring(lpw);
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
delete [] lpw;
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return cstring;
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
CString StdStr2CSting(const std::string&
stdStr )
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cppblog.com/Images/dot.gif)
{
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return MBCS2CString(stdStr.c_str());
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
{
const UINT wLen= strCS.GetLength()+1;
UINT aLen= WideCharToMultiByte(CP_ACP,0,strCS,wLen,NULL,0,NULL,NULL);
LPSTR lpa=newchar[aLen];
WideCharToMultiByte(CP_ACP,0,strCS,wLen,lpa,aLen,NULL,NULL);
return lpa;
}
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
std::string WideChar2StdStr(const CString&
strcs)
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cppblog.com/Images/dot.gif)
{
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
LPSTR l= WideChar2MBCS(strcs);
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
std::string stdStr(l);
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
delete [] l;
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return stdStr;
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
LPOLESTR MBCS2WideChar( LPCSTR lpa )
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cppblog.com/Images/dot.gif)
{
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
size_t aLen= strlen(lpa)+1;
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
int wLen= MultiByteToWideChar(CP_ACP,0,lpa,aLen,NULL,0);
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
LPOLESTR lpw=new WCHAR[wLen];
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
MultiByteToWideChar(CP_ACP,0,lpa,aLen,lpw,wLen);
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return lpw;
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
CString MBCS2CString( LPCSTR lpa )
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cppblog.com/Images/dot.gif)
{
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
LPOLESTR lpw= MBCS2WideChar(lpa);
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
CString cstring(lpw);
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
delete [] lpw;
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return cstring;
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
CString StdStr2CSting(const std::string&
stdStr )
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cppblog.com/Images/dot.gif)
{
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return MBCS2CString(stdStr.c_str());
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
相关文章推荐
- CString、LPSTR、std::string、LPCSTR之间的转换
- CString 和 LPCTSTR 之间的转换 及 LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR的区分与转化
- 完成一程序演示字符数组、C风格字符串、std::string和MFC中的Cstring类型之间的相互转换
- 标准字符串std::string和System::String, CString之间的转换
- CString 和 LPCTSTR 之间的转换 及 LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR的区分与转化
- {wchar_t*, wchar_t, wchat_t数组},{char,char*,char数组},{std::string,std::wstring},CString之间的相互转换
- CString 和 LPCTSTR 之间的转换 及 LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR的区分与转化(转)
- CString,std::string,char*之间转换
- 标准字符串std::string和System::String, CString之间的转换
- CString 和 LPCTSTR 之间的转换 及 LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR的区分与转化
- 【C++】MFC中的CString和std::string,以及两者之间的相互转换(基于VS201X版本)
- MFC中CString与std::string之间的转换问题 涉及LPTSTR
- 标准字符串std::string和System::String, CString之间的转换
- 标准字符串std::string和System::String, CString之间的转换
- 标准字符串std::string和System::String, CString之间的转换
- CString 和 LPCTSTR 之间的转换 及 LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR的区分与转化
- CString 和 LPCTSTR 之间的转换 及 LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR的区分与转化
- CString 和 LPCTSTR 之间的转换 及 LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR的区分与转化
- std::string 与 CString之间的转换
- 浅谈c-string(char或者wchar_t),std::string和CString之间的转换