From 4cfee50edf4a7de7da11205f117671d60af4b070 Mon Sep 17 00:00:00 2001 From: LM Date: Thu, 14 Jul 2011 09:44:33 +0200 Subject: [PATCH] Fixed last compile issues on Windows 7 / VS2008 --- qgroundcontrol.pri | 6 ++++-- src/libs/qextserialport/qextserialenumerator.h | 12 +++++++----- src/libs/qextserialport/qextserialenumerator_win.cpp | 13 +++++++++++-- thirdParty/qserialport/qgroundcontrol-qserialport.pri | 2 ++ 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/qgroundcontrol.pri b/qgroundcontrol.pri index e16bb0d..874e48f 100644 --- a/qgroundcontrol.pri +++ b/qgroundcontrol.pri @@ -340,7 +340,8 @@ win32-msvc2008 { #"C:\Program Files\Microsoft SDKs\Windows\v7.0\Include" LIBS += -L$$BASEDIR/lib/sdl/msvc/lib \ - -lSDLmain -lSDL + -lSDLmain -lSDL \ + -lsetupapi exists($$BASEDIR/lib/osg123) { message("Building support for OSG") @@ -403,7 +404,8 @@ win32-g++ { #"C:\Program Files\Microsoft SDKs\Windows\v7.0\Include" LIBS += -L$$BASEDIR/lib/sdl/win32 \ - -lmingw32 -lSDLmain -lSDL -mwindows + -lmingw32 -lSDLmain -lSDL -mwindows \ + -lsetupapi CONFIG += windows diff --git a/src/libs/qextserialport/qextserialenumerator.h b/src/libs/qextserialport/qextserialenumerator.h index a87a844..3519d63 100644 --- a/src/libs/qextserialport/qextserialenumerator.h +++ b/src/libs/qextserialport/qextserialenumerator.h @@ -10,11 +10,13 @@ #include -#ifdef QEXTSERIALPORT_LIB -# define QEXTSERIALPORT_EXPORT Q_DECL_EXPORT -#else -# define QEXTSERIALPORT_EXPORT Q_DECL_IMPORT -#endif +//#ifdef QEXTSERIALPORT_LIB +//# define QEXTSERIALPORT_EXPORT Q_DECL_EXPORT +//#else +//# define QEXTSERIALPORT_EXPORT Q_DECL_IMPORT +//#endif + +#define QEXTSERIALPORT_EXPORT #include #include diff --git a/src/libs/qextserialport/qextserialenumerator_win.cpp b/src/libs/qextserialport/qextserialenumerator_win.cpp index 6026b54..07d348f 100644 --- a/src/libs/qextserialport/qextserialenumerator_win.cpp +++ b/src/libs/qextserialport/qextserialenumerator_win.cpp @@ -7,7 +7,7 @@ #include #include -#include "qextserialport.h" +//#include "qextserialport.h" #include QextSerialEnumerator::QextSerialEnumerator( ) @@ -192,7 +192,16 @@ bool QextSerialEnumerator::getDeviceDetailsWin( QextPortInfo* portInfo, HDEVINFO portInfo->enumName = getDeviceProperty(devInfo, devData, SPDRP_ENUMERATOR_NAME); QString hardwareIDs = getDeviceProperty(devInfo, devData, SPDRP_HARDWAREID); HKEY devKey = SetupDiOpenDevRegKey(devInfo, devData, DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_READ); - portInfo->portName = QextSerialPort::fullPortNameWin( getRegKeyValue(devKey, TEXT("PortName")) ); + + QRegExp rx("^COM(\\d+)"); + QString fullName(getRegKeyValue(devKey, TEXT("PortName"))); + if(fullName.contains(rx)) { + int portnum = rx.cap(1).toInt(); + if(portnum > 9) // COM ports greater than 9 need \\.\ prepended + fullName.prepend("\\\\.\\"); + } + + portInfo->portName = fullName; QRegExp idRx("VID_(\\w+)&PID_(\\w+)"); if( hardwareIDs.toUpper().contains(idRx) ) { diff --git a/thirdParty/qserialport/qgroundcontrol-qserialport.pri b/thirdParty/qserialport/qgroundcontrol-qserialport.pri index 122d0b1..e7106cb 100644 --- a/thirdParty/qserialport/qgroundcontrol-qserialport.pri +++ b/thirdParty/qserialport/qgroundcontrol-qserialport.pri @@ -2,6 +2,8 @@ # Automatically generated by qmake (2.01a) Sa. Apr 2 10:42:30 2011 ###################################################################### +DEFINES += QSERIALPORT_STATIC + DEPENDPATH += . \ include/QtSerialPort \ src/common \