Название: Проблема программирования LPT с использованием inpout32.dll Отправлено: karib от Март 17, 2011, 11:37 Уважаемые, доброго времени суток!
Прошу не пинать ногами, а помоч словом и делом ;o))) Как-то так приключилось, что заинтересовался программированием, понадобилось управлять устройством через LPT порт. Для начала попробовал написать простенькую прогу (должна зажигать и гасить светодиод), чтобы понять как это всё работает. В программе использовал библиотеку inpout32.dl. Программа компилится без ошибок, но exe-шник не создается и в Консоли сборки выводится следующее сообщение: Цитировать debug/LED_LPT.o:C:\Qt\myprojects\LED_LPT-build-desktop/../LED_LPT/LED_LPT.cpp:33: undefined reference to `Out32(short, short)@8' debug/LED_LPT.o:C:\Qt\myprojects\LED_LPT-build-desktop/../LED_LPT/LED_LPT.cpp:40: undefined reference to `Out32(short, short)@8' collect2: ld returned 1 exit status mingw32-make[1]: *** [debug\LED_LPT.exe] Error 1 mingw32-make: *** [debug] Error 2 Програмуля писалась с использованием стандартных Qt приблуд скачанных с сайта разработчика. В файле *.pro подключил библиотеку: Цитировать QT += core gui TARGET = LED_LPT TEMPLATE = app SOURCES += main.cpp\ LED_LPT.cpp HEADERS += LED_LPT.h FORMS += LED_LPT.ui LIBS += \ -LC:/Qt/myprojects/LED_LPT\ -linpout32 INCLUDEPATH += C:\Qt\myprojects\LED_LPT файлы *.lib и *.dll положил в соответствующие каталоги. Подскажите, уважаемые, что не так. Заранее спасибо. Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: Пантер от Март 17, 2011, 11:40 Нужно еще прилинковать либу, где определен Out32(short, short).
Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: karib от Март 17, 2011, 11:47 Нужно еще прилинковать либу, где определен Out32(short, short). я так понял, что строками: Цитировать LIBS += \ либу я и прилинковал. или еще что-то нужно прописать?-LC:/Qt/myprojects/LED_LPT\ -linpout32 Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: karib от Март 17, 2011, 14:23 Уважаемые Гуру, а может ли такое быть, что подключаемый либ-файл (*.lib) получен в мелкософтовской студии и с Qt у него что-то не срастает?
Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: Пантер от Март 17, 2011, 14:27 Вполне, если собираешь при помощи MinGW.
Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: karib от Март 17, 2011, 15:14 Вполне, если собираешь при помощи MinGW. Засада, блин. Отконвертировали Qt проект под Студию и моя прога запустилась (светодиод, правда в потр не тыкал). Может кто подскажет, что можно использовать для управления LPT Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: Пантер от Март 17, 2011, 15:17 тут почитай (http://www.prog.org.ru/topic_9537_0.html)
Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: karib от Март 17, 2011, 15:28 угу, спасибо! ;o)
Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: karib от Апрель 07, 2011, 10:19 Проблема решилась.
Похоже, что компилятор MinGW действительно не может работать с этой библиотекой. Все заработало после того как стал использовать компилятор от майкрософтофской студии (установил Microsoft Visual C++ 2008 Express Edition). Всем спасибо! Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: vasilii_ru от Февраль 10, 2012, 01:09 У меня стоит таже задача: работа с LPT портом, установлена Qt с креатором под VS2008. При обращении к функцией Out32(..) библиотеки выдает ошибку:
test_ion.obj:: error: unresolved external symbol "void __stdcall Out32(short,short)" (?Out32@@YGXFF@Z) referenced in function "private: void __thiscall test_ion::on_StartButton_clicked(void)" (?on_StartButton_clicked@test_ion@@AAEXXZ) Помогите пожалуйста разобраться что не так ??? Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: vasilii_ru от Февраль 10, 2012, 20:58 Разобрался надо было добавить строку "#pragma comment( lib, "inpout32.lib" )", видимо строки "LIBS += -LC:\Qt\2010.05\...\inpout32.lib" в файле *.pro недостаточно
Название: Re: Проблема программирования LPT с использова Отправлено: Edynchik от Февраль 21, 2012, 17:35 Проблема решилась. Добрый вечер!Похоже, что компилятор MinGW действительно не может работать с этой библиотекой. Все заработало после того как стал использовать компилятор от майкрософтофской студии (установил Microsoft Visual C++ 2008 Express Edition). Всем спасибо! возникла такая же проблема с этой библиотекой. Как использовать компилятор от VS 2010 в creator? т.е в инструментариях он есть, а выбрать в свойствах проета не позволяет. ??? Спасобо. Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: Edynchik от Февраль 22, 2012, 09:21 у меня две...creator(первая) и vs2010 с скомпилированной библиотекой(вторая)...и в creator не могу подставить компилятор от VS...
Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: QuAzI от Февраль 22, 2012, 10:32 А выложите кто-нить эту библу, аж интересно стало, что там не линкуется.
Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: Edynchik от Февраль 22, 2012, 10:52 1) Creator - это не Qt. Это инструмент, собранный с помощью Qt. Спасибо,так и вышло...компилятор подставился, но библиотека так и не скомпилировалась...но библиотека почему то не линкуется,можете посмотреть что я делаю не так?2) Инструменты -> Параметры -> Сборка и запуск -> Профили Qt -> Добавить -> Ткнуть в qmake, скомпилированный в VS 2010. Теперь на текущем проекте идём в "Проекты" и меняем профиль на Qt для VS 2010. Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: QuAzI от Февраль 22, 2012, 11:26 А через QLibrary не прокатит? И не приходится за уши тащить MS VS
Название: Re: Проблема программирования LPT с использова Отправлено: Edynchik от Февраль 22, 2012, 14:20 А через QLibrary не прокатит? И не приходится за уши тащить MS VS не прокатило, по крайней мере функции не выполняются...может есть другой способ?Собственно сейчас весь ворос как подклюить эту библиотеку к проекту? Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: QuAzI от Февраль 22, 2012, 14:31 Как проверял? Я как-то так хук на dll вешал и вполне работало
Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: Edynchik от Февраль 22, 2012, 16:00 Как проверял? Я как-то так хук на dll вешал и вполне работало да подключил осцил и глядел...ну и к тому же после вызова Out32 происходил segmentation fault...Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: QuAzI от Февраль 22, 2012, 16:02 Странно, у меня не сегфолтило, хотя я и не вешал на порт ничего реального.
Название: Re: Проблема программирования LPT с использованием inpout32.dll Отправлено: Edynchik от Февраль 22, 2012, 16:14 сам даже не знаю в чем дело,казалось бы выставляю в 1 все ноги(т.е. Out32(888,255))...
|