Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Как работать с LPT под любой WIN?   Найти похожие ветки 

 
-=DeMoH=- ©   (2004-02-07 16:29) [0]

Подскажите, как можно организовать работу с LPT портом для управления чего-либо так, чтобы программа работала и под     WIN-9X, и под WIN-2000/XP?


 
-=DeMoH=- ©   (2004-02-08 18:18) [1]

Ну неужеди никто не знает, чем можно заменить скажем
asm { mov dx, 379h;
     mov ax, 10001000b;
     out dx, ax };
для того, чтобы программа работала не только под Windows-98, но и под Windows-2000 и ей подобным?


 
N169   (2004-02-08 21:43) [2]

Способ 1 ("Правильный"):

Для систем старше Windows 98 и всех NT-based можно написать legacy-драйвер, который будет делать обращение к порту через вызов соотв. ф-и hal.dll (WRITE_PORT_UCHAR() или READ_PORT_UCHAR()). Приложение, чтобы обратиться к порту, должна будет вызывать этот драйвер через ф-ю DeviceIoControl().

Для Windows 95/98 также сработает фрагмент типа того, что вы привели. Просто делайте проверку типа системы при старте.

Используйте этот путь для получения стабильного результата.

Способ 2 ("Неофициальный"):

Есть некий способ выполнить часть кода приложения в режиме ядра.
Способ основан на модификации LDT/GDT.

Поищите в сети архивчик callgate.zip и книгу
MATT PIETREK "Windows 95 System programming SECRETS".
Там есть вся необходимая информация.

Этот путь довольно скользкий, но я видел приложения, которые его используют. Например, софт к программатору PICPROG.

Способ 3 ("самый Дельфийский"):

Найдите и используйте (готовый) сторонний компонент для обращения к портам.

Поищите по названиям: WinIO, unio, directport, lptwdmio и прочая, прочая. Можете зайти на LPT port central:
http://www.lvr.com/parport.htm
Там много полезной информации по вашему вопросу.

Вот такие дела.


 
Dmitriy_G ©   (2004-02-09 09:24) [3]

N169, здорово написанно, Распечатаю и повешу на стену как руководство к действию ;)
Правильный способ позволяет, самому  отвечать за свое произведение. А не ковырять в носу, и смотря в пол гундосить, что она якобы работало ;)
-=DeMoH=- Начинай с третьего способа, второй пропускай. Потом прыжок и ты на вершине. И ты профессионал ;)
А третий способ, он работает, но боязно как-то )))


 
pavel_guzhanov ©   (2004-02-09 09:34) [4]

я уже в этом форуме неоднократно советовал пользоваться WinIO. Работает подо всеми виндами, несложно в использовании. Мыль, пришлю библиотеку, и мой рабочий пример. Работает (проверено) под 98, 2000 и XP


 
-=DeMoH=- ©   (2004-02-09 18:48) [5]

Ну я согласен, только кидай мне пример на demoh@list.ru, а то мой основной адрес упал (со стола)...



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.032 c
7-1076937870
h0use
2004-02-16 16:24
2004.04.18
Как узнать колличество жестких дисков и информацию о них?


1-1080433010
Shoosema
2004-03-28 04:16
2004.04.18
Переключение между формами.


7-1075107885
Signed
2004-01-26 12:04
2004.04.18
COM порт


4-1076307416
Ricko
2004-02-09 09:16
2004.04.18
Правильная выгрузка DLL


6-1076496794
Макын
2004-02-11 13:53
2004.04.18
Ip





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский