1

Qt で QSerialDevice を使用してシリアル ポートに接続しようとしています。以前にQextSerialPortも試しました(これはWindows Vistaでは動作しますが、残念ながらWindows XPでは動作しません..)が、XP、Vista、およびWin7をサポートするAPIが必要です...ライブラリを構築し、次のように構成しました:

CONFIG      += dll
CONFIG      += debug

SVN の最新バージョン (0.2.0 - 2010-04-05) と 0.2.0 zip パッケージを使用しました。
ライブラリをビルドした後、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 ですぐにクラッシュすることです (アプリケーションは正しく初期化できませんでした)。これは、Windows XP で QextSerialPort を使用して発生したエラーと同じです (Windows Vista で動作しました)。
リリース構成と自分のプログラムを使用して QSerialDevice lib をビルドすると、すぐにクラッシュしますが、終了コードは -1073741819 です。

誰かがこのプログラムまたは Qt で動作するシリアル ポートを取得する別のソリューション (おそらく別の API か何か) で私を助けることができますか?そうしないと、プログラムが UNIX システムで動作しないことを意味する Windows API 関数を使用する必要があります。 .
WinXP SP3 での QextSerialPort に関する問題の解決策がある場合は、それも歓迎します ;)

よろしく、
トバイアス

4

1 に答える 1

0

トバイアス、

SVN から使用してみてください: svn checkout svn://scm.fireforge.net/svnroot/qserialdevice

于 2010-04-24T11:22:01.810 に答える