2024-04-23 09:44:22 +00:00
|
|
|
#include "mainwindow.h"
|
|
|
|
#include <QApplication>
|
2024-05-05 09:16:09 +00:00
|
|
|
#include "base/HGDef.h"
|
2024-05-10 08:48:21 +00:00
|
|
|
#include <QTranslator>
|
2024-08-23 07:28:39 +00:00
|
|
|
#include <QFile>
|
|
|
|
|
|
|
|
#if !defined (HG_CMP_MSC)
|
|
|
|
#include <fcntl.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <sys/file.h>
|
|
|
|
#endif
|
|
|
|
|
2024-08-09 12:15:00 +00:00
|
|
|
#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
|
2024-04-23 09:44:22 +00:00
|
|
|
|
|
|
|
int main(int argc, char *argv[])
|
|
|
|
{
|
|
|
|
QApplication a(argc, argv);
|
|
|
|
|
2024-08-09 12:15:00 +00:00
|
|
|
g_hLog = EnableLog(nullptr, oem, "app");
|
|
|
|
|
2024-05-05 09:16:09 +00:00
|
|
|
#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;
|
|
|
|
}
|
2024-08-23 07:28:39 +00:00
|
|
|
#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;
|
|
|
|
}
|
2024-05-05 09:16:09 +00:00
|
|
|
#endif
|
|
|
|
|
2024-05-10 08:48:21 +00:00
|
|
|
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);
|
|
|
|
|
2024-04-23 09:44:22 +00:00
|
|
|
MainWindow w;
|
|
|
|
//w.show();
|
2024-05-05 09:16:09 +00:00
|
|
|
int ret = a.exec();
|
|
|
|
|
2024-08-09 12:15:00 +00:00
|
|
|
DisableLog(g_hLog);
|
|
|
|
g_hLog = nullptr;
|
|
|
|
|
2024-05-05 09:16:09 +00:00
|
|
|
#ifdef HG_CMP_MSC
|
|
|
|
CloseHandle(hMutex);
|
2024-08-23 07:28:39 +00:00
|
|
|
#else
|
|
|
|
lock.l_type = F_UNLCK;
|
|
|
|
fcntl(fd, F_SETLK, &lock);
|
|
|
|
lockFile.close();
|
2024-05-05 09:16:09 +00:00
|
|
|
#endif
|
|
|
|
return ret;
|
2024-04-23 09:44:22 +00:00
|
|
|
}
|