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

Вниз

Проблема   Найти похожие ветки 

 
sofs ©   (2005-05-28 09:56) [0]

Тут начал работать с портами.ВВожу вот такой код:(Д7)
function InPort(PortAddr:word): byte;
{$IFDEF WIN32}
assembler; stdcall;
asm
 mov dx,PortAddr
 in al,dx
end;
{$ELSE}
begin
 Result := Port[PortAddr];
end;
{$ENDIF}

При исполнении ошибка "privileget instruction" возникает в строке in al,dx.Можно ли это обойти?
если есть какие-то другие способы работы с портами-подскажите плиз где можно найти инфу о сабже.
p.s.Этот код был рекомендован для работы с портами вводы\вывода для режима win32,но на моём компе с WinXp выдаётся вышеуказанная ошибка.
p.p.s.В той же статье сказано:В Delphi 1 записывать и считывать из портов можно через глобальный массив "ports". Однако данная возможность отсутствует в "32-битном" Delphi.Если как-то можно работать с массивом ports в D7,то как или опять-же где можно найти инфу по этому вопросу.


 
isasa ©   (2005-05-28 10:24) [1]

В OS NT4 и выше "простым" программам работа с железом напрямую запрещена.
Попробуй прорваться через API функцию

cHandle := CreateFile(PortName,
              GENERIC_READ+GENERIC_WRITE,
              FILE_SHARE_READ+FILE_SHARE_WRITE,
              nil,
              OPEN_EXISTING,
              FILE_ATTRIBUTE_NORMAL+FILE_FLAG_OVERLAPPED,
              0);

где, PortName:="COM1"; //"COM2"...

В делф. есть хелп на нее.



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

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

Наверх




Память: 0.47 MB
Время: 0.033 c
1-1117282188
Джон
2005-05-28 16:09
2005.06.14
как создать сообщение-ошибка


14-1116742429
lookin
2005-05-22 10:13
2005.06.14
Финал кубка Англии


11-1099777588
Sewix
2004-11-07 00:46
2005.06.14
Какое событие изменение ширины столбцов в TKOLListView


1-1117184647
Layner
2005-05-27 13:04
2005.06.14
Приветствую всех! Простой вопрос по написанию компанента


1-1117169131
silvestr
2005-05-27 08:45
2005.06.14
Как удалить лишние пробелы в конце строки ?