ITS_OP.cpp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include <tchar.h>
  5. #include <cxFormats.hpp>
  6. //---------------------------------------------------------------------------
  7. #include "AppGlobalF.h"
  8. #include "ITSDbF.h"
  9. #include "ITSLangTransF.h"
  10. //---------------------------------------------------------------------------
  11. USEFORM("PLUGIN\05.DATABASE\IDB0080M\IDB0080MF.cpp", IDB0080M);
  12. USEFORM("PLUGIN\02.FACILITY\IFM0050M\FRAME_FailHndlF.cpp", FRAMEFailHndl); /* TFrame: File Type */
  13. USEFORM("PLUGIN\00.FRAME\FRAME_ChartF.cpp", FRAMEChart); /* TFrame: File Type */
  14. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IAN0050M\IAN00501F.cpp", IAN00501);
  15. USEFORM("PLUGIN\08.VDS\VDSH040M\VDSH040MF.cpp", VDSH040M);
  16. USEFORM("PLUGIN\08.VDS\VDSH060M\VDSH060MF.cpp", VDSH060M);
  17. USEFORM("PLUGIN\08.VDS\VDSH020M\VDSH020MF.cpp", VDSH020M);
  18. USEFORM("PLUGIN\01.TRAFFIC\ITS0010M\ITS0010MF.cpp", ITS0010M);
  19. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0070M\IST00701F.cpp", IST00701);
  20. USEFORM("PLUGIN\01.TRAFFIC\ITS0000M\FrmStreamPlayerF.cpp", FrmStreamPlayer);
  21. USEFORM("PLUGIN\00.FRAME\FRAME_FacilityStatusListF.cpp", FRAMEFacilityStatusList); /* TFrame: File Type */
  22. USEFORM("PLUGIN\02.FACILITY\IFM0050M\IFM0050MF.cpp", IFM0050M);
  23. USEFORM("PLUGIN\Common\ITSSEL1MF.cpp", ITSSEL1M);
  24. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0060M\IST00601F.cpp", IST00601);
  25. USEFORM("PLUGIN\00.FRAME\FRAME_TrafficServiceLinkListF.cpp", FRAMETrafficServiceLinkList); /* TFrame: File Type */
  26. USEFORM("PLUGIN\00.FRAME\FRAME_RoadListF.cpp", FRAMERoadList); /* TFrame: File Type */
  27. USEFORM("PLUGIN\03.HISTORY\IHS0020M\IHS0020MF.cpp", IHS0020M);
  28. USEFORM("PLUGIN\08.VDS\VDSH020M\VDSH0201F.cpp", VDSH0201);
  29. USEFORM("PLUGIN\Common\ITSSEL3MF.cpp", ITSSEL3M);
  30. USEFORM("PLUGIN\00.FRAME\FRAME_IncidentListF.cpp", FRAMEIncidentList); /* TFrame: File Type */
  31. USEFORM("PLUGIN\03.HISTORY\IHS0040M\IHS00401F.cpp", IHS00401);
  32. USEFORM("PLUGIN\08.VDS\VDSH060M\VDSH0601F.cpp", VDSH0601);
  33. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IAN0030M\IAN0030MF.cpp", IAN0030M);
  34. USEFORM("PLUGIN\02.FACILITY\IFM0020M\IFM0020MF.cpp", IFM0020M);
  35. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0040M\IST00401F.cpp", IST00401);
  36. USEFORM("PLUGIN\02.FACILITY\IFM0040M\IFM00401F.cpp", IFM00401);
  37. USEFORM("PLUGIN\13.TRAFFIC-ANALYSIS-SUPPORT\TAS0010M\GoogleMap\TAS0010MF.cpp", TAS0010M);
  38. USEFORM("PLUGIN\13.TRAFFIC-ANALYSIS-SUPPORT\TAS0050M\TAS0050MF.cpp", TAS0050M);
  39. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0070M\IST00702F.cpp", IST00702);
  40. USEFORM("PLUGIN\05.DATABASE\IDB0110M\IDB0110MF.cpp", IDB0110M);
  41. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0050M\IST0050MF.cpp", IST0050M);
  42. USEFORM("PLUGIN\13.TRAFFIC-ANALYSIS-SUPPORT\TAS0020M\TAS00201F.cpp", TAS00201);
  43. USEFORM("PLUGIN\05.DATABASE\IDB0010M\IDB0010MF.cpp", IDB0010M);
  44. USEFORM("PLUGIN\13.TRAFFIC-ANALYSIS-SUPPORT\TAS0050M\TAS00501F.cpp", TAS00501);
  45. USEFORM("PLUGIN\00.FRAME\FRAME_RepeatCongestListF.cpp", FRAMERepeatCongestList); /* TFrame: File Type */
  46. USEFORM("PLUGIN\00.FRAME\FRAME_DatabaseStatusF.cpp", FRAMEDatabaseStatus); /* TFrame: File Type */
  47. USEFORM("MAIN\FrmResourceF.cpp", FrmLang);
  48. USEFORM("PLUGIN\Common\GoogleMap\ITSSELAMF.cpp", ITSSELAM);
  49. USEFORM("PLUGIN\00.FRAME\FRAME_AtrdListF.cpp", FRAMEAtrdList); /* TFrame: File Type */
  50. USEFORM("PLUGIN\01.TRAFFIC\ITS0030M\FRAME_IncidentEndF.cpp", FRAMEIncidentEnd); /* TFrame: File Type */
  51. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0070M\IST0070MF.cpp", IST0070M);
  52. USEFORM("MAIN\FrmMainF.cpp", FrmMain);
  53. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0060M\IST0060MF.cpp", IST0060M);
  54. USEFORM("PLUGIN\00.FRAME\FRAME_UnRegFacilityListF.cpp", FRAMEUnRegFacilityList); /* TFrame: File Type */
  55. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0070M\IST00703F.cpp", IST00703);
  56. USEFORM("PLUGIN\03.HISTORY\IHS0030M\IHS0030MF.cpp", IHS0030M);
  57. USEFORM("MAIN\FrmFacilityAlarmF.cpp", FrmFacilityAlarm);
  58. USEFORM("PLUGIN\08.VDS\VDSS020M\VDSS020MF.cpp", VDSS020M);
  59. USEFORM("PLUGIN\01.TRAFFIC\ITS0000M\FrmLinkGradeSetF.cpp", FrmLinkGradeSet);
  60. USEFORM("PLUGIN\01.TRAFFIC\ITS0040M\ITS0040MF.cpp", ITS0040M);
  61. USEFORM("PLUGIN\03.HISTORY\IHS0020M\IHS00201F.cpp", IHS00201);
  62. USEFORM("PLUGIN\13.TRAFFIC-ANALYSIS-SUPPORT\TAS0030M\TAS00301F.cpp", TAS00301);
  63. USEFORM("PLUGIN\13.TRAFFIC-ANALYSIS-SUPPORT\TAS0020M\TAS0020MF.cpp", TAS0020M);
  64. USEFORM("PLUGIN\13.TRAFFIC-ANALYSIS-SUPPORT\TAS0030M\TAS0030MF.cpp", TAS0030M);
  65. USEFORM("PLUGIN\00.FRAME\FRAME_TrafficLinkListF.cpp", FRAMETrafficLinkList); /* TFrame: File Type */
  66. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0030M\IST00303F.cpp", IST00303);
  67. USEFORM("PLUGIN\01.TRAFFIC\ITS0000M\GoogleMap\ITS0000MF.cpp", ITS0000M);
  68. USEFORM("PLUGIN\03.HISTORY\IHS0050M\IHS0050MF.cpp", IHS0050M);
  69. USEFORM("PLUGIN\02.FACILITY\IFM0040M\IFM0040MF.cpp", IFM0040M);
  70. USEFORM("PLUGIN\01.TRAFFIC\ITS0030M\FRAME_IncidentProcessF.cpp", FRAMEIncidentProcess); /* TFrame: File Type */
  71. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IAN0060M\IAN00601F.cpp", IAN00601);
  72. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IAN0050M\IAN0050MF.cpp", IAN0050M);
  73. USEFORM("PLUGIN\08.VDS\VDSM010M\GoogleMap\VDSM010MF.cpp", VDSM010M);
  74. USEFORM("PLUGIN\99.LOGIN\FRMPswdChngeF.cpp", FRMPswdChnge);
  75. USEFORM("PLUGIN\01.TRAFFIC\ITS0000M\FrmCctvImgF.cpp", FrmCctvImg);
  76. USEFORM("PLUGIN\08.VDS\VDSH010M\VDSH0101F.cpp", VDSH0101);
  77. USEFORM("PLUGIN\08.VDS\VDSS010M\VDSS010MF.cpp", VDSS010M);
  78. USEFORM("PLUGIN\08.VDS\01.FRAME\FRAME_VdsDtctListF.cpp", FRAMEVdsDtctList); /* TFrame: File Type */
  79. USEFORM("PLUGIN\06.CONFIG\CFG0000M\CFG0000MF.cpp", CFG0000M);
  80. USEFORM("PLUGIN\05.DATABASE\IDB0100M\IDB0100MF.cpp", IDB0100M);
  81. USEFORM("PLUGIN\08.VDS\VDSH030M\VDSH0301F.cpp", VDSH0301);
  82. USEFORM("PLUGIN\01.TRAFFIC\ITS0030M\FrmIncidVmsInfoF.cpp", FrmIncidVmsInfo);
  83. USEFORM("PLUGIN\05.DATABASE\IDB0120M\GoogleMap\IDB0120MF.cpp", IDB0120M);
  84. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IAN0010M\IAN00101F.cpp", IAN00101);
  85. USEFORM("MAIN\FrmInitializeF.cpp", FrmInitialize);
  86. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IRP0010M\IRP00101F.cpp", IRP00101);
  87. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IAN0060M\IAN0060MF.cpp", IAN0060M);
  88. USEFORM("PLUGIN\03.HISTORY\IHS0050M\IHS00501F.cpp", IHS00501);
  89. USEFORM("PLUGIN\08.VDS\VDSH010M\VDSH010MF.cpp", VDSH010M);
  90. USEFORM("PLUGIN\08.VDS\VDSS010M\VDSS0101F.cpp", VDSS0101);
  91. USEFORM("MAIN\FrmIncidentAlarmF.cpp", FrmIncidentAlarm);
  92. USEFORM("PLUGIN\00.FRAME\FRAME_ServiceLinkListF.cpp", FRAMEServiceLinkList); /* TFrame: File Type */
  93. USEFORM("PLUGIN\00.FRAME\FRAME_TrafficMissLinkListF.cpp", FRAMETrafficMissLinkList); /* TFrame: File Type */
  94. USEFORM("PLUGIN\03.HISTORY\IHS0030M\IHS00301F.cpp", IHS00301);
  95. USEFORM("PLUGIN\00.FRAME\FRAME_NodeListF.cpp", FRAMENodeList); /* TFrame: File Type */
  96. USEFORM("PLUGIN\08.VDS\VDSH040M\VDSH0401F.cpp", VDSH0401);
  97. USEFORM("PLUGIN\02.FACILITY\IFM0030M\FRAME_FacilityFailF.cpp", FRAMEFacilityFail); /* TFrame: File Type */
  98. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0030M\IST0030MF.cpp", IST0030M);
  99. USEFORM("PLUGIN\05.DATABASE\IDB0020M\IDB00201F.cpp", IDB00201);
  100. USEFORM("PLUGIN\00.FRAME\FRAME_ProcessStatusListF.cpp", FRAMEProcessStatusList); /* TFrame: File Type */
  101. USEFORM("PLUGIN\00.FRAME\FRAME_IncidentAutoListF.cpp", FRAMEIncidentAutoList); /* TFrame: File Type */
  102. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IAN0020M\IAN00201F.cpp", IAN00201);
  103. USEFORM("PLUGIN\08.VDS\VDSH050M\VDSH050MF.cpp", VDSH050M);
  104. USEFORM("PLUGIN\05.DATABASE\IDB0030M\IDB0030MF.cpp", IDB0030M);
  105. USEFORM("PLUGIN\00.FRAME\FRAME_AtrdNameListF.cpp", FRAMEAtrdNameList); /* TFrame: File Type */
  106. USEFORM("PLUGIN\01.TRAFFIC\ITS0030M\ITS0030MF.cpp", ITS0030M);
  107. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0020M\IST0020MF.cpp", IST0020M);
  108. USEFORM("PLUGIN\08.VDS\01.FRAME\FRAME_VdsListF.cpp", FRAMEVdsList); /* TFrame: File Type */
  109. USEFORM("PLUGIN\Common\ITSSELDAYF.cpp", ITSSELDAY);
  110. USEFORM("PLUGIN\03.HISTORY\IHS0060M\IHS00601F.cpp", IHS00601);
  111. USEFORM("PLUGIN\00.FRAME\FRAME_LinkListF.cpp", FRAMELinkList); /* TFrame: File Type */
  112. USEFORM("PLUGIN\01.TRAFFIC\ITS0000M\FrmVmsMsgF.cpp", FrmVmsMsg);
  113. USEFORM("PLUGIN\03.HISTORY\IHS0060M\IHS0060MF.cpp", IHS0060M);
  114. USEFORM("PLUGIN\08.VDS\VDSH050M\VDSH0501F.cpp", VDSH0501);
  115. USEFORM("PLUGIN\02.FACILITY\IFM0030M\IFM0030MF.cpp", IFM0030M);
  116. USEFORM("PLUGIN\08.VDS\VDSM020M\GoogleMap\VDSM020MF.cpp", VDSM020M);
  117. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IRP0010M\IRP0010MF.cpp", IRP0010M);
  118. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0040M\IST0040MF.cpp", IST0040M);
  119. USEFORM("PLUGIN\05.DATABASE\IDB0060M\IDB0060MF.cpp", IDB0060M);
  120. USEFORM("PLUGIN\02.FACILITY\IFM0030M\FRAME_FacilityFailActionF.cpp", FRAMEFacilityFailAction); /* TFrame: File Type */
  121. USEFORM("PLUGIN\08.VDS\VDSH030M\VDSH030MF.cpp", VDSH030M);
  122. USEFORM("PLUGIN\03.HISTORY\IHS0040M\IHS0040MF.cpp", IHS0040M);
  123. USEFORM("PLUGIN\05.DATABASE\IDB0020M\IDB0020MF.cpp", IDB0020M);
  124. USEFORM("PLUGIN\01.TRAFFIC\ITS0000M\FrmLinkInfoF.cpp", FrmLinkInfo);
  125. USEFORM("PLUGIN\01.TRAFFIC\ITS0020M\ITS0020MF.cpp", ITS0020M);
  126. USEFORM("PLUGIN\05.DATABASE\IDB0030M\IDB00301F.cpp", IDB00301);
  127. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0050M\IST00501F.cpp", IST00501);
  128. USEFORM("PLUGIN\05.DATABASE\IDB0040M\IDB00401F.cpp", IDB00401);
  129. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IAN0020M\IAN0020MF.cpp", IAN0020M);
  130. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IAN0030M\IAN00301F.cpp", IAN00301);
  131. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0030M\IST00302F.cpp", IST00302);
  132. USEFORM("PLUGIN\01.TRAFFIC\ITS0030M\FRAME_IncidentRegistF.cpp", FRAMEIncidentRegist); /* TFrame: File Type */
  133. USEFORM("PLUGIN\05.DATABASE\IDB0070M\IDB0070MF.cpp", IDB0070M);
  134. USEFORM("PLUGIN\00.FRAME\FRAME_TrafficRoadListF.cpp", FRAMETrafficRoadList); /* TFrame: File Type */
  135. USEFORM("PLUGIN\05.DATABASE\IDB0040M\IDB0040MF.cpp", IDB0040M);
  136. USEFORM("PLUGIN\01.TRAFFIC\ITS0000M\GoogleMap\ITS00MAPF.cpp", ITS00MAP);
  137. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IAN0010M\IAN0010MF.cpp", IAN0010M);
  138. USEFORM("PLUGIN\05.DATABASE\IDB0050M\IDB0050MF.cpp", IDB0050M);
  139. USEFORM("PLUGIN\02.FACILITY\IFM0010M\IFM0010MF.cpp", IFM0010M);
  140. USEFORM("PLUGIN\05.DATABASE\IDB0130M\IDB0130MF.cpp", IDB0130M);
  141. USEFORM("PLUGIN\01.TRAFFIC\ITS0000M\FrmFullScreenF.cpp", FrmFullScreen);
  142. USEFORM("PLUGIN\Common\ITSSEL2MF.cpp", ITSSEL2M);
  143. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0030M\IST00301F.cpp", IST00301);
  144. USEFORM("PLUGIN\13.TRAFFIC-ANALYSIS-SUPPORT\TAS0040M\TAS0040MF.cpp", TAS0040M);
  145. USEFORM("PLUGIN\00.FRAME\PlugInChart\PlugInSetChartF.cpp", PlugInSetChart);
  146. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IAN0040M\GoogleMap\IAN0040MF.cpp", IAN0040M);
  147. USEFORM("PLUGIN\01.TRAFFIC\ITS0000M\GoogleMap\FrmGisSearchF.cpp", FrmGisSearch);
  148. USEFORM("PLUGIN\05.DATABASE\IDB0010M\IDB00101F.cpp", IDB00101);
  149. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0080M\IST0080MF.cpp", IST0080M);
  150. USEFORM("PLUGIN\03.HISTORY\IHS0010M\IHS0010MF.cpp", IHS0010M);
  151. USEFORM("PLUGIN\99.LOGIN\FRMLoginF.cpp", FRMLogin);
  152. USEFORM("PLUGIN\13.TRAFFIC-ANALYSIS-SUPPORT\TAS0040M\TAS00401F.cpp", TAS00401);
  153. USEFORM("PLUGIN\00.FRAME\FRAME_FacilityListF.cpp", FRAMEFacilityList); /* TFrame: File Type */
  154. USEFORM("PLUGIN\00.FRAME\PlugInChart\PlugInChartF.cpp", PlugInChart);
  155. USEFORM("PLUGIN\05.DATABASE\IDB0090M\IDB0090MF.cpp", IDB0090M);
  156. USEFORM("PLUGIN\Common\ITSSEL0MF.cpp", ITSSEL0M);
  157. USEFORM("PLUGIN\04.STATISTICAL-ANALYSIS\IST0010M\IST0010MF.cpp", IST0010M);
  158. USEFORM("PLUGIN\00.ITS\FRAME\FRAME_ItsRoadF.cpp", FRAMEItsRoad); /* TFrame: File Type */
  159. USEFORM("PLUGIN\00.FRAME\GoogleMap\FRAME_GoogleMapF.cpp", FRAMEGoogleMap); /* TFrame: File Type */
  160. USEFORM("PLUGIN\05.DATABASE\IDB0051M\IDB0051MF.cpp", IDB0051M);
  161. //---------------------------------------------------------------------------
  162. WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
  163. {
  164. int nLoginRes;
  165. DateSeparator = '-';
  166. TimeSeparator = ':';
  167. ShortDateFormat ="yyyy-MM-dd";
  168. ShortTimeFormat = "HH:NN:SS";
  169. LongTimeFormat = "HH:NN:SS";
  170. cxFormatController()->BeginUpdate();
  171. cxFormatController()->UseDelphiDateTimeFormats = true;
  172. cxFormatController()->EndUpdate();
  173. cxFormatController()->GetFormats();
  174. cxFormatController()->NotifyListeners();
  175. int nRes;
  176. g_nPid = (int)GetCurrentProcessId();
  177. g_sAppDir = ExtractFilePath(Application->ExeName);
  178. g_sAppName = ChangeFileExt(ExtractFileName(Application->ExeName), "");
  179. g_sCfgDir = g_sAppDir + "Cfg\\";
  180. g_sLogDir = g_sAppDir + "Log\\";
  181. g_sTempDir = g_sAppDir + "Temp\\";
  182. g_sFormsDir = g_sCfgDir + "Forms\\";
  183. g_sImageDir = g_sAppDir + "Image\\";
  184. g_sBlackBox = g_sAppDir + "BlackBox\\";
  185. ForceDirectories(g_sCfgDir.c_str());
  186. ForceDirectories(g_sLogDir.c_str());
  187. ForceDirectories(g_sTempDir.c_str());
  188. ForceDirectories(g_sFormsDir.c_str());
  189. ForceDirectories(g_sImageDir.c_str());
  190. String sTempDir = g_sLogDir + "Db\\";
  191. ForceDirectories(sTempDir.c_str());
  192. //ForceDirectories(g_sBlackBox.c_str());
  193. String sAppDir = ExtractFilePath(Application->ExeName);
  194. ChDir(sAppDir);
  195. /*
  196. * 시스템 운영환경을 ini 파일에서 읽어 온다.
  197. */
  198. LoadDefaultConfigInfo("");
  199. HANDLE hMutex;
  200. try
  201. {
  202. String sLockFile = ChangeFileExt(ExtractFileName(Application->ExeName), ".lock");
  203. String sProgMutexNm = "HANTE_PASIG_" + sLockFile;
  204. if ((hMutex=OpenMutex(MUTEX_ALL_ACCESS, false, sProgMutexNm.c_str()))==NULL)
  205. hMutex = CreateMutex(NULL, true, sProgMutexNm.c_str());
  206. else
  207. {
  208. //"가나다"
  209. //ShowMessage("운영단말 프로그램이 실행중입니다. \n 작업관리자의 프로세스 목록에서 \n프로그램을 종료후 실행해 주십시오");
  210. if (g_AppCfg.sLang == "kr")
  211. {
  212. Application->MessageBox(L"운영단말 프로그램이 이미 실행중입니다.\r\n작업관리자의 프로세스 목록에서 프로그램을 종료후 실행해 주십시오.",
  213. L"프로그램 시작 오류!!!",
  214. MB_OK|MB_ICONERROR);
  215. }
  216. else
  217. {
  218. Application->MessageBox(L"The operating terminal program is already running.\r\nPlease exit the program from the process list of Task Manager and execute it.",
  219. L"Program Start Error!!!",
  220. MB_OK|MB_ICONERROR);
  221. }
  222. return 0;
  223. }
  224. }
  225. catch (Exception &exception)
  226. {
  227. Application->ShowException(&exception);
  228. return 0;
  229. }
  230. g_sLangDir = g_sAppDir + "Lang\\";
  231. g_sLangDir = g_sLangDir + g_AppCfg.sLang + "\\";
  232. ForceDirectories(g_sLangDir.c_str());
  233. LangTrans = new TLangTrans("ITS_OP", g_AppCfg.sLang, g_sLangDir, true);
  234. ITSLog = new TITSLog(g_sLogDir, g_sAppName, g_AppCfg.sLogDay);
  235. FDbLog = new TITSLog(g_sLogDir + "Db\\", "Database", g_AppCfg.sLogDay);
  236. ITSLog->FLogCfg = g_LogCfg;
  237. FDbLog->FLogCfg = g_LogCfg;
  238. LOGINFO("Program start....");
  239. if (!ITSDb_Initialize())
  240. {
  241. if (g_AppCfg.sLang == "kr")
  242. {
  243. Application->MessageBox(L"Database 자원을 시스템으로부터 얻지 못했습니다.\r\n\r\n프로그램을 종료합니다.",
  244. L"프로그램 시작 오류!!!",
  245. MB_OK|MB_ICONERROR);
  246. }
  247. else
  248. {
  249. Application->MessageBox(L"Database resource could not be obtained from the system.\r\n\r\nExit the program.",
  250. L"Program Start Error!!!",
  251. MB_OK|MB_ICONERROR);
  252. }
  253. goto prog_exit;
  254. }
  255. ITSDb_SetInfo(g_AppCfg.itsdb.sProvider, g_AppCfg.itsdb.sServerName, g_AppCfg.itsdb.sUserName, g_AppCfg.itsdb.sPassword);
  256. if (g_AppCfg.bLoginPrompt)
  257. {
  258. /*
  259. * 로그인 처리(라이브러리 로딩 실패시에만 프로그램을 종료하자-일단...)
  260. */
  261. nLoginRes = UserLogin();
  262. if (nLoginRes <= 0)
  263. {
  264. goto prog_exit;
  265. }
  266. }
  267. else
  268. {
  269. if (!ITSDb_Open())
  270. {
  271. if (g_AppCfg.sLang == "kr")
  272. {
  273. Application->MessageBox(L"데이터베이스 접속에 실패하였습니다.\r\n\r\n프로그램을 종료합니다.",
  274. L"프로그램 시작 오류!!!",
  275. MB_OK|MB_ICONERROR);
  276. }
  277. else
  278. {
  279. Application->MessageBox(L"Database connection failed.\r\n\r\nExit the program.",
  280. L"Program Start Error!!!",
  281. MB_OK|MB_ICONERROR);
  282. }
  283. goto prog_exit;
  284. }
  285. g_pLOGIN = ITSDb_GetLoginInfo();
  286. g_pLOGIN->bLogin = true;
  287. g_pLOGIN->sUserId = "ADMIN";
  288. g_pLOGIN->sUserName = "default";
  289. g_pLOGIN->sUserRightId = "1";
  290. g_pLOGIN->sUserRightName = "";
  291. g_pLOGIN->sConnSystem = "OPR";
  292. g_pLOGIN->sLoginSeq = "0";
  293. g_pLOGIN->sLoginIp = "127.0.0.1";
  294. g_pLOGIN->sLoginTime = Now().FormatString("yyyymmddhhnnss");
  295. }
  296. try
  297. {
  298. ReportMemoryLeaksOnShutdown = true;
  299. Application->Initialize();
  300. Application->MainFormOnTaskBar = true;
  301. Application->Title = g_AppCfg.sTitle;
  302. Application->Title = "Traffic Information System Integrated Operation Terminal";
  303. Application->CreateForm(__classid(TFrmMain), &FrmMain);
  304. Application->CreateForm(__classid(TFrmLang), &FrmLang);
  305. Application->Run();
  306. }
  307. catch (Exception &exception)
  308. {
  309. Application->ShowException(&exception);
  310. }
  311. catch (...)
  312. {
  313. try
  314. {
  315. throw Exception("");
  316. }
  317. catch (Exception &exception)
  318. {
  319. Application->ShowException(&exception);
  320. }
  321. }
  322. prog_exit:
  323. try
  324. {
  325. ITSDb_Finalize();
  326. ReleaseMutex(hMutex);
  327. CloseHandle(hMutex);
  328. hMutex = NULL;
  329. LOGINFO("Program end....");
  330. }
  331. catch(...)
  332. {
  333. }
  334. return 0;
  335. }
  336. //---------------------------------------------------------------------------