lyfzAttendance.cpp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. // lyfzAttendance.cpp : 定义应用程序的类行为。
  2. //
  3. #include "stdafx.h"
  4. #include "lyfzAttendance.h"
  5. #include "lyfzAttendanceDlg.h"
  6. #include "CDFKAttendOcx.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #endif
  10. // lyfzAttendance
  11. BEGIN_MESSAGE_MAP(lyfzAttendance, CWinAppEx)
  12. ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
  13. END_MESSAGE_MAP()
  14. // lyfzAttendance 构造
  15. lyfzAttendance::lyfzAttendance()
  16. {
  17. // TODO: 在此处添加构造代码,
  18. // 将所有重要的初始化放置在 InitInstance 中
  19. }
  20. // 唯一的一个 lyfzAttendance 对象
  21. lyfzAttendance theApp;
  22. // lyfzAttendance 初始化
  23. BOOL lyfzAttendance::InitInstance()
  24. {
  25. if( GetLastError() == ERROR_ALREADY_EXISTS )
  26. {
  27. ::MessageBox(NULL,_T("指纹机处理程序已经打开!"),_T("温馨提示"),MB_ICONINFORMATION);
  28. return FALSE;
  29. }
  30. // 如果一个运行在 Windows XP 上的应用程序清单指定要
  31. // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
  32. //则需要 InitCommonControlsEx()。否则,将无法创建窗口。
  33. INITCOMMONCONTROLSEX InitCtrls;
  34. InitCtrls.dwSize = sizeof(InitCtrls);
  35. // 将它设置为包括所有要在应用程序中使用的
  36. // 公共控件类。
  37. InitCtrls.dwICC = ICC_WIN95_CLASSES;
  38. InitCommonControlsEx(&InitCtrls);
  39. AfxInitRichEdit2();
  40. CWinAppEx::InitInstance();
  41. AfxEnableControlContainer();
  42. if (!AfxSocketInit())
  43. {
  44. AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
  45. return FALSE;
  46. }
  47. /************************************************************************/
  48. TCHAR szDrive[_MAX_DRIVE];
  49. TCHAR szDir[_MAX_DIR];
  50. ::GetModuleFileName(NULL, g_ModulePath, sizeof(g_ModulePath)/sizeof(TCHAR));
  51. wsprintf(g_ModuleFileName, _T("%s"), g_ModulePath);
  52. _tsplitpath(g_ModulePath, szDrive, szDir, NULL, NULL);
  53. _tcscpy(g_ModulePath, szDrive);
  54. _tcscat(g_ModulePath, szDir);
  55. //strPath = CString(szFull);
  56. char szFileName[MAX_PATH] = {0};
  57. char szModulePath[MAX_PATH] = {0};
  58. WChar2Char(szModulePath, g_ModulePath);
  59. sprintf(szFileName, "%s\Log.txt", szModulePath);
  60. ///设置日志配置文件名
  61. LOG4C_PARAM_CFG_FILE_NAME(szFileName);
  62. ///设置日志级别
  63. LOG4C_PARAM_LOG_LEVEL("unknown");
  64. ///设置日志文件大小
  65. LOG4C_PARAM_LOG_FILE_SIZE(5024000);
  66. ///设置生成日志文件个数,达到最大个数将自动覆盖最旧的日志
  67. LOG4C_PARAM_LOG_FILE_NUM(3);
  68. ///设置每次记录日志都重新读取日志配置文件
  69. LOG4C_PARAM_REREAD_LOG_CFG_FILE(1);
  70. ///带参数日志模块初始化,以上所有设置了的参数都将生效,没有设置的采用缺省值
  71. LOG4C_INIT_WITH_PARAM();
  72. LOG4C((LOG_NOTICE,"启动log日志"));
  73. /************************************************************************/
  74. CString strOxc(g_ModulePath);
  75. if ( !IsRegisterOcx(strOxc + _T("FP_CLOCK.ocx")) )
  76. {
  77. RegisterOcx(strOxc + _T("FP_CLOCK.ocx"));
  78. }
  79. // 标准初始化
  80. // 如果未使用这些功能并希望减小
  81. // 最终可执行文件的大小,则应移除下列
  82. // 不需要的特定初始化例程
  83. // 更改用于存储设置的注册表项
  84. // TODO: 应适当修改该字符串,
  85. // 例如修改为公司或组织名
  86. SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
  87. ClyfzAttendanceDlg dlg;
  88. m_pMainWnd = &dlg;
  89. INT_PTR nResponse = dlg.DoModal();
  90. if (nResponse == IDOK)
  91. {
  92. // TODO: 在此放置处理何时用
  93. // “确定”来关闭对话框的代码
  94. }
  95. else if (nResponse == IDCANCEL)
  96. {
  97. // TODO: 在此放置处理何时用
  98. // “取消”来关闭对话框的代码
  99. }
  100. // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
  101. // 而不是启动应用程序的消息泵。
  102. return FALSE;
  103. }
  104. int lyfzAttendance::ExitInstance()
  105. {
  106. // TODO: 在此添加专用代码和/或调用基类
  107. //FreeLibrary(hriched);
  108. LOG4C((LOG_NOTICE,"退出log日志"));
  109. LOG4C_FINI();
  110. return CWinAppEx::ExitInstance();
  111. }