#include "softdog.h" #include bool SoftDog::DogCheck(QString &errMsg, int nAddr, const QString &appName) { errMsg = ""; #ifdef Q_OS_WIN QString appPath = QApplication::applicationDirPath() + "/DogCheck4.dll"; #else QString appPath = QApplication::applicationDirPath() + "/libLHDogCheck.so"; #endif QLibrary mylib(appPath); if(!mylib.load()) { errMsg = "加载动态库失败! 路径:" + appPath; return false; } if(!mylib.isLoaded() && !mylib.load()) { errMsg = "缺少认证库,请不要非法使用软件!"; return false; } typedef int (*FunLHCheckDog)(int nAddr, const char* lpszName); FunLHCheckDog fnCheck = reinterpret_cast(mylib.resolve("LHCheckDog")); if(fnCheck == nullptr) { errMsg = "认证库不对,请不要非法使用软件!"; return false; } if(fnCheck == nullptr) return false; if(fnCheck(nAddr, appName.toLocal8Bit()) != 0) { errMsg = "请不要非法使用软件!"; return false; } return true; }