Невозможно выяснить, как работать со всеми этими «широкими рядами Unicode». Может ли кто-нибудь сказать мне, что я делаю неправильно? Я просто хочу, чтобы получить все локальные группы пользователей, так что я делать:C++ не может получить локальные группы пользователей с помощью NetUserGetGroups()
LPBYTE buffer;
DWORD entries, total_entries;
NetUserGetLocalGroups(NULL, L"rovnyart", 0, LG_INCLUDE_INDIRECT, &buffer, MAX_PREFERRED_SIZE, &entries, &total_entries);
LOCALGROUP_USERS_INFO_0 *groups = (LOCALGROUP_USERS_INFO_0 *) buffer;
unsigned int i;
for (i=0; i<entries;i++)
wprintf(L"%s\n", groups[i].lgrui0_name);
И это то, что я получаю:
t
╝4╝<╝8╝=╝8╝A╝B╝@╝0╝B╝>╝@╝K╝
╝>╝;╝L╝7╝>╝2╝0╝B╝5╝;╝8╝
Process finished with exit code 0
Мои окна язык русский, но я создал одну группу под названием «testgroup1» , и, как вы можете видеть, он тоже не отображается правильно.
я попытался wprintf()
- результат был тот же :(
Что я делаю неправильно
UPD:
Хорошо, я изменил код в соответствии с вашими советами я создал группу под названием?. . «тест», который не является кириллица и кладу пользователя есть
Вот мой код:
LPBYTE pBuf = NULL;
NET_API_STATUS nStatus;
DWORD entries, total_entries;
nStatus = NetUserGetLocalGroups(NULL, L"rovnyart", 0, LG_INCLUDE_INDIRECT, &pBuf, MAX_PREFERRED_LENGTH, &entries, &total_entries);
LOCALGROUP_USERS_INFO_0 *groups = (LOCALGROUP_USERS_INFO_0 *) pBuf;
if (nStatus == 0) {
unsigned int i;
for (i = 0; i < entries; i++)
wprintf(L"%s\n", groups[i].lgrui0_name);
NetApiBufferFree(pBuf);
}
Вот результат:
t
╝4╝<╝8╝=╝8╝A╝B╝@╝0╝B╝>╝@╝K╝
╝>╝;╝L╝7╝>╝2╝0╝B╝5╝;╝8╝
Process finished with exit code 0
В документе [документация] содержится полностью рабочий пример кода (https://msdn.microsoft.com/en-us/library/windows/desktop/aa370655.aspx). – IInspectable
Я бы отметил, что ваш код не проверяет успех, не обнуляет выходы и передает '-1' как' prefmaxlen'. (В образце документации используется «MAX_PREFERRED_LENGTH») – Hasturkun
Удивительно, что люди пытаются выполнить код с API, не прочитав сначала документацию. Значит ли это когда-нибудь хорошо для кого-то? –