Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > почему не работает NetShareEnum?


Автор: victor79 22.5.2015, 02:15
Код

    PSHARE_INFO_1 sh;
    DWORD resume;

    for (;;) {
        DWORD cnt, total_cnt;

        NET_API_STATUS res =
                NetShareEnum(server, 1, (LPBYTE*)&sh,
                              MAX_PREFERRED_LENGTH, &cnt, &total_cnt, &resume);

        if (res == ERROR_SUCCESS || res == ERROR_MORE_DATA) {
            for (int i = 0; i < cnt; i++) {

                  add_item(data, sh[i].shi1_netname);
            }
        }

        NetApiBufferFree(sh);

        if (res != ERROR_MORE_DATA) break;
    }


для одного из компов сети выдал список шар, а для остальных нет.
Для локального, если server поставить NULL не выдает.
Посмотрел по исходникам плагина FAR, там именно таким кодом и опрашиваются шары.
Я так понимаю, тут может быть нужно процессу задать какие-нибудь и как-нибудь права?
Под Администратором то же не работает.
Проверял на Win7 и на WinXP.

Автор: victor79 22.5.2015, 04:04
странность.
Из консольной проги работает, а в виджетах QT этот же код не работате. Проверил отладчиком, просто без ошибок выдает что количество результата по нулям.

Автор: victor79 22.5.2015, 06:55
упс. resume забыл инициализировать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)