работа с портами без проблем

Предыдущая тема Следующая тема Перейти вниз

работа с портами без проблем

Сообщение  12val12 в Чт Сен 24, 2009 8:52 am

Сергей Агеев сделал ДЛЛку
http://www.torry.net/vcl/system/portaccess/sadirectport.zip
читаем Readme :
// DirectPort для Delphi v3.8 Final Release 14/01/2002. Сергей Агеев
// sflash@armagus.ru ICQ: 22008925
Работает под Windows всех версий.
Теперь работает и с сетевыми приложениями.
Сделана DLL для использования где угодно!!!
Описание функций приведено ниже.
DirectPort является простым и удобным компонентом для прямого доступа к портам в системах
Windows NT 4.0, Windows 2000, Windows XP. (Тестировалось. В 95 и 98 можно работать напрямую и так:
out dx,ax; in ax,dx и т.д.). В обоих системах это не разрешено напрямую, что привело
к написанию данного компонента. Но плюс данного компонента в том, что программа, его испольующая
может работать как в Windows 9X, так и в NT, Win2K, WinXP без какой либо переделки.
Изспользовать его проще простого:
1. Инсталируете пакет (открыв файл DirectPort.dpk и нажимаете Install);
2. В свое прилолжение кидаете иконку DirectPort (находится в System).
3. Вот собственно и все. Не нужно никакой инициализации.

Если Вы дали ему имя например Port то:

A:=Port.Byte[$61]; // Читать байт из порта $61 в A;
A:=Port.Word[$61]; // тоже но слово
A:=Port.DWord[$61]; // тоже но двойное слово

Port.Byte[$61]:=A; // Записать байт из A в порт $61
Port.Word[$61]:=A; // тоже но слово
Port.DWord[$61]:=A; // тоже но двойное слово


DLL для любых приложений.

Функции DLL DirectPort32.dll:
*********************************
procedure DoneDLL; stdcall; index 7; - Освобождает память используемую DLL (ОБЯЗАТЕЛЬНО ПРИ ЗАВЕРШЕНИИ !!!)
procedure ReadPortByte(Port:Word;var ByteResult:Byte); stdcall; index 1;
соответсветнно читает байт из порта
procedure ReadPortWord(Port:Word;var WordResult:Word); stdcall; index 2;
соответсветнно читает слово из порта
procedure ReadPortDWord(Port:Word;var DWordResult:LongWord); stdcall; index 3;
соответсветнно читает двойное слово из порта,
ниже фукции все это дело записывают.
procedure WritePortByte(Port:Word;ByteValue:Byte); stdcall; index 4;
procedure WritePortWord(Port:Word;WordValue:Word); stdcall; index 5;
procedure WritePortDWord(Port:Word;DWordValue:LongWord); stdcall; index 6;

Как Эту библиотеку прикрутить к Freebasic ?

12val12

Сообщения : 14
Дата регистрации : 2009-09-23

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: работа с портами без проблем

Сообщение  Eric-S в Чт Сен 24, 2009 12:36 pm

Как и обычную dll'ку.
Только вот
Код:

procedure WritePortByte(Port:Word;ByteValue:Byte); stdcall; index 4;
procedure WritePortWord(Port:Word;WordValue:Word); stdcall; index 5;
procedure WritePortDWord(Port:Word;DWordValue:LongWord); stdcall; index ;

Придёться переписать в стиле basic.

Но Только я не скажу как, с делфями не знаком. Там у него случаем сишных заголовков нету?

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: работа с портами без проблем

Сообщение  12val12 в Чт Сен 24, 2009 4:36 pm

кажется нет а вы сишные заголовками можете прикрутить ?
есть еще несколько вариантов....
я не программист .поэтому мне нужен пример

12val12

Сообщения : 14
Дата регистрации : 2009-09-23

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: работа с портами без проблем

Сообщение  Eric-S в Чт Сен 24, 2009 6:02 pm

Сишные заголовки, напрямую прикрутить не смогу, это не возможно.
Но я надеюсь, что их пойму и смогу легко перевести на freebasic.
Дельфовый синтаксис не воспринимаю. А ковыряться ради такого влом.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: работа с портами без проблем

Сообщение  electrik в Чт Сен 24, 2009 9:56 pm

заголовки то я переделал, но в них есть определение процедуры "initDll". этой процедуры нет в самой dll.
у меня неустановлен delphi, поэтому не могу перекомпилировать исходники dll.

файл DirectPort32.bi

Код:

extern "Windows-MS" lib "DirectPort32"
declare sub InitDll()
declare sub DoneDLL()
declare sub ReadPortByte(byval Port as uShort,byref ByteResult as uByte)
declare sub ReadPortWord(byval Port as uShort,byref WordResult as uShort)
declare sub ReadPortDWord(byval Port as uShort, byref DWordResult as uInteger)
declare sub WritePortByte(byval Port as uShort,byval ByteValue as uByte)
declare sub WritePortWord(byval Port as uShort,byval WordValue as uShort)
declare sub WritePortDWord(byval Port as uShort,byval DWordValue as uInteger)
end extern

electrik

Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 36
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: работа с портами без проблем

Сообщение  12val12 в Чт Сен 24, 2009 10:11 pm

спасибо попробую

12val12

Сообщения : 14
Дата регистрации : 2009-09-23

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: работа с портами без проблем

Сообщение  vbman в Пн Окт 19, 2009 1:18 pm

Зачем изголяться? ФриБейсик сам дает возможность работать с портами Wink . В программе, использующей ввод-вывод в/из портов, автоматически зашивается код драйвера fbportio.sys, который и позволяет играться с портами (в пределах разумного, конечно) bounce При первом запуске драйвер появляется в драйверной директории Виндовса affraid . Проверено... lol!
avatar
vbman

Сообщения : 52
Дата регистрации : 2008-11-19
Возраст : 35
Откуда : Украина, Кировоград

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: работа с портами без проблем

Сообщение  Eric-S в Пн Окт 19, 2009 1:26 pm

Вроде бы, да, было такое.
Я с портами особо не балуюсь, мне не интересно.

А ещё можно работать напрямую с com-портами и lpt, открывая их как файл.

В прочем, очевидно, что под windows реально порты не нужны. В смысле нужны, но для тех кто пишет драйвера. А иначе будет только хуже.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: работа с портами без проблем

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения