![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
MegaCasper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.5.2006 Репутация: нет Всего: нет |
Народ, кто занимался программированием LPT, подскажите.
Я делаю код на Builder C++ 6, но думаю это не принципиально. ----------------------------------------------------------------------------------------------------------------------------- Вот код из ашки: HINSTANCE hLib; // указатель на dll typedef void (_import * Output(short, short) ); // определяем тип для задания типа указателя :) Output *my_out; // Собственно, указатель нужного типа typedef short (_import * Input(short) ); Input *my_in; -------------------------------------------------------------------------------------------------------------------------- Вот код по нажатию на кнопку: hLib=LoadLibrary ("inpout32.dll"); // Грузим длл-ку my_out=(Output*) GetProcAddress (hLib, "Out32"); // типа указатель на функцию ввода в порт my_in=(Input*) GetProcAddress (hLib, "Inp32"); // типа указатель на функцию, которая // берёт данные из порта my_out(888, 0); // По идее, записываем логический ноль short *a; a=my_in (888); // А вот ТУТ какого хера НЕ НОЛЬ!!! MessageBox (NULL, ("Со входа 888 (должны получить нуль) "+IntToStr(a) ).c_str(), "Сообщение", MB_OK); ----------------------------------------------------------------------------------------------------------------------------- Вопрос: по идее указанный выход должен быть установлен в ноль (если я правильно понял). Но почему-то там не ноль. Что не так? |
|||
|
||||
takedo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: 1 Всего: 3 |
Вооббще то программирование LPT порта ничем не должно отличаться от программирования com порта, за исключением названий. Здесь LPT1,2,3,4,5.., там COM1,2,3,4,5... Делелелька у тебя конечно прикольная, ничего не скажешь, но здесь все кто работает с портами пользуются несколько другими функциями - в основном, работают напрямую с Win API, такими как CreateFile,WriteFile,ReadFile. Если тебе принципиально работать с твоей хитрой длл-кой, можешь ещё с недельку ждать ответа
![]() ![]() -------------------- я не гольфист - я хоккеист |
|||
|
||||
MegaCasper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.5.2006 Репутация: нет Всего: нет |
Кстати, народ, немного разобрался.
Вообщем ошибки-то нет, просто я под юзером сидел, а надо было всего лишь под админом зайти, и всё заработало. А так, блин, и ошибки не выдаёт и работать не хочет. Такая фигня. |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
а так? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
MegaCasper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.5.2006 Репутация: нет Всего: нет |
Народ, а я вот когда попытался через CreateFile/WriteFile вроде глюков нет. А другая прога, которая показывает, что там на выводах LPT происходит, не показыает ни каких изменений. В чём может быть дело?
А как бы мне через CreateFile/WriteFile подать сигнал на порт и подержать его там секунду, чтоб у меня светодиод загорелся? |
|||
|
||||
str_vadim |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 9.1.2007 Где: Украина, Днепропе тровск Репутация: нет Всего: 1 |
При чтении данных с порта надо учитывать что выводы порта (его физические контакты находятся в "подвешенном состоянии") и при чтении никак ноля давать не будут. Для того чтобы прочитать "0" подай логический "0" на входные контакты и читай!!!
Добавлено @ 02:38 К стати так
действительно лучше получится и на мой взгляд!!! |
||||||
|
|||||||
REn005 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 23.8.2007 Где: MARS Репутация: нет Всего: нет |
почему именно 888?
как я понял 888 это адрес конкретного выхода,а где мне найти все адреса????? Где что прочитать?? помогите плз |
|||
|
||||
smoke_man |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 25.1.2007 Где: Рязань Репутация: 1 Всего: 17 |
Посмотри здесь
-------------------- 0x2b|~0x2b |
|||
|
||||
REn005 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 23.8.2007 Где: MARS Репутация: нет Всего: нет |
||||
|
||||
xvr |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
|
||||||
|
|||||||
REn005 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 23.8.2007 Где: MARS Репутация: нет Всего: нет |
2 xvr извини за мае не знания , но если я не знаю как 0x378 становица в 888.Объясните новичку.
Eсли я правильно понел не вазможно контролировать из какой ножки сигнал будет идти. HELP PLZ Это сообщение отредактировал(а) REn005 - 20.10.2009, 20:33 |
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
0x378 и есть 888 (первое число в записано шестнадцатиричной системе, второе - в десятичной. Оба числа одинаковые)
|
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |