Я пытаюсь использовать QSerialDevice в Qt, чтобы подключиться к моему последовательному порту. Я также пробовал QextSerialPort раньше (который работает в Windows Vista, но, к сожалению, не в Windows XP ..), но мне нужен API, который поддерживает XP, Vista и Win7... Я собрал библиотеку и настроил ее следующим образом:
CONFIG += dll
CONFIG += debug
Я использовал текущую версию из SVN (0.2.0 - 2010-04-05) и zip-пакет 0.2.0.
После сборки библиотеки я скопировал ее в свой Qt Libdir (C:\Qt\2009.05\ qt\lib), а также в C:\Windows\system32. Теперь я пытаюсь связать с lib в моем файле проекта:
LIBS += -lqserialdevice
Я импортирую необходимый заголовок (abstractserial.h) и использую свой собственный AbstractSerial следующим образом:
// Initialize
this->serialPort->setDeviceName("COM1");
if (!this->serialPort->open(QIODevice::ReadWrite | QIODevice::Unbuffered))
qWarning() << "Error" << this->serialPort->errorString();
// Configure SerialPort
this->serialPort->setBaudRate(AbstractSerial::BaudRate4800);
this->serialPort->setDataBits(AbstractSerial::DataBits8);
this->serialPort->setFlowControl(AbstractSerial::FlowControlOff);
this->serialPort->setParity(AbstractSerial::ParityNone);
this->serialPort->setStopBits(AbstractSerial::StopBits1);
Проблема в том, что если я запускаю свое приложение, оно немедленно падает с кодом выхода -1073741515 (приложение не удалось правильно инициализировать). Это та же самая ошибка, которую я получил при использовании QextSerialPort под Windows XP (она работала с Windows Vista).
Если я соберу библиотеку QSerialDevice с конфигурацией выпуска, а также свою программу, она немедленно выйдет из строя, но с кодом выхода -1073741819.
Может ли кто-нибудь помочь мне с этой программой или с другим решением для работы последовательного порта с Qt (может быть, другой API или что-то в этом роде?). В противном случае мне придется использовать функции Windows API, что будет означать, что моя программа не будет работать с системами UNIX. .
Если у вас есть решение проблемы с QextSerialPort под WinXP SP3, они тоже приветствуются ;)
С наилучшими пожеланиями,
Тобиас
0xC0000005
. - person MSalters   schedule 23.04.2010