softdog.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "softdog.h"
  2. #include <QApplication>
  3. bool SoftDog::DogCheck(QString &errMsg, int nAddr, const QString &appName)
  4. {
  5. errMsg = "";
  6. #ifdef Q_OS_WIN
  7. QString appPath = QApplication::applicationDirPath() + "/DogCheck4.dll";
  8. #else
  9. QString appPath = QApplication::applicationDirPath() + "/libLHDogCheck.so";
  10. #endif
  11. QLibrary mylib(appPath);
  12. if(!mylib.load())
  13. {
  14. errMsg = "加载动态库失败! 路径:" + appPath;
  15. return false;
  16. }
  17. if(!mylib.isLoaded() && !mylib.load())
  18. {
  19. errMsg = "缺少认证库,请不要非法使用软件!";
  20. return false;
  21. }
  22. typedef int (*FunLHCheckDog)(int nAddr, const char* lpszName);
  23. FunLHCheckDog fnCheck = reinterpret_cast<FunLHCheckDog>(mylib.resolve("LHCheckDog"));
  24. if(fnCheck == nullptr)
  25. {
  26. errMsg = "认证库不对,请不要非法使用软件!";
  27. return false;
  28. }
  29. if(fnCheck == nullptr) return false;
  30. if(fnCheck(nAddr, appName.toLocal8Bit()) != 0)
  31. {
  32. errMsg = "请不要非法使用软件!";
  33. return false;
  34. }
  35. return true;
  36. }