Ввод-вывод байта в порт на VB?

Программирование на Visual Basic for Applications
$Fortinbras
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 26.04.2004 (Пн) 5:45

Ввод-вывод байта в порт на VB?

Сообщение $Fortinbras » 26.04.2004 (Пн) 6:16

Здравствуйте, уважаемые программисты!

Я не шибко крутой спец в VB поэтому простите, если что не так.
Вопросы у меня простые, но судя по тому, что Яндекс ни ухо-ни рыло в них, специфические.
Заранее был бы благодарен за дельный ответ.

Вопрос 1:
Как на VB 4-6 вывести байт в порт и считать байт из порта?
Например, на qbasic сия процедура осуществляется сточками
вывод: Out Nport, Byte1
ввод: x= Inp(Nport)
А на VB как?
Порты 768-772, а не принтерные и не RS. Это роли не должно играть, но я тонкостей не знаю, конечно.. Может, и играет.

Вопрос 2:
Каким оператором Call или иным чем вставить ассемблерную подпрограммку в VB да поэлегантней?

Вопрос 3:
Есть туева хуча программок и подпрограммок мелких, сделанных десятки лет назад на qbasic и обслуживающих интерфейсы ввода-вывода для связи с периферией (в основном измерительные приборы)
Вот надо бы их на переписать на VB по-человечески.
Причем, аппаратура та же самая, соответственно адреса - те же.
Вопрос только в операторах и самой программе.

Так вот есть ли какие перекодировщики программ qbasic to VB?
Может, спецы знают в проблеме, подскажет кто.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.04.2004 (Пн) 8:57

Да, хорошее начало :)
Могу только послать в Наши проекты, VB + ASM.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

$Fortinbras
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 26.04.2004 (Пн) 5:45

Сообщение $Fortinbras » 27.04.2004 (Вт) 0:31

Могу только послать в...
Блин... Далековато посылаешь, Серж... Я думал, спецы с полтыка ответ дадут. Впрочем, хорошо, что хоть к статьям послал, а не нафиг.
Может, ссылку дашь? А то я же говорю, новичок - не знаю, где тут что лежит.
Поиск по сайту ни хрена не дает. На "ввод и вывод из порта" я имею всякую фигню, а на слово "порт"" вообще классику: "По Вашему запросу ничего не найдено"
Ну задолбало!
Что, такие штуки, как "порт" в нынешних компьютерах не применяются? Устранили, как Класс?
Я и пришедши спросить у мудрых.

Короче.

Статьи на сайте я видел, и поскольку они мне понравились в сравнении с другими сайтами, я и зашел на форум.
Но в разделах VB и VBA сайта - ничего нет по первому просмотру. Опять игрушки, ворд и эксель.
Кроме того, я прежде, чем региться, пощелкал тут по форуму и видел, что Серж, который Шаман, обычно просто куски кода новичкам пишет и они довольные по уши.
Ну, я и думал, может мне тоже напишет кто-нибудь из спецов пару строк. Дело-то плевое.

Короче, вопрос остается, может кто сталкивался- скажет.
И у меня еще куча вопросов есть, только я не знаю, куда их писать.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.04.2004 (Вт) 8:54

Хм :)
http://bbs.vbstreets.ru/viewtopic.php?t=6254

А Серж, который Шаман совсем недавно, чаще копипастит из API-Guide куски кода, от которых новички довольны по уши...

А поиск у нас рулезный, это да...

А статьи - это Гайдар, только вредный он, всё про NET да про NET...

А вопросы - это в раздел Visual Basic, судя по всему.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

$Fortinbras
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 26.04.2004 (Пн) 5:45

Сообщение $Fortinbras » 28.04.2004 (Ср) 3:43

Спасибо за ссылку. Скачал предложенную там библиотечку посмотрю.
С полтыка не прошло посмотреть, у меня VB4 стоит - требует еще чего-то с версией...
Но поставленную выше проблему я уже решил. К сожалению, в сторону отказа от VB и переходу к Delphi, где таковой проблемы нет в принципе. На Delphi я уже сделал тестовую программку обращения к порту вставкой assm - работает без проблем.
И вообще, если задача стоит именно в работе с нестандартной аппаратурой и своими портами, то надо поставить LabView и на нем писать, что нужно - это самое элегантное решение.

Попробую в заключение сам себе ответить на вопросы, если вдруг еще кому надо будет, а такие есть, нарыл-таки я в Яндексе их сходные вопли.

Вопрос 1: Как на VB ввести-вывести байт в порт?
Никак. Нету такого понятия в VB, устранено, как Класс. Видимо, цель - защита и без того дырявого ядра виндов от непонятно чего.
Кроме того, в NT и 2000 виндах ЛЮБОЕ обращение к порту минуя ядро виндов вызовет системную ошибку.
Указанных аналогов Qbasic для работы с портами в VB нет. Эти аналоги есть во всех Паскалях, С, Дельфи.
В VB же для работы с потрохами компов и периферией оставлена единственная возможность: вызов dll через функцию Call. Садитесь, изучайте API и пишите ДРАЙВЕРА. Фирма майкрософт позаботилась о вашей головной боли и о том, чтобы вы не лезли со своми проблемами куда им не хочется и не использовали комп далее игрушек и печатной машинки с калькулятором.

Вопрос 2: Как вставить поэлегантней assm в VB?
Тоже никак, если элегантно.
Dll напишите на С - вот и будет элегантность.
А так, как на дельфи, С, паскале или, смешно сказать, на HTML или PHP - вставкой кусочка кода - не получится.

Вопрос 3:
Вот надо бы их на переписать на VB по-человечески.
По-человечески, то есть просто, быстро и с графическим интерфейсом, указанная задача решается только на LabView. Но все равно переписывать вручную.

==========
Вообще же жаль. Мне нравится VB тем, что привычно для виндовского юзера, да и вообще нравится.
Но получается, что тут то ли дележ сфер влияния между производителями софта, то еще чего экономическое...
Не просто так все эти сложности на ровном месте.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 109

    TopList  
cron