powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / EnumPrinters полный список принтеров
4 сообщений из 4, страница 1 из 1
EnumPrinters полный список принтеров
    #34104896
v skopin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!

Не могу получить полный список принтеров(+сетевые!).
Вроде почти копирую из мелкик EnumPrinters - пишет мало выделяю памяти!

Заранее спасибо ВС
...
Рейтинг: 0 / 0
EnumPrinters полный список принтеров
    #34104934
v skopin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
        DWORD dwFlags = PRINTER_ENUM_FAVORITE | PRINTER_ENUM_LOCAL | PRINTER_ENUM_NETWORK;
        LPPRINTER_INFO_2 pPrinters;
        DWORD            cbPrinters;
        DWORD            cReturned, i;
        char             buf[ 256 ];

        if(!EnumPrinters (dwFlags, NULL,  2 , NULL,  0 , &cbPrinters,
                &cReturned))
               MessageBox( 0 , IntToStr(GetLastError()).c_str(), NULL, MB_OK);
Уже даёт 122 (мало выделяю памяти)
...
Рейтинг: 0 / 0
EnumPrinters полный список принтеров
    #34105100
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
int main(){
  DWORD dwFlags = PRINTER_ENUM_FAVORITE | PRINTER_ENUM_LOCAL | PRINTER_ENUM_NETWORK;
  DWORD cbNeeded;
  DWORD cReturned;
  EnumPrintersA(
     dwFlags
   ,  0 
   ,  2 
   ,  0 
   ,  0 
   , &cbNeeded
   , &cReturned
  );

  std::cout << cbNeeded << std::endl;
  
  BYTE* buf = new BYTE[cbNeeded];
  EnumPrintersA(
     dwFlags
   ,  0 
   ,  2 
   , buf
   , cbNeeded
   , &cbNeeded
   , &cReturned
  );

  std::cout << cReturned << std::endl;

  LPPRINTER_INFO_2A pPrinters = (LPPRINTER_INFO_2A)buf;
  for(DWORD i( 0 ); i<cReturned; ++i)std::cout << pPrinters[i].pPrinterName << std::endl;

  delete[]buf;
  return  0 ;
}
...
Рейтинг: 0 / 0
EnumPrinters полный список принтеров
    #34105382
v skopin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо - пошло!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / EnumPrinters полный список принтеров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]