#include "mainwindow.h" #include #include "base/HGDef.h" #include #if !defined (HG_CMP_MSC) #include #include #include #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"; #elif defined(OEM_MEISONGDA) const char *oem = "MaxsoundScan"; #elif defined(OEM_GUANGDIANTONG) const char *oem = "ToecScan"; #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 char* lockFilePath = "/tmp/HGScanTool.lock"; int fd = open(lockFilePath, O_WRONLY | O_CREAT, S_IWUSR | S_IWGRP | S_IWOTH); if (fd == -1) printf("open failed."); if (-1 == chmod(lockFilePath, S_IWUSR | S_IWGRP | S_IWOTH)) { printf("chmod file: %s failed.\n", lockFilePath); } 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) { printf("lock file %s failed.\n", lockFilePath); close(fd); return 0; } else { printf("open file %s successfully.\n", lockFilePath); } #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); close(fd); unlink(lockFilePath); #endif return ret; }