Форум программистов, компьютерный форум CyberForum.ru

Печать на USB принтер в Win XP из консольного приложения С++ Win32? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
yakimoto
Сообщений: n/a
23.10.2011, 00:07     Печать на USB принтер в Win XP из консольного приложения С++ Win32? #1
Возможно ли из консольного приложения Win32 (без CLR, Unicode и пр.) в Visual C++ 2010 организовать печать на USB принтер?

#if MSDOS
list=stdprn;
#else
fopen_s(&list,"lst:","w");
#endif
и т.д. Это в Винде не катит, поскольку принтер не LPT.
Переналаживаю старую досовскую программу С под С++ и имею небольшой гембель.
Можно, конечно, вывести таблицы в текстовые файлы и потом уже средствами MS Office вывести на печать, но тут вопрос принципа. Подкажите, пожалуйста варинты.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2011, 00:07     Печать на USB принтер в Win XP из консольного приложения С++ Win32?
Посмотрите здесь:

Мню консольного приложения C++
из консольного приложения в форму? C++
C++ Рестарт консольного приложения
отладка консольного приложения C++
Команды для консольного приложения C++
C++ Интерфейс консольного приложения
C++ Интерфейс консольного приложения win32

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
23.10.2011, 12:07     Печать на USB принтер в Win XP из консольного приложения С++ Win32? #2
Цитата Сообщение от yakimoto Посмотреть сообщение
Возможно ли из консольного приложения Win32
Попробуй такой вариант.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <windows.h>
 
int  main(void) {
   char str[]  = "Hello Printer !!!"; // строка для посылки в порт принтера
 
  // переходник есть LPT1 - USB
   HANDLE port = CreateFileA("LPT1:", GENERIC_WRITE, FILE_SHARE_READ, NULL, 
                       OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
   if(port == INVALID_HANDLE_VALUE) { // если не открыли выводим код ошибки
         printf("error open port: code(%d)\n", GetLastError());
         return 1;
   }
   DWORD dwrite = 0u;
   DWORD size = lstrlenA(str); 
   WritePrinter(port, (LPVOID)str, size, &dwrite);
   if(size == dwrite) // ура, данные были  посланы все
        puts("YES PRINT...");
    else // возникла ошибка при посылки данных
        printf("error WritePrinter: code(%d)\n", GetLastError());
   CloseHandle(port);
   getchar();
   return 0;
}
yakimoto
Сообщений: n/a
24.10.2011, 02:20     Печать на USB принтер в Win XP из консольного приложения С++ Win32? #3
[QUOTE=xAtom;2095528]Попробуй такой вариант.
[CPP]#include <stdio.h>
#include <windows.h>

int main(void) {
char str[] = "Hello Printer !!!"; // строка для посылки в порт принтера

// переходник есть LPT1 - USB
HANDLE port = CreateFileA("LPT1:", GENERIC_WRITE, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(port == INVALID_HANDLE_VALUE) { // если не открыли выводим код ошибки
printf("error open port: code(%d)\n", GetLastError());
return 1;
}.......

Попробовал с локальным принтером. Хрюкнуло с кодом 2. Не прокатило.
А как в предложенном фрагменте в Windows будет определён номер порта USB001, USB002 или др.?
С другой стороны у меня ведь к компу подключена куча USB устройств.
Yandex
Объявления
24.10.2011, 02:20     Печать на USB принтер в Win XP из консольного приложения С++ Win32?
Ответ Создать тему
Опции темы

Текущее время: 07:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru