| СОПРЯЖЕНИЕ КОМПЬЮТЕРОВ С ВНЕШНИМИ УСТРОЙСТВАМИ |
|
Для чего может быть полезен NTLoader? Напрмаер, у Вас есть проверенная годами программа - программатор. Единственная проблема - она работает только под Windows 95, 98, Me т.к. общается с портом напрямую. Вдруг возникает необходимость перенести ее на компьютер под управлением Windows XP - разумеется, там она работать не будет, т.к. XP прямого обращения к портам не терпит. Возникает делема: либо начать использовать другую программу (что мягко скажем, проблематично) или переписывать имеющуюся программу. Дело не простое, особенно если она не Ваша и исходных кодов Вы не имеете. Вот тут NTLoader сможет Вам помочь - несколько щелчков мыши и Ваша программа успешно работает на XP. Теперь рассмотрим, как пользоваться этим NTLoader`ом. Для начала скачайте архив с драйвером и программой.
В архиве Вы найдете следующие файлы:
Для того чтобы NTLoader смог работать Вам необходимо установить специальный драйвер. Сделать это довольно просто. Для этого нужно: 1. Скопировать файл драйвера NTLoader.sys в папку C:\Windows\system32\drivers\ если, конечно, система у Вас установлена на диск С: и Вы не меняли пути установки Windows. 2. Запустить файл Install.reg. При этом Вас спросят о Вашем желании добавить информацию из этого файла в реестр. Нажимайте Да. При этом Вы получите сообщение об успешном внесении информации в реестр. 3. Перезагрузить компьютер. Все теперь драйвер установлен и комплекс готов к работе. Запускайте приложение NTLoader.exe. Принцип работы довольно прост: нажав на кнопку Search... Вы указываете путь к программе которую нужно запускать. Затем нажимаете кнопку LOAD. Все! Теперь запущенная Вами программа сможет успешно работать с портами ввода-вывода напрямую под Windows NT, 2000, XP.
Теперь давайте протестируем NTLoader. Напишем простенькую программу, которая будет работать с портом LPT напрямую. Вот ее код (для простоты примера сделаем ее в консольном варианте). Готовый проект и программу можно найти в скаченном Вами архиве. Беглого взгляда на код достаточно, чтобы сказать, что эта программа не сможет работать под Windows XP - и действительно, тут и обращение к порту с помощью функций _outp(), _inp() и даже прямое взаимодействие с регистрами порта на ассемблере. Давайте убедимся в этом. Попробуйте ее запустить под XP - при потытке обращения к порту, программа вылетает с ошибкой (что и не удивительно).
#include <conio.h>
#include <stdio.h>
void main()
{
printf("Simple programm. Press any key to continue...\n\n");
getch();
printf("Try write to port (1)...\n");
_outp(0x378, 0);
printf("Try write to port (2)...\n");
_asm
{
mov dx, 378h
mov al, 1
out dx, al
}
printf("Try read port...\n");
char temp = _inp(0x378);
printf("Value: %d\n", temp);
getch();
}
А теперь попробуем запустить эту же программу с помощью NTLoader. Выбираем с помощью Search... путь к нашей тестовой программе и нажимаем LOAD. И о Чудо! Она работает!
Надеюсь, что NTLoader поможет Вам в работе с портами ввода-вывода под Windows NT, 2000, XP. Дополение 9 февраля 2008: по многочисленным просьбам читателей, в обновленной версии программы добавлена возможность запуска NTLoader из командной строки с параметром в виде пути запускаемой программы. Например, чтобы не пользоваться кнопками "Search" и "Load" а сразу запустить нужную программу минуя пользовательский интерфейс NTLoader нужно запускать его вот так: NTLoader.exe [путь к запускаемой программе] Иванов Д. В. PS: буду рад увидеть Ваше мнение о NTLoader и этой статье в Гостевой книге. |
| Контакты | | | Гостевая книга |
| © 2005-2009 сопряжение компьютеров с внешними устройствами PCPORTS.RU © Иванов Д.В. | ||||||||||||||