Форум: "Основная";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
ВнизПроблема Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.034 c