void Converter::initialize() { initialized = true; QLibrary libopencc; libopencc.setFileNameAndVersion("opencc", "1.0.0"); if (!libopencc.load()) return; opencc_open = (opencc_t (*)(const char *))libopencc.resolve("opencc_open"); if (opencc_open == NULL) return; opencc_close = (int (*)(opencc_t))libopencc.resolve("opencc_close"); if (opencc_close == NULL) return; opencc_convert_utf8 = (char * (*)(opencc_t, const char *, size_t))libopencc.resolve("opencc_convert_utf8"); if (opencc_convert_utf8 == NULL) return; opencc_errno = (opencc_error (*)(void))libopencc.resolve("opencc_errno"); if (opencc_errno == NULL) return; opencc_perror = (void (*)(const char *))libopencc.resolve("opencc_perror"); if (opencc_perror == NULL) return; s_loaded = true; }
foreach ( QString key, providersList ) { QLibrary *library = QgsProviderRegistry::instance()->providerLibrary( key ); if ( !library ) continue; dataCapabilities_t * dataCapabilities = ( dataCapabilities_t * ) cast_to_fptr( library->resolve( "dataCapabilities" ) ); if ( !dataCapabilities ) { QgsDebugMsg( library->fileName() + " does not have dataCapabilities" ); continue; } int capabilities = dataCapabilities(); if ( capabilities == QgsDataProvider::NoDataCapabilities ) { QgsDebugMsg( library->fileName() + " does not have any dataCapabilities" ); continue; } dataItem_t *dataItem = ( dataItem_t * ) cast_to_fptr( library->resolve( "dataItem" ) ); if ( !dataItem ) { QgsDebugMsg( library->fileName() + " does not have dataItem" ); continue; } QgsDataItem *item = dataItem( "", NULL ); // empty path -> top level if ( item ) { QgsDebugMsg( "Add new top level item : " + item->name() ); connectItem( item ); providerMap.insertMulti( capabilities, item ); } }
virtual Function FindFunction(const char *name) { if (lib) { void *fnAddress = (void*)lib->resolve(name); return static_cast<Function>(fnAddress); } return NULL; }
Garmin::IDevice * CDeviceGarmin::getDevice() { Garmin::IDevice * (*func)(const char*) = 0; Garmin::IDevice * dev = 0; #if defined(Q_OS_MAC) // MacOS X: plug-ins are stored in the bundle folder QString libname = QString("%1/lib%2" XSTR(SHARED_LIB_EXT)) .arg(QCoreApplication::applicationDirPath().replace(QRegExp("MacOS$"), "Resources/Drivers")) .arg(devkey); #else QString libname = QString("%1/lib%2" XSTR(SHARED_LIB_EXT)).arg(XSTR(PLUGINDIR)).arg(devkey); #endif QString funcname = QString("init%1").arg(devkey); QLibrary lib; lib.setFileName(libname); bool lib_loaded = lib.load(); if (lib_loaded) { func = (Garmin::IDevice * (*)(const char*))lib.resolve(funcname.toLatin1()); } if(!lib_loaded || func == 0) { QMessageBox warn; warn.setIcon(QMessageBox::Warning); warn.setWindowTitle(tr("Error ...")); warn.setText(tr("Failed to load driver.")); warn.setDetailedText(lib.errorString()); warn.setStandardButtons(QMessageBox::Ok); warn.exec(); return 0; } dev = func(INTERFACE_VERSION); if(dev == 0) { QMessageBox warn; warn.setIcon(QMessageBox::Warning); warn.setWindowTitle(tr("Error ...")); warn.setText(tr("Driver version mismatch.")); QString detail = QString( tr("The version of your driver plugin \"%1\" does not match the version QLandkarteGT expects (\"%2\").") ).arg(libname).arg(INTERFACE_VERSION); warn.setDetailedText(detail); warn.setStandardButtons(QMessageBox::Ok); warn.exec(); func = 0; } if(dev) { dev->setPort(port.toLatin1()); dev->setGuiCallback(GUICallback,this); } return dev; }
static T resolveFunction(QLibrary &lib, const char *name) { T temp = reinterpret_cast<T>(lib.resolve(name)); if (temp == nullptr) { throw std::runtime_error(QObject::tr("invalid 7-zip32.dll: %1").arg(lib.errorString()).toLatin1().constData()); } return temp; }
bool QgsTransaction::supportsTransaction( const QgsVectorLayer* layer ) { QLibrary* lib = QgsProviderRegistry::instance()->providerLibrary( layer->providerType() ); if ( !lib ) return false; return lib->resolve( "createTransaction" ); }
QFunctionPointer resolve(const char* name) { QFunctionPointer ptr = m_libUdev.resolve(name); if (!ptr) { qWarning("libudev could not resolve expected symbol %s", name); m_loaded = false; } return ptr; }
//eComnpass libray funcitons void eCompass_GetVersion(int *pMajorVer, int *pMinorVer) { if(eCompass.isLoaded()) { pFuncGetVersion eCompass_GetVersion = (pFuncGetVersion) eCompass.resolve("eCompass_GetVersion"); if(eCompass_GetVersion) { eCompass_GetVersion(pMajorVer, pMinorVer); } } }
BOOL CAD_Stop(void) { if(Nordic.isLoaded()) { pFuncGetBool CAD_Stop = (pFuncGetBool)Nordic.resolve("CAD_Stop"); if(CAD_Stop) { return CAD_Stop(); } } return FALSE; }
BOOL NOR_Open(void) { if(Nordic.isLoaded()) { pFuncGetBool NOR_Open = (pFuncGetBool)Nordic.resolve("NOR_Open"); if(NOR_Open) { return NOR_Open(); } } return FALSE; }
USHORT CAD_GetCandence(void) { if(Nordic.isLoaded()) { pFuncGetUShort CAD_GetCandence = (pFuncGetUShort)Nordic.resolve("CAD_GetCandence"); if(CAD_GetCandence) { return CAD_GetCandence(); } } return NULL; }
BOOL HRS_Stop(void) { if(Nordic.isLoaded()) { pFuncGetBool HRS_Stop = (pFuncGetBool)Nordic.resolve("HRS_Stop"); if(HRS_Stop) { return HRS_Stop(); } } return FALSE; }
UCHAR* RTK_GetRxBuf(void) { if(Nordic.isLoaded()) { pFuncGetUCHARPt RTK_GetRxBuf = (pFuncGetUCHARPt)Nordic.resolve("RTK_GetRxBuf"); if(RTK_GetRxBuf) { return RTK_GetRxBuf(); } } return NULL; }
BOOL SND_SendTxBuf(UCHAR *ucTxBuf) { if(Nordic.isLoaded()) { pFuncGetBoolParamUCharPt SND_SendTxBuf = (pFuncGetBoolParamUCharPt)Nordic.resolve("SND_SendTxBuf"); if(SND_SendTxBuf) { return SND_SendTxBuf(ucTxBuf); } } return FALSE; }
BOOL RTK_Stop(void) { if(Nordic.isLoaded()) { pFuncGetBool RTK_Stop = (pFuncGetBool)Nordic.resolve("RTK_Stop"); if(RTK_Stop) { return RTK_Stop(); } } return FALSE; }
UCHAR HRS_GetHeartRate(void) { if(Nordic.isLoaded()) { pFuncGetUCHAR HRS_GetHeartRate = (pFuncGetUCHAR)Nordic.resolve("HRS_GetHeartRate"); if(HRS_GetHeartRate) { return HRS_GetHeartRate(); } } return NULL; }
BOOL eCompass_Init() { if(eCompass.isLoaded()) { pFuncGetInt eCompass_Init = (pFuncGetInt) eCompass.resolve("eCompass_Init"); if(eCompass_Init) { return eCompass_Init(); } } return FALSE; }
BOOL NOR_GetChID(UCHAR ucChannel, UCHAR *ucManufact, USHORT *usDeviceNum) { if(Nordic.isLoaded()) { pFuncGetId NOR_GetChID = (pFuncGetId)Nordic.resolve("NOR_GetChID"); if(NOR_GetChID) { return NOR_GetChID(ucChannel,ucManufact,usDeviceNum); } } return FALSE; }
BOOL HRS_Start(USHORT usDeviceNumber, UCHAR ucManufactureID) { if(Nordic.isLoaded()) { pFuncStart HRS_Start = (pFuncStart)Nordic.resolve("HRS_Start"); if(HRS_Start) { return HRS_Start(usDeviceNumber,ucManufactureID); } } return FALSE; }
BOOL NOR_Reset(void) { if(Nordic.isLoaded()) { pFuncGetBool NOR_Reset = (pFuncGetBool)Nordic.resolve("NOR_Reset"); if(NOR_Reset) { return NOR_Reset(); } } return FALSE; }
UCHAR NOR_GetChStatus(UCHAR ucChannel) { if(Nordic.isLoaded()) { pFuncGetUCHARParamUCHAR NOR_GetChStatus = (pFuncGetUCHARParamUCHAR)Nordic.resolve("NOR_GetChStatus"); if(NOR_GetChStatus) { return NOR_GetChStatus(ucChannel); } } return NULL; }
BOOL NOR_Close(void) { if(Nordic.isLoaded()) { pFuncGetBool NOR_Close = (pFuncGetBool)Nordic.resolve("NOR_Close"); if(NOR_Close) { return NOR_Close(); } } return FALSE; }
BOOL SND_Stop(void) { if(Nordic.isLoaded()) { pFuncGetBool SND_Stop = (pFuncGetBool)Nordic.resolve("SND_Stop"); if(SND_Stop) { return SND_Stop(); } } return FALSE; }
BOOL eCompass_Stop() { if(eCompass.isLoaded()) { pFuncGetInt eCompass_Stop = (pFuncGetInt) eCompass.resolve("eCompass_Stop"); if(eCompass_Stop) { return eCompass_Stop(); } } return FALSE; }
BOOL SND_Start(void) { if(Nordic.isLoaded()) { pFuncGetBool SND_Start = (pFuncGetBool)Nordic.resolve("SND_Start"); if(SND_Start) { return SND_Start(); } } return FALSE; }
void tst_QLibrary::errorString() { QFETCH(int, operation); QFETCH(QString, fileName); QFETCH(bool, success); QFETCH(QString, errorString); QLibrary lib; if (!(operation & DontSetFileName)) { lib.setFileName(fileName); } bool ok = false; switch (operation & OperationMask) { case Load: ok = lib.load(); break; case Unload: ok = lib.load(); //### ok = lib.unload(); break; case Resolve: { ok = lib.load(); QCOMPARE(ok, true); if (success) { ok = lib.resolve("mylibversion"); } else { ok = lib.resolve("nosuchsymbol"); } break;} default: QFAIL(qPrintable(QString("Unknown operation: %1").arg(operation))); break; } QRegExp re(errorString); QString libErrorString = lib.errorString(); QVERIFY(!lib.isLoaded() || lib.unload()); QVERIFY2(re.exactMatch(libErrorString), qPrintable(libErrorString)); QCOMPARE(ok, success); }
qint64 GetLibAPILevel (const QString& file) { if (file.isEmpty ()) return static_cast<quint64> (-1); QLibrary library (file); if (!library.load ()) return static_cast<quint64> (-1); typedef quint64 (*APIVersion_t) (); auto getter = reinterpret_cast<APIVersion_t> (library.resolve ("GetAPILevels")); return getter ? getter () : static_cast<quint64> (-1); }
short eCompass_GetYaw() { ECOMPASS_INFO Info; if(eCompass.isLoaded()) { pFuncCompassInfo eCompass_GetInfo = (pFuncCompassInfo) eCompass.resolve("eCompass_GetInfo"); if(eCompass_GetInfo) { eCompass_GetInfo(&Info); return Info.Yaw; } } return -1; }
//Altimeter library functions long AltimeterGetTemperature() { INFO_GET Info; if(Altimeter.isLoaded()) { pFuncGetAltInfo AltiMeter_GetInfo = (pFuncGetAltInfo) Altimeter.resolve("GetBikeInfo"); if(AltiMeter_GetInfo) { AltiMeter_GetInfo(&Info); return Info.OUT_TEMP; } } return -100; }
long AltimeterGetAltitude() { INFO_GET Info; if(Altimeter.isLoaded()) { pFuncGetAltInfo AltiMeter_GetInfo = (pFuncGetAltInfo) Altimeter.resolve("GetBikeInfo"); if(AltiMeter_GetInfo) { AltiMeter_GetInfo(&Info); return Info.OUT_ALTITUDE; } } return -1; }