char* WstringToString( const WCHAR* pWString )
{
if ( wcslen( pWString ) > 999 )
{
return NULL;
}
int nLen = WideCharToMultiByte( CP_ACP, 0, pWString, -1, NULL, 0, NULL, NULL );
if( nLen <= 0 )
return NULL;
static char szRet[ 1000 ];
memset( szRet, 0, sizeof( char ) * 1000 );
WideCharToMultiByte( CP_ACP, 0, pWString, -1, szRet, nLen, NULL, NULL );
return szRet;
}
WCHAR* StringToWstring( const char* pString )
{
int nLen = strlen( pString );
if ( nLen > 999 )
{
return NULL;
}
int nSize = MultiByteToWideChar( CP_ACP, 0, pString, nLen, 0, 0 );
if ( nSize <= 0 )
return NULL;
static WCHAR wszRet[ 1000 ];
memset( wszRet, 0x0, sizeof( WCHAR ) * 1000 );
MultiByteToWideChar( CP_ACP, 0, pString, nLen, wszRet, nSize );
if ( 0xFEFF == wszRet[ 0 ] )
{
for ( int i=0; i<nSize; i++ )
{
wszRet[ i ] = wszRet[ i + 1 ];
}
}
return wszRet;
}
宽字符与多字节字符串转换
本文介绍了一个用于在宽字符(WCHAR)与多字节字符(char)之间进行转换的实用函数。该函数能够处理从宽字符到多字节字符(WstringToString)及从多字节字符到宽字符(StringToWstring)的转换,并包含了错误处理逻辑,如长度检查等。
157

被折叠的 条评论
为什么被折叠?



