// stdafx.cpp : 只包括标准包含文件的源文件 // Test.pch 将作为预编译头 // stdafx.obj 将包含预编译类型信息 #include "stdafx.h" ////////////////////////////////////////////////////////////////////////// // 云选片模块; HMODULE g_hCloudSelectionLib = NULL; CImgSelection* g_pSelectionPtr = NULL; BOOL LoadCloudSelectionLib() { if ( g_hCloudSelectionLib == NULL ) g_hCloudSelectionLib = LoadLibrary(_T("lyfzCloudSelection.dll")); if ( !g_hCloudSelectionLib ) { AfxMessageBox(_T("打开云链接库失败")); return FALSE; } CreateCloudSelectionLib Ptr = (CreateCloudSelectionLib)GetProcAddress(g_hCloudSelectionLib, "CreateCloudSelectionPtr"); if ( Ptr == NULL ) { AfxMessageBox(_T("获取生成云接口失败")); return FALSE; } g_pSelectionPtr = Ptr(); return TRUE; } void FreeCloudSelectionLib() { if ( g_hCloudSelectionLib ) FreeLibrary(g_hCloudSelectionLib); //while ( g_pSelectionPtr ) // g_pSelectionPtr->Release(); } ////////////////////////////////////////////////////////////////////////// // 其他全局变量; TCHAR g_ModulePath[MAX_PATH] = _T(""); // 软件目录; TCHAR g_ModuleFileName[MAX_PATH] = _T(""); // 软件名称; TCHAR g_szConnectString[MAX_PATH] = _T(""); // DB连接串; TCHAR g_szIniFile[MAX_PATH] = _T(""); // 服务器信息; TCHAR g_szDBSource[MAX_PATH] = _T(""); // 数据库源(服务所在IP或计算机名); TCHAR g_szDBSourcePort[MAX_PATH] = _T(""); // 数据库源端口; DWORD g_dwDBServerPort = 0; // 数据库源端口; TCHAR g_szDBAccount[MAX_PATH] = _T(""); // 数据库登录用户; TCHAR g_szDBPassWord[MAX_PATH] = _T(""); // 数据库登录密码; TCHAR g_szDBName[MAX_PATH] = _T(""); // 数据库名称; TCHAR g_szLogDBName[MAX_PATH] = _T(""); // 日志数据库名 int GetIniInfo(const char *szPath, const char *szIniName) { TCHAR szDrive[_MAX_DRIVE] = { 0 }; TCHAR szDir[_MAX_DIR] = { 0 }; TCHAR szFna[_MAX_DIR] = { 0 }; TCHAR szExt[_MAX_DIR] = { 0 }; ::GetModuleFileName(NULL, g_ModulePath, sizeof(g_ModulePath) / sizeof(TCHAR)); _stprintf_s(g_ModuleFileName, _T("%s"), g_ModulePath); _tsplitpath_s(g_ModulePath, szDrive, szDir, szFna, szExt); _tcscpy_s(g_ModulePath, szDrive); _tcscat_s(g_ModulePath, szDir); if (szPath != NULL && szIniName != NULL) _stprintf_s(g_szIniFile, _T("%s%s"), szPath, szIniName); else _stprintf_s(g_szIniFile, _T("%sServiceInfo.ini"), g_ModulePath); HANDLE hFile = CreateFile(g_szIniFile, 0/*GENERIC_READ*/, 0, NULL, OPEN_EXISTING, 0, NULL); if (ERROR_FILE_NOT_FOUND == GetLastError()) { if ( hFile ) CloseHandle(hFile); return -1; } CloseHandle(hFile); hFile = NULL; // 获取服务器端信息; GetPrivateProfileString(_T("DatabaseInfo"), _T("dbSource"), _T(""), g_szDBSource, MAX_PATH, g_szIniFile); g_dwDBServerPort = GetPrivateProfileInt(_T("DatabaseInfo"), _T("dbServerPort"), 0, g_szIniFile); GetPrivateProfileString(_T("DatabaseInfo"), _T("dbAccount"), _T(""), g_szDBAccount, MAX_PATH, g_szIniFile); GetPrivateProfileString(_T("DatabaseInfo"), _T("dbPassWord"), _T(""), g_szDBPassWord, MAX_PATH, g_szIniFile); GetPrivateProfileString(_T("DatabaseInfo"), _T("dbName"), _T(""), g_szDBName, MAX_PATH, g_szIniFile); GetPrivateProfileString(_T("DatabaseInfo"), _T("LogdbName"), _T(""), g_szLogDBName, MAX_PATH, g_szIniFile); if (g_dwDBServerPort != 0) _stprintf_s(g_szConnectString, _T("driver={SQL Server};Server=%s,%d;database=%s;uid=%s;pwd=%s"), g_szDBSource, g_dwDBServerPort, g_szDBName, g_szDBAccount, g_szDBPassWord); else _stprintf_s(g_szConnectString, _T("driver={SQL Server};Server=%s;database=%s;uid=%s;pwd=%s"), g_szDBSource, g_szDBName, g_szDBAccount, g_szDBPassWord); return 0; } typedef IODBCPoolInterface* (WINAPI *CREATEINSTANCE)( ); IODBCPoolInterface *g_pInstance = NULL; IODBCPoolInterface* lyfzCreatePoolInstance( ) { //加载动态库 HMODULE hDll = ( HMODULE )LoadLibrary(_T("lyfzodbc.dll")); if ( hDll == NULL ) { CString strError = _T(""); strError.Format(_T("error = %d"), GetLastError()); AfxMessageBox(strError); return NULL; } CREATEINSTANCE CreaetInstance = (CREATEINSTANCE)GetProcAddress(hDll, "lyfzCreatePoolInstance"); IODBCPoolInterface *pIDBPool = CreaetInstance(); return pIDBPool; } void showmsg() { AllocConsole(); // 开辟控制台; SetConsoleTitle(_T("lyfz调试输出")); // 设置控制台窗口标题; freopen("CONOUT$", "w+t", stdout); // 重定向输出; freopen("CONIN$", "r+t", stdin); // 重定向输入; HWND hWnd = NULL; again: hWnd = ::FindWindow(NULL, _T("lyfz调试输出")); if( hWnd ) { if (!::SetWindowPos(hWnd, HWND_TOPMOST, 0,0,0,0, SWP_NOMOVE | SWP_NOSIZE)) { printf(_T("前置设置失败\n")); } else { printf(_T("前置设置成功\n")); } } else { goto again; } }