string与wstring的互相转换接口(Windows版本)

string与wstring的互相转换接口(Windows版本)

std::wstring stringToWstring( const std::string & str )
{
	LPCSTR	pszSrc	= str.c_str();
	int	nLen = MultiByteToWideChar( CP_ACP, 0, pszSrc, -1, NULL, 0 );
	if ( nLen == 0 )
		return(std::wstring( L"" ) );

	wchar_t* pwszDst = new wchar_t[nLen];
	if ( !pwszDst )
		return(std::wstring( L"" ) );

	MultiByteToWideChar( CP_ACP, 0, pszSrc, -1, pwszDst, nLen );
	std::wstring wstr( pwszDst );
	delete[] pwszDst;
	pwszDst = NULL;

	return(wstr);
}


std::string wstringToString( const std::wstring & wstr )
{
	LPCWSTR pwszSrc = wstr.c_str();
	int	nLen = WideCharToMultiByte( CP_ACP, 0, pwszSrc, -1, NULL, 0, NULL, NULL );
	if ( nLen == 0 )
		return(std::string( "" ) );

	char* pszDst = new char[nLen];
	if ( !pszDst )
		return(std::string( "" ) );

	WideCharToMultiByte( CP_ACP, 0, pwszSrc, -1, pszDst, nLen, NULL, NULL );
	std::string str( pszDst );
	delete[] pszDst;
	pszDst = NULL;

	return(str);
}

  

转载于:https://www.cnblogs.com/eaglexmw/p/11062806.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值