Имеется следующий код :
Но он возвращает некорректный результат. С анси функциями все в порядке, с их юникод аналогами - лажа. Подскажите пожалуйста, в чём моя ошибка.
C:
LPWSTR Base64Encode(LPWSTR lpString)
{
DWORD dwLengthNeeded = 0;
if (CryptBinaryToStringW((BYTE*)lpString, sizeof(lpString), CRYPT_STRING_BASE64, NULL, &dwLengthNeeded))
{
LPWSTR lpEncString = (LPWSTR)LocalAlloc(0, sizeof(WCHAR) * (dwLengthNeeded + 1));
if (CryptBinaryToStringW((BYTE*)lpString, sizeof(lpString), CRYPT_STRING_BASE64, lpEncString, &dwLengthNeeded))
{
return lpEncString;
}
}
return NULL;
}
Но он возвращает некорректный результат. С анси функциями все в порядке, с их юникод аналогами - лажа. Подскажите пожалуйста, в чём моя ошибка.