Exemplo n.º 1
0
uint32_t convFromWtoCP866(char **dest, const WCHAR_T *Source, uint32_t len)
{
	if (!len)
		len = getLenShortWcharStr(Source) + 1;
	if (!*dest)
		*dest = new char[len];
	char *tmp = *dest;
	const WCHAR_T *src = Source;
	uint32_t res = 0;

	::memset(*dest, 0, len * sizeof(**dest));
	do {
		*tmp++ = decodeOne(*src++);
		++res;
	} while (len-- && *src);
	*tmp = 0;

	return res;
Exemplo n.º 2
0
//---------------------------------------------------------------------------//
uint32_t convFromShortWchar(wchar_t** Dest, const WCHAR_T* Source, uint32_t len)
{
    if (!len)
        len = getLenShortWcharStr(Source)+1;

    if (!*Dest)
        *Dest = new wchar_t[len];

    wchar_t* tmpWChar = *Dest;
    WCHAR_T* tmpShort = (WCHAR_T*)Source;
    uint32_t res = 0;

    ::memset(*Dest, 0, len*sizeof(wchar_t));
    do
    {
        *tmpWChar++ = (wchar_t)*tmpShort++;
        ++res;
    }
    while (len-- && *tmpShort);

    return res;
}