Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322

Работа с LPT портом в С++Builder

13.01.2009, 11:44. Показов 11832. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ помагите разобратся как работать в билдере с lpt портом
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.01.2009, 11:44
Ответы с готовыми решениями:

Работа с LPT-портом из ВСВ 6
Произвольные чтение и запись в LPT-порт. Builder не видит практически ни одной функции из DOS.H; например int86, intr, outport, ну и др....

Работа с COM портом в Builder C++ 6.0
Добрый день, уважаемые форумчане. Никогда не спрашивал совета на форумах, но нужна подсказка. Кто располагает временем, буду очень...

Работа с COM портом на С++ Builder 6
Работаю я с GSM модемами, пишу под них программу на C++ Builder 6. Посылаю в модем, через COM порт соответственно, AT команды (строку...

14
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
13.01.2009, 12:58
вот тебе ссылка
HTML5
1
www.pcports.ru
там ты найдеш и LPT, и COM, и т.д.
1
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
14.01.2009, 06:34  [ТС]
Премного благодарен

Добавлено через 2 часа 12 минут 11 секунд
Воспользовался вашей ссылкой, но встала проблемма в коде:
в билдере не существует такой функции как
C++
1
_outp(Address, 1);
Если кто то поможет сделать етот код рабочим на билдере буду очень благодарен:
вот собственно код:
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
25
26
27
28
29
#include "iostream.h"
#include "conio.h"
#include "stdlib.h"
 
void main()
{
    int Address=888;
    cout<<"Test LPT port."<<endl;
    cout<<"Press '1' to activate and '0' to disactivate lightdiod."<<endl;
    cout<<"To exit press 'e'."<<endl;
    cout<<" "<<endl;
 
    while(1)
    {       
        switch(getch())
        {
 
            case '0':   cout<<"Disactivate...."<<endl;
                        _outp(Address, 0);
                        break;          
            case '1':   cout<<"Activate...."<<endl;
                        _outp(Address, 1);
                        break;
            case 'e': exit(1);
        }
    }
 
   getch();
}
Добавлено через 2 минуты 51 секунду
Вот отсюда етод код
http://www.pcports.ru/articles/1.php
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
14.01.2009, 08:24
вообще там код работает только под старые винды, в хр это работать не будет...

Не по теме:

Вот тут надо сделать серьезное замечание: эта программа сможет управлять светодиодом, только из операционной системы Windows 9x (Windows 95, 98, Me). В ОС Windows NT (2000, XP) так по-простому залезть в порт не удасться, в следющих статьях я подробно расскажу как обойти эту проблему и управлять портом на любой ОС.

1
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
14.01.2009, 10:36  [ТС]
Ну, там что то сказано что как то нужно работать с дравером, подскажите пожалуйста, мне все го лишь то нужно переставлять пины в состояние 1 или 0.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
14.01.2009, 10:48
http://www.pcports.ru/articles/2.php
2
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
14.01.2009, 10:52  [ТС]
Цитата Сообщение от WooDooMan Посмотреть сообщение
вообще там код работает только под старые винды, в хр это работать не будет...

Не по теме:

Вот тут надо сделать серьезное замечание: эта программа сможет управлять светодиодом, только из операционной системы Windows 9x (Windows 95, 98, Me). В ОС Windows NT (2000, XP) так по-простому залезть в порт не удасться, в следющих статьях я подробно расскажу как обойти эту проблему и управлять портом на любой ОС.

Буду очень благодарен за статью, пол инета перерыл, главно интересно то что в делфи ето вроде как без проблем реализуется. а вот в С, то предлагают драйвер использовать, то ассемблерные вставки.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
14.01.2009, 11:08
я, конечно, не уверен... но там придется скакать от dll для работы с этим портом... как раз про нее и говорится в статье в предыдущем моем посте... подключить библиотеку несложно, а в хидере сможешь глянуть прототипы методов этой библиотеки...
0
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
14.01.2009, 11:58  [ТС]
Ураа)) заработало, буду оттачивать разбиратся
Использовал пример приведенный тут http://www.pcports.ru/articles/3.php
вместо _outp(Address, 0) использовал ассемблерную вставку
mov dx, 378h
mov al, 0
out dx, al
и заработало, закончу отпишу сюда результат
1
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
14.01.2009, 12:01
AlexSt, интересно на сырцы будет взглянуть


Не по теме:

кто ищет - найдет...

0
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
14.01.2009, 18:57  [ТС]
Вот собственно исходник, до ужаса прост, ну в принципи получил что хотел.
http://stalker.cyber-punk.cc/lpt_port/lpt_cpp.zip
Ну и драйвер который я использовал для работы, кстати там полное описание работы с ним, пока не стал разбирать.
http://stalker.cyber-punk.cc/l... driver.rar

Добавлено через 3 минуты 11 секунд
Кому из новичков интересно, пишите в ЛС, обьясню

Добавлено через 23 минуты 44 секунды
Думаю в дальнешем будет продолжена работа над lpt пором

Простейший пример работы с классом написаным для драйвера GIVEIO.SYS
http://stalker.cyber-punk.cc/lpt_port/lpt_3.zip
0
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 8
18.01.2010, 20:55
и всеже какие команды в C++Builder 6 вместо _outp()?
асм. вставки работают но я в асемблере не шарю
C++
1
2
3
4
5
6
                _asm
            {
            mov dx, 378h
        mov al, 1 \\ тут
        out dx, al
            }
а в место 1, допустим мне нужно пощитаное значение из переменной в с++ что тогда?

Добавлено через 21 час 16 минут
HELP ME!
0
17 / 16 / 1
Регистрация: 03.11.2009
Сообщений: 36
19.01.2010, 04:19
Assembler
1
2
3
4
5
6
_asm
                {
                mov dx, 378h
                mov al, 1 \\ тут
                out dx, al
                }
Такое разрешено только в 98 и ДОС начиная с линейки NT ассемблерная команда out стала привилегерованной и работать на прямую с портами LPT and COM in UserMode заперешено для этого необходимо переходить в Ring-0 т.е. писать драйвер ну или использовать сторонний и работать с IOCTL
а так
C
1
2
3
4
5
6
7
8
9
10
11
int main(int argc, char* argv[])
{
WORD a=0x50;
   _asm
                {
                mov dx, 378h
                mov al,offset a
               // out dx, al
                }
    return 0;
}
1
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
24.01.2010, 14:16  [ТС]
Цитата Сообщение от yurza Посмотреть сообщение
Assembler
1
2
3
4
5
6
_asm
                {
                mov dx, 378h
                mov al, 1 \\ тут
                out dx, al
                }
Такое разрешено только в 98 и ДОС начиная с линейки NT ассемблерная команда out стала привилегерованной и работать на прямую с портами LPT and COM in UserMode заперешено для этого необходимо переходить в Ring-0 т.е. писать драйвер ну или использовать сторонний и работать с IOCTL
а так
C
1
2
3
4
5
6
7
8
9
10
11
int main(int argc, char* argv[])
{
WORD a=0x50;
   _asm
                {
                mov dx, 378h
                mov al,offset a
               // out dx, al
                }
    return 0;
}
Там в исхдниках класс есть для работы, там все раскидано, работаешь с классом. зачем в дебри лезть. Собственно драйвер и обеспечивает права ring0. работает на win 7 проверено.
0
0 / 0 / 0
Регистрация: 26.09.2010
Сообщений: 3
26.09.2010, 19:55
Если на C++ Builder то вроде тут http://acvarif.info/progbcb/progbcb1.html
Всем известный Giveio...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.09.2010, 19:55
Помогаю со студенческими работами здесь

LPT C++ Builder
Привет умне люди Что мне вписать в програму и куда,чтобы она при её запуске сбрасывала (первый и второй) канал на (0) ...

LPT порт, обмен. Перевести с Delphi на C++Builder.
Так получилось, что приходится осваивать программирование. Написал программу, которая работает с LPT портом, с помощью Delphi. Теперь нужно...

Компонент для работы с сom-портом в С++ Builder 4
Здравствуйте. Необходима компонента для работы с сom-портом в С++ Builder 4. Подскажите,пожалуйста, где взять? Заранее спасибо.

Работа с LPT
Уважаемые форумчане здравствуйте! Сразу к делу. Нужно по LPT передать файл по байтно программа кампилится но во время работы...

Работа с COM-портом
Подскажите, какие компоненты нужны для работы с ком-портами? а именно (хотя бы для начала) отправка шестнадцатиричного кода на порт, к...


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

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

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru