Global.cpp 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #include "pch.h"
  2. #include "Global.h"
  3. #include <direct.h>
  4. #include <SetupAPI.h>
  5. #include <InitGuid.h>
  6. #include <WinIoCtl.h>
  7. #pragma comment(lib, "SetupAPI.lib")
  8. #include <locale.h>
  9. #include <stdlib.h>
  10. //#include <time.h> //或者 #include <ctime>
  11. #include <ctime>
  12. #include <io.h>
  13. #pragma comment(lib,"version.lib")
  14. namespace Global
  15. {
  16. // 文件路径;
  17. TCHAR g_szCurModuleDir[MAX_PATH] = { 0 };
  18. TCHAR g_szCurModulePath[MAX_PATH] = { 0 };
  19. TCHAR g_szFna[MAX_PATH] = { 0 };
  20. TCHAR g_szConfig[MAX_PATH] = { 0 };
  21. // 数据库配置;
  22. TCHAR g_szDBAddress[MAX_PATH] = { 0 };
  23. TCHAR g_szDBName[MAX_PATH] = { 0 };
  24. TCHAR g_szDBAccount[MAX_PATH] = { 0 };
  25. TCHAR g_szDBPassword[MAX_PATH] = { 0 };
  26. TCHAR g_szPermission[MAX_PATH] = { 0 };
  27. //////////////////////////////////////////////////////////////////////////
  28. // 全局函数;
  29. void GetConfig()
  30. {
  31. TCHAR szConfigpath[MAX_PATH] = { 0 };
  32. _stprintf_s(szConfigpath, _T("%s%s.ini"), g_szCurModuleDir, g_szFna);
  33. _tcscpy_s(g_szConfig, szConfigpath);
  34. TCHAR szValue[MAX_PATH] = { 0 };
  35. if (PathFileExists(szConfigpath)) {
  36. GetPrivateProfileString(_T("mysql"), _T("dbname"), _T("scbc_cts"), g_szDBName, MAX_PATH, szConfigpath);
  37. GetPrivateProfileString(_T("mysql"), _T("dbaddress"), _T("localhost"), g_szDBAddress, MAX_PATH, szConfigpath);
  38. GetPrivateProfileString(_T("mysql"), _T("dbaccount"), _T("root"), g_szDBAccount, MAX_PATH, szConfigpath);
  39. GetPrivateProfileString(_T("mysql"), _T("dbpassword"), _T("123456"), g_szDBPassword, MAX_PATH, szConfigpath);
  40. }
  41. else {
  42. _stprintf_s(g_szDBAddress, _T("localhost"));
  43. _stprintf_s(g_szDBName, _T("scbc_cts"));
  44. _stprintf_s(g_szDBAccount, _T("root"));
  45. _stprintf_s(g_szDBPassword, _T("123456"));
  46. }
  47. }
  48. /************************************************************************/
  49. /* 函数:WriteTextLog[7/28/2009 Jeff];
  50. /* 描述:写文本日志;
  51. /* 参数:;
  52. /* [IN] :;
  53. /* 返回:void;
  54. /* 注意:;
  55. /* 示例:;
  56. /*
  57. /* 修改:;
  58. /* 日期:;
  59. /* 内容:;
  60. /************************************************************************/
  61. void WriteTextLog(const TCHAR* format, ...)
  62. {
  63. // 解析出日志路径;
  64. TCHAR szlogpath[MAX_PATH] = { 0 };
  65. _stprintf_s(szlogpath, _T("%s%s.txt"), g_szCurModuleDir, g_szFna);
  66. // 打开或创建文件;
  67. FILE* fp = NULL;
  68. //if (_taccess(szlogpath, 0) != -1)
  69. #ifndef UNICODE
  70. if (_access(szlogpath, 0) != -1)
  71. #else
  72. if (_taccess(szlogpath, 0) != -1)
  73. #endif
  74. {// 存在;
  75. if (0 == _tfopen_s(&fp, szlogpath, _T("a+")))
  76. // 移动到末尾;
  77. fseek(fp, 0, SEEK_END);
  78. }
  79. else
  80. {// 不存在;
  81. _tfopen_s(&fp, szlogpath, _T("w+"));
  82. }
  83. if (fp == NULL)
  84. return;
  85. // 格式化前设置语言区域;
  86. TCHAR* old_locale = _tcsdup(_tsetlocale(LC_CTYPE, NULL));
  87. _tsetlocale(LC_CTYPE, _T("chs"));//设定中文;
  88. // 格式化日志内容;
  89. va_list args = NULL;
  90. int len = 0;
  91. TCHAR* buffer = NULL;
  92. va_start(args, format);
  93. // _vscprintf doesn't count. terminating '\0'
  94. len = _vsctprintf(format, args) + 1;
  95. buffer = (TCHAR*)malloc(len * sizeof(TCHAR));
  96. _vstprintf_s(buffer, len, format, args);
  97. // 将日志内容输入到文件中;
  98. // 获取今年年份;
  99. __time64_t gmt = time(NULL);// 获取当前日历时间(1900-01-01开始的Unix时间戳);
  100. struct tm gmtm = { 0 };
  101. localtime_s(&gmtm, &gmt); // 时间戳转成本地时间;
  102. _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);
  103. // 关闭文件,释放资源并设置回原语言区域;
  104. free(buffer);
  105. fclose(fp);
  106. _tsetlocale(LC_CTYPE, old_locale);
  107. free(old_locale);//还原区域设定;
  108. }
  109. };