VMSCommServer.cpp 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. //---------------------------------------------------------------------------
  2. //---------------------------------------------------------------------------
  3. #include "AppGlobalF.h"
  4. #include <tchar.h>
  5. //---------------------------------------------------------------------------
  6. USEFORM("FRM\FrmControllerInfoF.cpp", FrmControllerInfo);
  7. USEFORM("FrmMainF.cpp", FrmMain);
  8. USEFORM("FRM\FrmOptionF.cpp", FrmOption);
  9. USEFORM("FRM\FrmSetBrghF.cpp", FrmSetBrgh);
  10. USEFORM("FRM\FrmSetConfigF.cpp", FrmSetConfig);
  11. USEFORM("FRM\FrmSetTimeF.cpp", FrmSetTime);
  12. //---------------------------------------------------------------------------
  13. WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
  14. {
  15. DateSeparator = '-';
  16. TimeSeparator = ':';
  17. ShortDateFormat ="yyyy-MM-dd";
  18. ShortTimeFormat = "hh:nn:ss";
  19. LongTimeFormat = "hh:nn:ss";
  20. int nPid = (int)GetCurrentProcessId();
  21. g_sAppDir = ExtractFilePath(Application->ExeName);
  22. g_sAppName = ChangeFileExt(ExtractFileName(Application->ExeName), "");
  23. g_sCfgDir = g_sAppDir + "Cfg\\";
  24. g_sLogDir = g_sAppDir + "Log\\";
  25. g_sTempDir = g_sAppDir + "Temp\\";
  26. g_sImgDir = g_sAppDir + "Image\\";
  27. ForceDirectories(g_sCfgDir.c_str());
  28. ForceDirectories(g_sLogDir.c_str());
  29. //ForceDirectories(g_sTempDir.c_str());
  30. //ForceDirectories(g_sImgDir.c_str());
  31. String sTmpDir = g_sLogDir + "Comm\\";
  32. ForceDirectories(sTmpDir.c_str());
  33. ChDir(g_sAppDir);
  34. g_AppCfg.Clear();
  35. APP_LoadConfigInfo();
  36. /*
  37. * 환경설정정로를 읽고 난 후에 FTP 관련 경로를 생성한다.
  38. */
  39. g_sFtpFormDir = g_sFtpHomeDir + FTP_FORM + "\\"; // FTP Form Directory(VMS 폼정보를 저장할 디렉리를 FTP 경로 아래로 설정한다. 디렉토리 아래에 VMS별로 저장한다.)
  40. g_sFtpVideoDir = g_sFtpHomeDir + FTP_VIDEO + "\\"; // FTP Video Directory
  41. g_sFtpStaticDir = g_sFtpHomeDir + FTP_STATIC + "\\"; // FTP 정적폼 Directory
  42. g_sFtpImageDir = g_sFtpHomeDir + FTP_IMAGE + "\\"; // FTP Image Directory
  43. ForceDirectories(g_sFtpHomeDir.c_str());
  44. ForceDirectories(g_sFtpFormDir.c_str());
  45. ForceDirectories(g_sFtpVideoDir.c_str());
  46. ForceDirectories(g_sFtpStaticDir.c_str());
  47. ForceDirectories(g_sFtpImageDir.c_str());
  48. ITSLog = new TITSLog(g_sLogDir, g_sAppName, g_AppCfg.sLogDay, true);
  49. ITSLog->FLogCfg = g_LogCfg;
  50. LOGINFO("VMSCommServer Start....");
  51. #if 1
  52. try
  53. {
  54. AnsiString sPidFile = ChangeFileExt(ExtractFileName(Application->ExeName), ".pid");
  55. AnsiString sMutexName = "PTATMS_VMSCommServer.lock";
  56. if (APP_ApplicationSingleInstance(sMutexName, g_sCfgDir+sPidFile))
  57. {
  58. LOGWARN("Program already running. program exit...");
  59. #if 0
  60. int nMsgType = MB_OK|MB_ICONERROR|MB_APPLMODAL;
  61. String sMsgTitle = g_AppCfg.sTitle;
  62. String sMsgError = ExtractFileName(Application->ExeName) + "\r\nProgram is already running.\r\nPlease check the program in the task manager.";
  63. Application->MessageBox(sMsgError.c_str(), sMsgTitle.c_str(), nMsgType);
  64. #endif
  65. return 0;
  66. }
  67. }
  68. catch (Exception &exception)
  69. {
  70. //Application->ShowException(&exception);
  71. return 0;
  72. }
  73. #endif
  74. /* allocate memory for system */
  75. if ((g_SysInfo = (SYSTEM_INFORMATION *) malloc(sizeof(SYSTEM_INFORMATION))) == NULL)
  76. {
  77. return 0;
  78. }
  79. memset(g_SysInfo, 0x00, sizeof(SYSTEM_INFORMATION));
  80. try
  81. {
  82. ReportMemoryLeaksOnShutdown = true;
  83. Application->Initialize();
  84. Application->MainFormOnTaskBar = true;
  85. Application->Title = "VMS Communication Server";
  86. Application->CreateForm(__classid(TFrmMain), &FrmMain);
  87. Application->Run();
  88. }
  89. catch (Exception &exception)
  90. {
  91. #if 1
  92. Application->ShowException(&exception);
  93. #endif
  94. }
  95. catch (...)
  96. {
  97. #if 1
  98. try
  99. {
  100. throw Exception("");
  101. }
  102. catch (Exception &exception)
  103. {
  104. Application->ShowException(&exception);
  105. }
  106. #endif
  107. }
  108. LOGINFO("VMSCommServer End....");
  109. free(g_SysInfo);
  110. return 0;
  111. }
  112. //---------------------------------------------------------------------------