PacketDAO::PacketDAO(QObject *parent) : GenericDAO<Packet>(parent) { setObjectName("PacketDAO"); QString appDirPath(QCoreApplication::applicationDirPath()); QString sysdbPath(appDirPath + "/sysdb.db"); m_db = QSqlDatabase::addDatabase("QSQLITE", "Packager"); m_db.setDatabaseName(sysdbPath); m_db.open(); }
QString dataDirPath() { QString appDirPath("%1/%2"); appDirPath = appDirPath.arg(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation), qApp->applicationName()); QDir appDir(appDirPath); if (!appDir.exists()) appDir.mkpath(appDirPath); #ifdef Q_OS_MAC if (!appDir.exists("settings.ini")) QProcess::startDetached("sh", QStringList() << "-c" << "cp '" + qApp->applicationDirPath() + "/settings.ini' '" + appDirPath + "/settings.ini'"); #endif return appDirPath; }
/** * @brief main * @param argc * @param argv * @return */ int main(int argc, char *argv[]) { // 加载库 const std::string filePath = std::string(appDirPath()).append("/").append(libraryPrefix()) .append("jframeworkdir").append(librarySuffix(false)); // 获取 FrameFacadeInstace 导出接口 typedef void* (J_ATTR_CDECL*FrameFacadeInstace)(int); FrameFacadeInstace frameFacadeInstace = (FrameFacadeInstace) JLibrary::resolve(filePath, "FrameFacadeInstace"); if (!frameFacadeInstace) { return -1; // 获取导出接口失败 } IJFrameFacade *frameFacade = dynamic_cast<IJFrameFacade *> ((IJUnknown *)(frameFacadeInstace( #if defined(_MSC_VER) || defined(DEBUG) || defined(_DEBUG) 1 #else 0 #endif // _MSC_VER ))); if (!frameFacade) { return -1; // 获取实例失败 } // 加载框架 if (!frameFacade->loadFrame(argc, argv)) { frameFacade->exitFrame(); return -1; // 加载失败 } // 显示框架主窗口 frameFacade->showFrame(true, true); // return frameFacade->runQApp(0); }