stdafx.cpp 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. // stdafx.cpp : 只包括标准包含文件的源文件
  2. // Test.pch 将作为预编译头
  3. // stdafx.obj 将包含预编译类型信息
  4. #include "stdafx.h"
  5. //////////////////////////////////////////////////////////////////////////
  6. // 云选片模块;
  7. HMODULE g_hCloudSelectionLib = NULL;
  8. CImgSelection* g_pSelectionPtr = NULL;
  9. BOOL LoadCloudSelectionLib()
  10. {
  11. if ( g_hCloudSelectionLib == NULL )
  12. g_hCloudSelectionLib = LoadLibrary(_T("lyfzCloudSelection.dll"));
  13. if ( !g_hCloudSelectionLib )
  14. {
  15. AfxMessageBox(_T("打开云链接库失败"));
  16. return FALSE;
  17. }
  18. CreateCloudSelectionLib Ptr = (CreateCloudSelectionLib)GetProcAddress(g_hCloudSelectionLib, "CreateCloudSelectionPtr");
  19. if ( Ptr == NULL )
  20. {
  21. AfxMessageBox(_T("获取生成云接口失败"));
  22. return FALSE;
  23. }
  24. g_pSelectionPtr = Ptr();
  25. return TRUE;
  26. }
  27. void FreeCloudSelectionLib()
  28. {
  29. if ( g_hCloudSelectionLib )
  30. FreeLibrary(g_hCloudSelectionLib);
  31. //while ( g_pSelectionPtr )
  32. // g_pSelectionPtr->Release();
  33. }
  34. //////////////////////////////////////////////////////////////////////////
  35. // 其他全局变量;
  36. TCHAR g_ModulePath[MAX_PATH] = _T(""); // 软件目录;
  37. TCHAR g_ModuleFileName[MAX_PATH] = _T(""); // 软件名称;
  38. TCHAR g_szConnectString[MAX_PATH] = _T(""); // DB连接串;
  39. TCHAR g_szIniFile[MAX_PATH] = _T("");
  40. // 服务器信息;
  41. TCHAR g_szDBSource[MAX_PATH] = _T(""); // 数据库源(服务所在IP或计算机名);
  42. TCHAR g_szDBSourcePort[MAX_PATH] = _T(""); // 数据库源端口;
  43. DWORD g_dwDBServerPort = 0; // 数据库源端口;
  44. TCHAR g_szDBAccount[MAX_PATH] = _T(""); // 数据库登录用户;
  45. TCHAR g_szDBPassWord[MAX_PATH] = _T(""); // 数据库登录密码;
  46. TCHAR g_szDBName[MAX_PATH] = _T(""); // 数据库名称;
  47. TCHAR g_szLogDBName[MAX_PATH] = _T(""); // 日志数据库名
  48. int GetIniInfo(const char *szPath, const char *szIniName)
  49. {
  50. TCHAR szDrive[_MAX_DRIVE] = { 0 };
  51. TCHAR szDir[_MAX_DIR] = { 0 };
  52. TCHAR szFna[_MAX_DIR] = { 0 };
  53. TCHAR szExt[_MAX_DIR] = { 0 };
  54. ::GetModuleFileName(NULL, g_ModulePath, sizeof(g_ModulePath) / sizeof(TCHAR));
  55. _stprintf_s(g_ModuleFileName, _T("%s"), g_ModulePath);
  56. _tsplitpath_s(g_ModulePath, szDrive, szDir, szFna, szExt);
  57. _tcscpy_s(g_ModulePath, szDrive);
  58. _tcscat_s(g_ModulePath, szDir);
  59. if (szPath != NULL && szIniName != NULL)
  60. _stprintf_s(g_szIniFile, _T("%s%s"), szPath, szIniName);
  61. else
  62. _stprintf_s(g_szIniFile, _T("%sServiceInfo.ini"), g_ModulePath);
  63. HANDLE hFile = CreateFile(g_szIniFile, 0/*GENERIC_READ*/, 0, NULL, OPEN_EXISTING, 0, NULL);
  64. if (ERROR_FILE_NOT_FOUND == GetLastError())
  65. {
  66. if ( hFile )
  67. CloseHandle(hFile);
  68. return -1;
  69. }
  70. CloseHandle(hFile);
  71. hFile = NULL;
  72. // 获取服务器端信息;
  73. GetPrivateProfileString(_T("DatabaseInfo"), _T("dbSource"), _T(""), g_szDBSource, MAX_PATH, g_szIniFile);
  74. g_dwDBServerPort = GetPrivateProfileInt(_T("DatabaseInfo"), _T("dbServerPort"), 0, g_szIniFile);
  75. GetPrivateProfileString(_T("DatabaseInfo"), _T("dbAccount"), _T(""), g_szDBAccount, MAX_PATH, g_szIniFile);
  76. GetPrivateProfileString(_T("DatabaseInfo"), _T("dbPassWord"), _T(""), g_szDBPassWord, MAX_PATH, g_szIniFile);
  77. GetPrivateProfileString(_T("DatabaseInfo"), _T("dbName"), _T(""), g_szDBName, MAX_PATH, g_szIniFile);
  78. GetPrivateProfileString(_T("DatabaseInfo"), _T("LogdbName"), _T(""), g_szLogDBName, MAX_PATH, g_szIniFile);
  79. if (g_dwDBServerPort != 0)
  80. _stprintf_s(g_szConnectString, _T("driver={SQL Server};Server=%s,%d;database=%s;uid=%s;pwd=%s"),
  81. g_szDBSource, g_dwDBServerPort, g_szDBName, g_szDBAccount, g_szDBPassWord);
  82. else
  83. _stprintf_s(g_szConnectString, _T("driver={SQL Server};Server=%s;database=%s;uid=%s;pwd=%s"),
  84. g_szDBSource, g_szDBName, g_szDBAccount, g_szDBPassWord);
  85. return 0;
  86. }
  87. typedef IODBCPoolInterface* (WINAPI *CREATEINSTANCE)( );
  88. IODBCPoolInterface *g_pInstance = NULL;
  89. IODBCPoolInterface* lyfzCreatePoolInstance( )
  90. { //加载动态库
  91. HMODULE hDll = ( HMODULE )LoadLibrary(_T("lyfzodbc.dll"));
  92. if ( hDll == NULL )
  93. {
  94. CString strError = _T("");
  95. strError.Format(_T("error = %d"), GetLastError());
  96. AfxMessageBox(strError);
  97. return NULL;
  98. }
  99. CREATEINSTANCE CreaetInstance = (CREATEINSTANCE)GetProcAddress(hDll, "lyfzCreatePoolInstance");
  100. IODBCPoolInterface *pIDBPool = CreaetInstance();
  101. return pIDBPool;
  102. }
  103. void showmsg()
  104. {
  105. AllocConsole(); // 开辟控制台;
  106. SetConsoleTitle(_T("lyfz调试输出")); // 设置控制台窗口标题;
  107. freopen("CONOUT$", "w+t", stdout); // 重定向输出;
  108. freopen("CONIN$", "r+t", stdin); // 重定向输入;
  109. HWND hWnd = NULL;
  110. again:
  111. hWnd = ::FindWindow(NULL, _T("lyfz调试输出"));
  112. if( hWnd )
  113. {
  114. if (!::SetWindowPos(hWnd, HWND_TOPMOST, 0,0,0,0, SWP_NOMOVE | SWP_NOSIZE))
  115. {
  116. printf(_T("前置设置失败\n"));
  117. }
  118. else
  119. {
  120. printf(_T("前置设置成功\n"));
  121. }
  122. }
  123. else
  124. {
  125. goto again;
  126. }
  127. }