#include "mainwindow.h" #include #include "base/HGDef.h" #include #include #if !defined (HG_CMP_MSC) #include #include #include #endif #include "log/log.h" HLOG g_hLog = nullptr; #if defined(OEM_HANWANG) const char* oem = "HanvonScan"; #elif defined(OEM_LISICHENG) const char* oem = "LanxumScan"; #elif defined(OEM_CANGTIAN) const char* oem = "CumtennScan"; #elif defined(OEM_ZHONGJING) const char* oem = "MicrotekScan"; #elif defined(OEM_ZIGUANG) const char* oem = "UniScan"; #elif defined(OEM_NEUTRAL) const char* oem = "NeuScan"; #elif defined(OEM_DELI) const char* oem = "DeliScan"; #else const char* oem = "HuaGoScan"; #endif int main(int argc, char *argv[]) { QApplication a(argc, argv); g_hLog = EnableLog(nullptr, oem, "app"); #ifdef HG_CMP_MSC HANDLE hMutex = CreateMutexW(NULL, FALSE, L"{A8856E3B-3B67-43e4-82AD-154258C0FD37}"); assert(NULL != hMutex); if (GetLastError() == ERROR_ALREADY_EXISTS) { CloseHandle(hMutex); return -1; } #else const QString lockFilePath = "/tmp/HGScanTool.lock"; QFile lockFile(lockFilePath); if (!lockFile.open(QIODevice::ReadWrite | QIODevice::Unbuffered)) { return 0; } int fd = lockFile.handle(); struct flock lock; lock.l_type = F_WRLCK; lock.l_whence = SEEK_SET; lock.l_start = 0; lock.l_len = 0; if (fcntl(fd, F_SETLK, &lock) == -1) { lockFile.close(); return 0; } #endif QTranslator translator_qt; if (translator_qt.load(":translation/qt_zh_CN.qm")) a.installTranslator(&translator_qt); QTranslator translator_app; if (translator_app.load(":translation/Scantool_zh_CN.qm")) a.installTranslator(&translator_app); MainWindow w; //w.show(); int ret = a.exec(); DisableLog(g_hLog); g_hLog = nullptr; #ifdef HG_CMP_MSC CloseHandle(hMutex); #else lock.l_type = F_UNLCK; fcntl(fd, F_SETLK, &lock); lockFile.close(); #endif return ret; }