#ifdef _WIN32 #include #else #include "typedef.h" #include "commonstruct.h" #include "ProCommon.h" #include "ServerInner.h" #include "Param.h" #include "StoredProcedure.h" #endif #include "DBInterface.h" #include "debug.h" typedef DLLAPI int (*DB_INITDATABASES)(char* strHost, char* strUser, char* strPwd); typedef DLLAPI int (*DB_RELEASE)(); DB_INITDATABASES f_DB_InitDatabases = NULL; DB_RELEASE f_DB_Release = NULL; PM_HANDLEPARAM f_PM_HandleParam = NULL; DB_GETCLIENTVERSION f_DB_GetClientVersion = NULL; DB_GETCLIENTTYPENUMBER f_DB_GetClientTypeNumber = NULL; DB_GETPATH f_DB_GetPath = NULL; DB_CLEANVIPLOG f_DB_CleanVipLog = NULL; DB_PHONECHECK f_DB_PhoneCheck = NULL; DB_REGISTER f_DB_Register = NULL; DB_LOGIN f_DB_Login = NULL; DB_LOGOFF f_DB_Logoff = NULL; DB_GETSTYLEUPDATENUMBER f_DB_GetStyleUpdateNumber = NULL; DB_GETCLIENTUPDATEFLAG f_DB_GetClientUpdateFlag = NULL; DB_VERIFY f_DB_Verify = NULL; DB_PURCHASE f_DB_Purchase = NULL; DB_INSERTSTYLE f_DB_InsertStyle = NULL; DB_GETSTYLEUPDATELIST f_DB_GetStyleUpdateList = NULL; DB_CHECKSTYLEINFO f_DB_CheckStyleInfo = NULL; DB_GETRECOMSTYLEIDS f_DB_GetRecomStyleIDs = NULL; DB_CHECKUSERAUTHORITY f_DB_CheckUserAuthority = NULL; DB_SETSTYLECHECK f_DB_SetStyleCheck = NULL; DB_GETCOMMONQNA f_DB_GetCommonQnA = NULL; DB_GETUSERQNA f_DB_GetUserQnA = NULL; DB_SUBMITQUESTION f_DB_SubmitQuestion = NULL; DB_GETNOTICE f_DB_GetNotice = NULL; DB_INSERTSONG f_DB_InsertSong = NULL; DB_GETSTYLEUPDATELISTNEW f_DB_GetStyleUpdateListNew = NULL; DB_GETSHAREUPDATELIST f_DB_GetShareUpdateList = NULL; DB_GETCHECKUPDATELIST f_DB_GetCheckUpdateList = NULL; DB_GETSTYLEINFONEW f_DB_GetStyleInfoNew = NULL; DB_UPDATESTYLE f_DB_UpdateStyle = NULL; DB_CHECKPAYMENT f_DB_CheckPayment = NULL; DB_CONFIRMPAYMENT f_DB_ConfirmPayment = NULL; DB_STYLESCORE f_DB_StyleScore = NULL; DB_INSERTSHARESTYLE f_DB_InsertShareStyle = NULL; DB_GETWEBURL f_DB_GetWebURL = NULL; #ifdef _WIN32 HINSTANCE g_hDBDll = NULL, g_hPMDll = NULL; #endif bool LoadDB() { #ifdef _WIN32 g_hDBDll = LoadLibrary( DB_DLL ); if( g_hDBDll==NULL ){ DWORD dwRet = GetLastError(); DebugPrint( "载入数据库接口模块失败, 程序终止! errcode=%d", dwRet ); return FALSE; } //获取数据库函数入口 f_DB_InitDatabases = (DB_INITDATABASES)GetProcAddress( g_hDBDll, "DB_InitDatabases" ); f_DB_Release = (DB_RELEASE)GetProcAddress( g_hDBDll, "DB_Release" ); f_DB_GetPath = (DB_GETPATH)GetProcAddress( g_hDBDll, "DB_GetPath" ); f_DB_CleanVipLog = (DB_CLEANVIPLOG)GetProcAddress( g_hDBDll, "DB_CleanVipLog" ); f_DB_GetClientVersion = (DB_GETCLIENTVERSION)GetProcAddress( g_hDBDll, "DB_GetClientVersion" ); f_DB_GetClientTypeNumber = (DB_GETCLIENTTYPENUMBER)GetProcAddress( g_hDBDll, "DB_GetClientTypeNumber" ); f_DB_GetStyleUpdateNumber = (DB_GETSTYLEUPDATENUMBER)GetProcAddress( g_hDBDll, "DB_GetStyleUpdateNumber" ); f_DB_GetClientUpdateFlag = (DB_GETCLIENTUPDATEFLAG)GetProcAddress( g_hDBDll, "DB_GetClientUpdateFlag" ); f_DB_PhoneCheck = (DB_PHONECHECK)GetProcAddress( g_hDBDll, "DB_PhoneCheck" ); f_DB_Register = (DB_REGISTER)GetProcAddress( g_hDBDll, "DB_Register" ); f_DB_Login = (DB_LOGIN)GetProcAddress( g_hDBDll, "DB_Login" ); f_DB_Logoff = (DB_LOGOFF)GetProcAddress( g_hDBDll, "DB_Logoff" ); f_DB_Verify = (DB_VERIFY)GetProcAddress( g_hDBDll, "DB_Verify" ); f_DB_Purchase = (DB_PURCHASE)GetProcAddress( g_hDBDll, "DB_Purchase" ); f_DB_InsertStyle = (DB_INSERTSTYLE)GetProcAddress( g_hDBDll, "DB_InsertStyle" ); f_DB_GetStyleUpdateList = (DB_GETSTYLEUPDATELIST)GetProcAddress( g_hDBDll, "DB_GetStyleUpdateList" ); f_DB_CheckStyleInfo = (DB_CHECKSTYLEINFO)GetProcAddress( g_hDBDll, "DB_CheckStyleInfo" ); f_DB_GetRecomStyleIDs = (DB_GETRECOMSTYLEIDS)GetProcAddress( g_hDBDll, "DB_GetRecomStyleIDs" ); f_DB_CheckUserAuthority = (DB_CHECKUSERAUTHORITY)GetProcAddress( g_hDBDll, "DB_CheckUserAuthority" ); f_DB_SetStyleCheck = (DB_SETSTYLECHECK)GetProcAddress( g_hDBDll, "DB_SetStyleCheck" ); f_DB_GetCommonQnA = (DB_GETCOMMONQNA)GetProcAddress( g_hDBDll, "DB_GetCommonQnA" ); f_DB_GetUserQnA = (DB_GETUSERQNA)GetProcAddress( g_hDBDll, "DB_GetUserQnA" ); f_DB_GetNotice = (DB_GETNOTICE)GetProcAddress( g_hDBDll, "DB_GetNotice" ); f_DB_SubmitQuestion = (DB_SUBMITQUESTION)GetProcAddress( g_hDBDll, "DB_SubmitQuestion" ); f_DB_InsertSong = (DB_INSERTSONG)GetProcAddress( g_hDBDll, "DB_InsertSong" ); f_DB_GetStyleUpdateListNew = (DB_GETSTYLEUPDATELISTNEW)GetProcAddress( g_hDBDll, "DB_GetStyleUpdateListNew" ); f_DB_GetShareUpdateList = (DB_GETSHAREUPDATELIST)GetProcAddress( g_hDBDll, "DB_GetShareUpdateList" ); f_DB_GetCheckUpdateList = (DB_GETCHECKUPDATELIST)GetProcAddress( g_hDBDll, "DB_GetCheckUpdateList" ); f_DB_GetStyleInfoNew = (DB_GETSTYLEINFONEW)GetProcAddress( g_hDBDll, "DB_GetStyleInfoNew" ); f_DB_UpdateStyle = (DB_UPDATESTYLE)GetProcAddress( g_hDBDll, "DB_UpdateStyle" ); f_DB_CheckPayment = (DB_CHECKPAYMENT)GetProcAddress( g_hDBDll, "DB_CheckPayment" ); f_DB_ConfirmPayment = (DB_CONFIRMPAYMENT)GetProcAddress( g_hDBDll, "DB_ConfirmPayment" ); f_DB_StyleScore = (DB_STYLESCORE)GetProcAddress( g_hDBDll, "DB_StyleScore" ); f_DB_InsertShareStyle = (DB_INSERTSHARESTYLE)GetProcAddress( g_hDBDll, "DB_InsertShareStyle" ); f_DB_GetWebURL = (DB_GETWEBURL)GetProcAddress( g_hDBDll, "DB_GetWebURL" ); #else f_DB_InitDatabases = (DB_INITDATABASES)DB_InitDatabases; f_DB_Release = (DB_RELEASE)DB_Release; f_DB_GetPath = (DB_GETPATH)DB_GetPath; f_DB_CleanVipLog = (DB_CLEANVIPLOG)DB_CleanVipLog; f_DB_GetClientVersion = (DB_GETCLIENTVERSION)DB_GetClientVersion; f_DB_GetClientTypeNumber = (DB_GETCLIENTTYPENUMBER)DB_GetClientTypeNumber; f_DB_GetStyleUpdateNumber = (DB_GETSTYLEUPDATENUMBER)DB_GetStyleUpdateNumber; f_DB_GetClientUpdateFlag = (DB_GETCLIENTUPDATEFLAG)DB_GetClientUpdateFlag; f_DB_PhoneCheck = (DB_PHONECHECK)DB_PhoneCheck; f_DB_Register = (DB_REGISTER)DB_Register; f_DB_Login = (DB_LOGIN)DB_Login; f_DB_Logoff = (DB_LOGOFF)DB_Logoff; f_DB_Verify = (DB_VERIFY)DB_Verify; f_DB_Purchase = (DB_PURCHASE)DB_Purchase; f_DB_InsertStyle = (DB_INSERTSTYLE)DB_InsertStyle; f_DB_GetStyleUpdateList = (DB_GETSTYLEUPDATELIST)DB_GetStyleUpdateList; f_DB_CheckStyleInfo = (DB_CHECKSTYLEINFO)DB_CheckStyleInfo; f_DB_GetRecomStyleIDs = (DB_GETRECOMSTYLEIDS)DB_GetRecomStyleIDs; f_DB_CheckUserAuthority = (DB_CHECKUSERAUTHORITY)DB_CheckUserAuthority; f_DB_SetStyleCheck = (DB_SETSTYLECHECK)DB_SetStyleCheck; f_DB_GetCommonQnA = (DB_GETCOMMONQNA)DB_GetCommonQnA; f_DB_GetUserQnA = (DB_GETUSERQNA)DB_GetUserQnA; f_DB_GetNotice = (DB_GETNOTICE)DB_GetNotice; f_DB_SubmitQuestion = (DB_SUBMITQUESTION)DB_SubmitQuestion; f_DB_InsertSong = (DB_INSERTSONG)DB_InsertSong; f_DB_GetStyleUpdateListNew = (DB_GETSTYLEUPDATELISTNEW)DB_GetStyleUpdateListNew; f_DB_GetShareUpdateList = (DB_GETSHAREUPDATELIST)DB_GetShareUpdateList; f_DB_GetCheckUpdateList = (DB_GETCHECKUPDATELIST)DB_GetCheckUpdateList; f_DB_GetStyleInfoNew = (DB_GETSTYLEINFONEW)DB_GetStyleInfoNew; f_DB_UpdateStyle = (DB_UPDATESTYLE)DB_UpdateStyle; f_DB_CheckPayment = (DB_CHECKPAYMENT)DB_CheckPayment; f_DB_ConfirmPayment = (DB_CONFIRMPAYMENT)DB_ConfirmPayment; f_DB_StyleScore = (DB_STYLESCORE)DB_StyleScore; f_DB_InsertShareStyle = (DB_INSERTSHARESTYLE)DB_InsertShareStyle; f_DB_GetWebURL = (DB_GETWEBURL)DB_GetWebURL; #endif if( !( f_DB_InitDatabases && f_DB_Release && f_DB_GetClientVersion && f_DB_GetClientTypeNumber && f_DB_GetStyleUpdateNumber && f_DB_GetClientUpdateFlag && f_DB_Login && f_DB_Verify && f_DB_Purchase && f_DB_GetPath && f_DB_InsertStyle && f_DB_GetStyleUpdateList && f_DB_CheckStyleInfo && f_DB_GetRecomStyleIDs && f_DB_CheckUserAuthority && f_DB_Register && f_DB_SetStyleCheck && f_DB_GetCommonQnA && f_DB_GetUserQnA && f_DB_SubmitQuestion && f_DB_GetNotice && f_DB_InsertSong && f_DB_GetStyleUpdateListNew && f_DB_GetStyleInfoNew && f_DB_UpdateStyle && f_DB_CheckPayment && f_DB_ConfirmPayment && f_DB_StyleScore && f_DB_InsertShareStyle && f_DB_GetShareUpdateList && f_DB_GetCheckUpdateList && f_DB_Logoff && f_DB_CleanVipLog && f_DB_PhoneCheck && f_DB_GetWebURL )){ DebugPrint( "获取数据库访问函数失败, 程序终止!" ); return FALSE; } #ifdef _DEBUG // int ret = f_DB_InitDatabases("localhost", "root", "168soft.xyz"); // int ret = f_DB_InitDatabases("192.168.5.2", "root", "168soft.xyz"); // int ret = f_DB_InitDatabases("printer", "root", ""); // int ret = f_DB_InitDatabases("composemusic.xicp.net", "test", "123456"); int ret = f_DB_InitDatabases("localhost", "root", "168soft.xyz"); #else int ret = f_DB_InitDatabases("localhost", "root", "168soft.xyz"); #endif if( ret==-1 ){ DebugPrint( "初始化数据库失败, 程序终止!" ); return FALSE; } #ifdef _WIN32 //载入网参模块 g_hPMDll = LoadLibrary( PM_DLL ); if( g_hPMDll==NULL ){ DWORD dwRet = GetLastError(); DebugPrint( "载入网参模块失败,程序终止! errcode=%d", dwRet ); return FALSE; } //获取网参函数 f_PM_HandleParam = (PM_HandleParam)GetProcAddress( g_hPMDll, "PM_HandleParam" ); #else f_PM_HandleParam = (PM_HANDLEPARAM)PM_HandleParam; #endif if( !f_PM_HandleParam ){ DebugPrint( "获取网参函数失败, 程序终止!" ); return FALSE; } return TRUE; } void FreeDB() { #ifdef _WIN32 if( g_hPMDll ){ FreeLibrary( g_hPMDll ); g_hPMDll = NULL; } if( g_hDBDll ){ f_DB_Release(); FreeLibrary( g_hDBDll ); g_hDBDll = NULL; } #endif }