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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
yakimoto
Сообщений: n/a
#1

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

23.10.2011, 00:07. Просмотров 1356. Ответов 2
Метки нет (Все метки)

Возможно ли из консольного приложения 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++):

Интерфейс консольного приложения win32 - C++
Доброго времени суток! Имеется консольное приложение Win32, которое выполняет следующие действия: 1. Считывает информацию из файла. ...

Проект консольного приложения из Windows приложения - C++
привет всем. В чем может быть ошибка? 1>MSVCRTD.lib(crtexew.obj) : error LNK2019: ссылка на неразрешенный внешний символ _WinMain@16 в...

Нет Win32 консольного приложения в шаблонах - Visual Studio
Здравствуйте, программисты! Проблема вроде и мелкая, но не могу ничего с ней поделать несколько дней. Хочу создать win32 консольное...

Как Вы относитесь к русификации консольного приложения Win32 - C (СИ)
Здравствуйте, уважаемые коллеги! На повестке дня следующий вопрос. Как Вы относитесь к русификации консольного приложения Win32 в Си? Я...

Непонятное окно при создании консольного приложения win32 - Visual C++
При создании консольного приложения win32 выдает такое окно. Притом ни "готово" ни "отмена" нажать не получается, только красный крест. ...

Странная ошибка при создании консольного приложения Win32 - Visual C++
Вот,решил изучать C++.Поставил Visual C++ 2008 Express.При создании консольного приложения Win32 вот такое окно(см.скрин).Как исправить это...

2
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
23.10.2011, 12:07 #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;
}
2
yakimoto
Сообщений: n/a
24.10.2011, 02:20 #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 устройств.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2011, 02:20
Привет! Вот еще темы с ответами:

VS 2010 Ошибка при создании проекта консольного приложения Win32 на C++ - Visual Studio
Ошибка при создании проекта ,с использованием консольного приложения win32 ,когда на вкладе далее нажимаю (начать пустой проект) ,то выдает...

Печать на USB принтер из DOSBox - Эмуляторы
Прошу помощи при решении такой проблемы: имеется ПК с ОС Windows 7 SP1 (х64). На ПК развернуто ПО &quot;DOSBox&quot; в котором запускается...

Контроль USB-портов из консольного приложения - C#
Здравствуйте всем. Вот какой вопрос: Как можно принимать сообщения системы типа: DBT_DEVICEARRIVAL или WM_DEVICECHANGE не используя ...

Как запустить и настроить php-4.3.5-Win32 а также apache_2.0.49-win32-x86-no_ssl и mysql-5.0.0a-alpha-win ? - PHP
Здрасте... Php я решил начать изучать недавно. Уже делал странички в Html, Java. Теперь хочу научиться более серьезному языку. Вот...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru