Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/57: Рейтинг темы: голосов - 57, средняя оценка - 4.77
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322

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

13.01.2009, 11:44. Показов 11823. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru