Название: Вылет при чтении LPT порта в потоке Отправлено: grOk от Февраль 23, 2011, 04:12 Доброго времени суток.
Помогите разобраться. Читаю в потоке LPT порт с помощью библиотеки inpout32.dll, результат вывожу в qDebug(). В режиме отладки программа выдает результат 5 раз затем вылетает. В режиме релиза 2 раза, дальше бред, затем вылет: Код: Запускается D:\Develop\QT\TLPT-build-desktop\release\TLPT.exe... lptport.h Код: #ifndef LPTPORT_H lptport.cpp Код: #include <QDebug> P.S. Система: Qt Creator 2.0.1, Qt 4.7.0, Win7 32bit Название: Re: Вылет при чтении LPT порта в потоке Отправлено: BRE от Февраль 23, 2011, 09:49 Зануляй указатели на функции при конструировании, и проверяй резольвились ли они реально (после resolve).
Название: Re: Вылет при чтении LPT порта в потоке Отправлено: grOk от Февраль 23, 2011, 11:26 Добавил обнуление и проверку.
lptport.h Код: LptPort::LptPort(){ Результат пишет 3 раза, затем вылет: Код: Запускается D:\Develop\QT\TLPT-build-desktop\release\TLPT.exe... Что заметил. Если в конструкторе убрать вывод qDebug, то результат как в первом посте. Если писать и считывать порт по нажатию кнопки, то все работает, а вот прослушка в потоке не получается. Видимо что-то с памятью происходит. Название: Re: Вылет при чтении LPT порта в потоке Отправлено: grOk от Февраль 23, 2011, 11:53 Кажется нашел.
добавил _stdcal в typedef Код: typedef short _stdcall (*Inp32)(short portAddr); |