123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- #include "pch.h"
- #include "Global.h"
- #include <direct.h>
- #include <SetupAPI.h>
- #include <InitGuid.h>
- #include <WinIoCtl.h>
- #pragma comment(lib, "SetupAPI.lib")
- #include <locale.h>
- #include <stdlib.h>
- //#include <time.h> //或者 #include <ctime>
- #include <ctime>
- #include <io.h>
- #pragma comment(lib,"version.lib")
- namespace Global
- {
- // 文件路径;
- TCHAR g_szCurModuleDir[MAX_PATH] = { 0 };
- TCHAR g_szCurModulePath[MAX_PATH] = { 0 };
- TCHAR g_szFna[MAX_PATH] = { 0 };
- TCHAR g_szConfig[MAX_PATH] = { 0 };
- // 数据库配置;
- TCHAR g_szDBAddress[MAX_PATH] = { 0 };
- TCHAR g_szDBName[MAX_PATH] = { 0 };
- TCHAR g_szDBAccount[MAX_PATH] = { 0 };
- TCHAR g_szDBPassword[MAX_PATH] = { 0 };
- TCHAR g_szPermission[MAX_PATH] = { 0 };
- //////////////////////////////////////////////////////////////////////////
- // 全局函数;
- void GetConfig()
- {
- TCHAR szConfigpath[MAX_PATH] = { 0 };
- _stprintf_s(szConfigpath, _T("%s%s.ini"), g_szCurModuleDir, g_szFna);
- _tcscpy_s(g_szConfig, szConfigpath);
- TCHAR szValue[MAX_PATH] = { 0 };
- if (PathFileExists(szConfigpath)) {
- GetPrivateProfileString(_T("mysql"), _T("dbname"), _T("scbc_cts"), g_szDBName, MAX_PATH, szConfigpath);
- GetPrivateProfileString(_T("mysql"), _T("dbaddress"), _T("localhost"), g_szDBAddress, MAX_PATH, szConfigpath);
- GetPrivateProfileString(_T("mysql"), _T("dbaccount"), _T("root"), g_szDBAccount, MAX_PATH, szConfigpath);
- GetPrivateProfileString(_T("mysql"), _T("dbpassword"), _T("123456"), g_szDBPassword, MAX_PATH, szConfigpath);
- }
- else {
- _stprintf_s(g_szDBAddress, _T("localhost"));
- _stprintf_s(g_szDBName, _T("scbc_cts"));
- _stprintf_s(g_szDBAccount, _T("root"));
- _stprintf_s(g_szDBPassword, _T("123456"));
- }
- }
- /************************************************************************/
- /* 函数:WriteTextLog[7/28/2009 Jeff];
- /* 描述:写文本日志;
- /* 参数:;
- /* [IN] :;
- /* 返回:void;
- /* 注意:;
- /* 示例:;
- /*
- /* 修改:;
- /* 日期:;
- /* 内容:;
- /************************************************************************/
- void WriteTextLog(const TCHAR* format, ...)
- {
- // 解析出日志路径;
- TCHAR szlogpath[MAX_PATH] = { 0 };
- _stprintf_s(szlogpath, _T("%s%s.txt"), g_szCurModuleDir, g_szFna);
- // 打开或创建文件;
- FILE* fp = NULL;
- //if (_taccess(szlogpath, 0) != -1)
- #ifndef UNICODE
- if (_access(szlogpath, 0) != -1)
- #else
- if (_taccess(szlogpath, 0) != -1)
- #endif
- {// 存在;
- if (0 == _tfopen_s(&fp, szlogpath, _T("a+")))
- // 移动到末尾;
- fseek(fp, 0, SEEK_END);
- }
- else
- {// 不存在;
- _tfopen_s(&fp, szlogpath, _T("w+"));
- }
- if (fp == NULL)
- return;
- // 格式化前设置语言区域;
- TCHAR* old_locale = _tcsdup(_tsetlocale(LC_CTYPE, NULL));
- _tsetlocale(LC_CTYPE, _T("chs"));//设定中文;
- // 格式化日志内容;
- va_list args = NULL;
- int len = 0;
- TCHAR* buffer = NULL;
- va_start(args, format);
- // _vscprintf doesn't count. terminating '\0'
- len = _vsctprintf(format, args) + 1;
- buffer = (TCHAR*)malloc(len * sizeof(TCHAR));
- _vstprintf_s(buffer, len, format, args);
- // 将日志内容输入到文件中;
- // 获取今年年份;
- __time64_t gmt = time(NULL);// 获取当前日历时间(1900-01-01开始的Unix时间戳);
- struct tm gmtm = { 0 };
- localtime_s(&gmtm, &gmt); // 时间戳转成本地时间;
- _ftprintf(fp, _T("%04d-%02d-%02d %02d:%02d:%02d %s\n"), gmtm.tm_year + 1990, gmtm.tm_mon + 1, gmtm.tm_mday, gmtm.tm_hour, gmtm.tm_min, gmtm.tm_sec, buffer);
- // 关闭文件,释放资源并设置回原语言区域;
- free(buffer);
- fclose(fp);
- _tsetlocale(LC_CTYPE, old_locale);
- free(old_locale);//还原区域设定;
- }
- };
|