From 127572c963ebdca8e244161a3c0870f35c31ab2b Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 4 Apr 2023 14:37:19 +0800 Subject: [PATCH 01/26] update:match xengine v 8.2 --- XEngine_Source/VSCopy-Debug.bat | 2 +- XEngine_Source/VSCopy-x64.bat | 2 +- XEngine_Source/VSCopy-x86.bat | 2 +- .../ModuleConfig_Define.h | 84 ++++++++--------- .../ModuleConfig_Error.h | 2 +- .../ModuleConfigure_Json.cpp | 16 ++-- .../ModuleConfigure_Json.h | 8 +- .../XEngine_ModuleConfigure/dllmain.cpp | 4 +- .../XEngine_ModuleConfigure/pch.cpp | 10 +-- XEngine_Source/XEngine_ModuleConfigure/pch.h | 2 +- .../XEngine_ModuleDatabase/ModuleDB_Define.h | 32 +++---- .../ModuleDatabase_Bank.cpp | 16 ++-- .../ModuleDatabase_Bank/ModuleDatabase_Bank.h | 6 +- .../ModuleDatabase_IDCard.cpp | 30 +++---- .../ModuleDatabase_IDCard.h | 12 +-- .../ModuleDatabase_XLog.cpp | 28 +++--- .../ModuleDatabase_XLog/ModuleDatabase_XLog.h | 12 +-- .../ModuleDatabase_ZIPCode.cpp | 34 +++---- .../ModuleDatabase_ZIPCode.h | 12 +-- .../XEngine_ModuleDatabase/dllmain.cpp | 4 +- XEngine_Source/XEngine_ModuleDatabase/pch.cpp | 34 +++---- XEngine_Source/XEngine_ModuleDatabase/pch.h | 2 +- .../XEngine_ModuleHelp/ModuleHelp_Define.h | 68 +++++++------- .../ModuleHelp_IDCard/ModuleHelp_IDCard.cpp | 4 +- .../ModuleHelp_IDCard/ModuleHelp_IDCard.h | 4 +- .../ModuleHelp_Language.cpp | 4 +- .../ModuleHelp_Language/ModuleHelp_Language.h | 4 +- .../ModuleHelp_Locker/ModuleHelp_Locker.cpp | 14 +-- .../ModuleHelp_Locker/ModuleHelp_Locker.h | 14 +-- .../ModuleHelp_P2PClient.cpp | 34 +++---- .../ModuleHelp_P2PClient.h | 26 +++--- .../ModuleHelp_QRCode/ModuleHelp_QRCode.cpp | 8 +- .../ModuleHelp_QRCode/ModuleHelp_QRCode.h | 8 +- .../ModuleHelp_SocketTest.cpp | 26 +++--- .../ModuleHelp_SocketTest.h | 28 +++--- XEngine_Source/XEngine_ModuleHelp/dllmain.cpp | 4 +- XEngine_Source/XEngine_ModuleHelp/pch.cpp | 64 ++++++------- XEngine_Source/XEngine_ModuleHelp/pch.h | 2 +- .../ModulePlugin_Define.h | 24 ++--- .../ModulePlugin_LibCore.cpp | 10 +-- .../ModulePlugin_LibCore.h | 22 ++--- .../ModulePlugin_Loader.cpp | 8 +- .../ModulePlugin_Loader/ModulePlugin_Loader.h | 12 +-- .../ModulePlugin_LuaCore.cpp | 12 +-- .../ModulePlugin_LuaCore.h | 14 +-- .../XEngine_ModulePlugin/dllmain.cpp | 4 +- XEngine_Source/XEngine_ModulePlugin/pch.cpp | 26 +++--- XEngine_Source/XEngine_ModulePlugin/pch.h | 2 +- .../ModuleProtocol_Define.h | 42 ++++----- .../ModuleProtocol_Packet.cpp | 32 +++---- .../ModuleProtocol_Packet.h | 30 +++---- .../ModuleProtocol_Parse.cpp | 22 ++--- .../ModuleProtocol_Parse.h | 16 ++-- .../XEngine_ModuleProtocol/dllmain.cpp | 4 +- XEngine_Source/XEngine_ModuleProtocol/pch.cpp | 44 ++++----- XEngine_Source/XEngine_ModuleProtocol/pch.h | 2 +- .../ModulePlugin_BMIndex/BMIndex_Define.h | 4 +- .../Plugin_BMIndex/Plugin_BMIndex.cpp | 12 +-- .../Plugin_BMIndex/Plugin_BMIndex.h | 6 +- .../ModulePlugin_BMIndex/dllmain.cpp | 4 +- .../ModulePlugin_BMIndex/pch.cpp | 6 +- .../ModulePlugin_BMIndex/pch.h | 2 +- .../ModulePlugin_Interface.cpp | 8 +- .../ModulePlugin_Interface.h | 4 +- .../ModulePlugin_IPAddr/PluginIPAddr_Define.h | 18 ++-- .../ModulePlugin_IPAddr/dllmain.cpp | 4 +- .../ModulePlugin_IPAddr/pch.cpp | 6 +- .../ModulePlugin_IPAddr/pch.h | 2 +- .../ModulePlugin_Meter/PluginMeter_Define.h | 4 +- .../Plugin_Meter/Plugin_Meter.cpp | 20 ++--- .../Plugin_Meter/Plugin_Meter.h | 12 +-- .../ModulePlugin_Meter/dllmain.cpp | 4 +- .../ModulePlugin_Meter/pch.cpp | 6 +- .../ModulePlugin_Meter/pch.h | 2 +- .../ModulePlugin_Password/PluginPass_Define.h | 4 +- .../Plugin_Password/Plugin_Password.cpp | 16 ++-- .../Plugin_Password/Plugin_Password.h | 6 +- .../ModulePlugin_Password/dllmain.cpp | 4 +- .../ModulePlugin_Password/pch.cpp | 6 +- .../ModulePlugin_Password/pch.h | 2 +- .../ModulePlugin_APIPhone.cpp | 8 +- .../ModulePlugin_APIPhone.h | 4 +- .../ModulePlugin_DBPhone.cpp | 16 ++-- .../ModulePlugin_DBPhone.h | 10 +-- .../ModulePlugin_Phone/PluginPhone_Define.h | 8 +- .../ModulePlugin_Phone/dllmain.cpp | 4 +- .../ModulePlugin_Phone/pch.cpp | 6 +- .../ModulePlugin_Phone/pch.h | 2 +- .../Plugin_Timezone/Plugin_Timezone.cpp | 20 ++--- .../Plugin_Timezone/Plugin_Timezone.h | 12 +-- .../ModulePlugin_Timezone/Timezone_Define.h | 4 +- .../ModulePlugin_Timezone/dllmain.cpp | 4 +- .../ModulePlugin_Timezone/pch.cpp | 6 +- .../ModulePlugin_Timezone/pch.h | 2 +- .../ModulePlugin_Zodiac/PluginZodiac_Define.h | 4 +- .../Plugin_Zodiac/Plugin_Zodiac.cpp | 16 ++-- .../Plugin_Zodiac/Plugin_Zodiac.h | 8 +- .../ModulePlugin_Zodiac/dllmain.cpp | 4 +- .../ModulePlugin_Zodiac/pch.cpp | 6 +- .../ModulePlugin_Zodiac/pch.h | 2 +- .../XEngine_HttpApp/XEngine_Configure.cpp | 4 +- .../XEngine_HttpApp/XEngine_Configure.h | 2 +- .../XEngine_HttpApp/XEngine_HTTPTask.cpp | 90 +++++++++---------- .../XEngine_HttpApp/XEngine_HTTPTask.h | 4 +- .../XEngine_HTTPTask/HTTPTask_Bank.cpp | 16 ++-- .../XEngine_HTTPTask/HTTPTask_Bank.h | 2 +- .../XEngine_HTTPTask/HTTPTask_IDCard.cpp | 14 +-- .../XEngine_HTTPTask/HTTPTask_IDCard.h | 2 +- .../XEngine_HTTPTask/HTTPTask_Language.cpp | 8 +- .../XEngine_HTTPTask/HTTPTask_Language.h | 2 +- .../XEngine_HTTPTask/HTTPTask_Locker.cpp | 32 +++---- .../XEngine_HTTPTask/HTTPTask_Locker.h | 2 +- .../XEngine_HTTPTask/HTTPTask_Log.cpp | 14 +-- .../XEngine_HTTPTask/HTTPTask_Log.h | 2 +- .../XEngine_HTTPTask/HTTPTask_OPtions.cpp | 12 +-- .../XEngine_HTTPTask/HTTPTask_OPtions.h | 2 +- .../XEngine_HTTPTask/HTTPTask_P2PClient.cpp | 26 +++--- .../XEngine_HTTPTask/HTTPTask_P2PClient.h | 4 +- .../XEngine_HTTPTask/HTTPTask_PostCode.cpp | 8 +- .../XEngine_HTTPTask/HTTPTask_PostCode.h | 2 +- .../XEngine_HTTPTask/HTTPTask_QRCode.cpp | 10 +-- .../XEngine_HTTPTask/HTTPTask_QRCode.h | 2 +- .../XEngine_HTTPTask/HTTPTask_SocketTest.cpp | 14 +-- .../XEngine_HTTPTask/HTTPTask_SocketTest.h | 4 +- .../XEngine_HTTPTask/HTTPTask_Translation.cpp | 18 ++-- .../XEngine_HTTPTask/HTTPTask_Translation.h | 2 +- .../XEngine_HttpApp/XEngine_Hdr.h | 14 +-- .../XEngine_HttpApp/XEngine_HttpApp.cpp | 26 +++--- .../XEngine_HttpApp/XEngine_Network.cpp | 20 ++--- .../XEngine_HttpApp/XEngine_Network.h | 12 +-- .../XEngine_HttpApp/XEngine_PluginTask.cpp | 10 +-- .../XEngine_HttpApp/XEngine_PluginTask.h | 2 +- XEngine_Source/XEngine_UserProtocol.h | 42 ++++----- 133 files changed, 862 insertions(+), 862 deletions(-) diff --git a/XEngine_Source/VSCopy-Debug.bat b/XEngine_Source/VSCopy-Debug.bat index 538d085..3db2679 100644 --- a/XEngine_Source/VSCopy-Debug.bat +++ b/XEngine_Source/VSCopy-Debug.bat @@ -12,4 +12,4 @@ copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_DataBase.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_Packets.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_XLog.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_Authorize.dll" "./" -copy /y "D:\XEngine\XEngine_SourceCode\Debug\RfcComponents_HttpServer.dll" "./" \ No newline at end of file +copy /y "D:\XEngine\XEngine_SourceCode\Debug\RfcComponents_HttpProtocol.dll" "./" \ No newline at end of file diff --git a/XEngine_Source/VSCopy-x64.bat b/XEngine_Source/VSCopy-x64.bat index 1aa89b2..e34bb71 100644 --- a/XEngine_Source/VSCopy-x64.bat +++ b/XEngine_Source/VSCopy-x64.bat @@ -12,7 +12,7 @@ copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_DataBase.dll" "./ copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_Packets.dll" "./" copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_XLog.dll" "./" copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_Authorize.dll" "./" -copy /y "%XEngine_Lib64%\XEngine_RfcComponents\RfcComponents_HttpServer.dll" "./" +copy /y "%XEngine_Lib64%\XEngine_RfcComponents\RfcComponents_HttpProtocol.dll" "./" copy /y "%XEngine_Lib64%\XEngine_HelpComponents\bson-1.0.dll" "./" copy /y "%XEngine_Lib64%\XEngine_HelpComponents\mongoc-1.0.dll" "./" diff --git a/XEngine_Source/VSCopy-x86.bat b/XEngine_Source/VSCopy-x86.bat index 0cf9981..d873060 100644 --- a/XEngine_Source/VSCopy-x86.bat +++ b/XEngine_Source/VSCopy-x86.bat @@ -12,7 +12,7 @@ copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_DataBase.dll" "./ copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_Packets.dll" "./" copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_XLog.dll" "./" copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_Authorize.dll" "./" -copy /y "%XEngine_Lib32%\XEngine_RfcComponents\RfcComponents_HttpServer.dll" "./" +copy /y "%XEngine_Lib32%\XEngine_RfcComponents\RfcComponents_HttpProtocol.dll" "./" copy /y "%XEngine_Lib32%\XEngine_HelpComponents\bson-1.0.dll" "./" copy /y "%XEngine_Lib32%\XEngine_HelpComponents\mongoc-1.0.dll" "./" diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h index f4291ee..20dd679 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h @@ -15,8 +15,8 @@ ////////////////////////////////////////////////////////////////////////// typedef struct { - TCHAR tszIPAddr[128]; //本机IP地址,根据需要配置 - BOOL bDeamon; //是否以守护进程启动,LINUX有效 + XCHAR tszIPAddr[128]; //本机IP地址,根据需要配置 + XBOOL bDeamon; //是否以守护进程启动,LINUX有效 int nHttpPort; //HTTP服务端口 struct { @@ -39,27 +39,27 @@ typedef struct }st_XLog; struct { - TCHAR tszSQLAddr[128]; //MYSQL数据库地址 - TCHAR tszSQLUser[128]; //数据库用户名 - TCHAR tszSQLPass[128]; //数据库密码 - TCHAR tszDBName[128]; //数据库表明 + XCHAR tszSQLAddr[128]; //MYSQL数据库地址 + XCHAR tszSQLUser[128]; //数据库用户名 + XCHAR tszSQLPass[128]; //数据库密码 + XCHAR tszDBName[128]; //数据库表明 int nSQLPort; //端口 }st_XSql; struct { - TCHAR tszBankUrl[MAX_PATH]; //银行卡验证地址 - TCHAR tszTranslationUrl[MAX_PATH]; //翻译接口 + XCHAR tszBankUrl[MAX_PATH]; //银行卡验证地址 + XCHAR tszTranslationUrl[MAX_PATH]; //翻译接口 }st_XApi; struct { - BOOL bEnable; //是否启用 - TCHAR tszPluginLib[MAX_PATH]; //配置文件地址 - TCHAR tszPluginLua[MAX_PATH]; //配置文件地址 + XBOOL bEnable; //是否启用 + XCHAR tszPluginLib[MAX_PATH]; //配置文件地址 + XCHAR tszPluginLua[MAX_PATH]; //配置文件地址 }st_XPlugin; struct { - TCHAR tszConfigOPencc[MAX_PATH]; //OPENCC配置地址 - TCHAR tszConfigQRCode[MAX_PATH]; //二维码配置地址 + XCHAR tszConfigOPencc[MAX_PATH]; //OPENCC配置地址 + XCHAR tszConfigQRCode[MAX_PATH]; //二维码配置地址 }st_XConfig; struct { @@ -69,35 +69,35 @@ typedef struct //OPENCC语言转换配置文件 typedef struct { - TCHAR tszFiles2t[MAX_PATH]; - TCHAR tszFilet2s[MAX_PATH]; - TCHAR tszFiles2tw[MAX_PATH]; - TCHAR tszFiletw2s[MAX_PATH]; - TCHAR tszFiles2hk[MAX_PATH]; - TCHAR tszFilehk2s[MAX_PATH]; - TCHAR tszFiles2twp[MAX_PATH]; - TCHAR tszFiletw2sp[MAX_PATH]; - TCHAR tszFilet2tw[MAX_PATH]; - TCHAR tszFilehk2t[MAX_PATH]; - TCHAR tszFilet2hk[MAX_PATH]; - TCHAR tszFilet2jp[MAX_PATH]; - TCHAR tszFilejp2t[MAX_PATH]; - TCHAR tszFiletw2t[MAX_PATH]; + XCHAR tszFiles2t[MAX_PATH]; + XCHAR tszFilet2s[MAX_PATH]; + XCHAR tszFiles2tw[MAX_PATH]; + XCHAR tszFiletw2s[MAX_PATH]; + XCHAR tszFiles2hk[MAX_PATH]; + XCHAR tszFilehk2s[MAX_PATH]; + XCHAR tszFiles2twp[MAX_PATH]; + XCHAR tszFiletw2sp[MAX_PATH]; + XCHAR tszFilet2tw[MAX_PATH]; + XCHAR tszFilehk2t[MAX_PATH]; + XCHAR tszFilet2hk[MAX_PATH]; + XCHAR tszFilet2jp[MAX_PATH]; + XCHAR tszFilejp2t[MAX_PATH]; + XCHAR tszFiletw2t[MAX_PATH]; }XENGINE_OPENCCCONFIG; //二维码模型库 typedef struct { - TCHAR tszModelDetect[MAX_PATH]; - TCHAR tszModelSr[MAX_PATH]; - TCHAR tszProtoDetect[MAX_PATH]; - TCHAR tszProtoSr[MAX_PATH]; + XCHAR tszModelDetect[MAX_PATH]; + XCHAR tszModelSr[MAX_PATH]; + XCHAR tszProtoDetect[MAX_PATH]; + XCHAR tszProtoSr[MAX_PATH]; }XENGINE_QRCODECONFIG; //插件 typedef struct { - BOOL bEnable; - TCHAR tszPluginMethod[MAX_PATH]; - TCHAR tszPluginFile[MAX_PATH]; + XBOOL bEnable; + XCHAR tszPluginMethod[MAX_PATH]; + XCHAR tszPluginFile[MAX_PATH]; }XENGINE_PLUGININFO; typedef struct { @@ -106,10 +106,10 @@ typedef struct ////////////////////////////////////////////////////////////////////////// typedef struct { - BOOL bEnable; - TCHAR tszOPMethod[MAX_PATH]; - TCHAR tszOPNote[MAX_PATH]; - TCHAR tszOPExample[MAX_PATH]; + XBOOL bEnable; + XCHAR tszOPMethod[MAX_PATH]; + XCHAR tszOPNote[MAX_PATH]; + XCHAR tszOPExample[MAX_PATH]; }XENGINE_OPTIONINFO; typedef struct { @@ -140,7 +140,7 @@ extern "C" DWORD ModuleConfigure_GetLastError(int* pInt_ErrorCode = NULL); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleConfigure_Json_File(LPCTSTR lpszConfigFile, XENGINE_SERVICECONFIG* pSt_ServerConfig); +extern "C" XBOOL ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVICECONFIG* pSt_ServerConfig); /******************************************************************** 函数名称:ModuleConfigure_Json_OPenccFile 函数功能:读取JSON配置文件 @@ -159,7 +159,7 @@ extern "C" BOOL ModuleConfigure_Json_File(LPCTSTR lpszConfigFile, XENGINE_SERVIC 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleConfigure_Json_OPenccFile(LPCTSTR lpszConfigFile, XENGINE_OPENCCCONFIG* pSt_OPenccConfig); +extern "C" XBOOL ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE_OPENCCCONFIG* pSt_OPenccConfig); /******************************************************************** 函数名称:ModuleConfigure_Json_QRCodeFile 函数功能:读取JSON配置文件 @@ -178,7 +178,7 @@ extern "C" BOOL ModuleConfigure_Json_OPenccFile(LPCTSTR lpszConfigFile, XENGINE_ 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleConfigure_Json_QRCodeFile(LPCTSTR lpszConfigFile, XENGINE_QRCODECONFIG* pSt_QRCodeConfig); +extern "C" XBOOL ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE_QRCODECONFIG* pSt_QRCodeConfig); /******************************************************************** 函数名称:ModuleConfigure_Json_PluginFile 函数功能:读取JSON配置文件 @@ -197,4 +197,4 @@ extern "C" BOOL ModuleConfigure_Json_QRCodeFile(LPCTSTR lpszConfigFile, XENGINE_ 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleConfigure_Json_PluginFile(LPCTSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig); \ No newline at end of file +extern "C" XBOOL ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Error.h b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Error.h index f771ce0..bb2e76d 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Error.h +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Error.h @@ -15,7 +15,7 @@ #define ERROR_MODULE_CONFIGURE_JSON_PARSE 0xA0003 //解析JSON失败 #define ERROR_MODULE_CONFIGURE_JSON_XMAX 0xA0004 //读取XMAX配置失败 #define ERROR_MODULE_CONFIGURE_JSON_XTIME 0xA0005 //读取XTIME配置失败 -#define ERROR_MODULE_CONFIGURE_JSON_XLOG 0xA0006 //读取XLOG配置失败 +#define ERROR_MODULE_CONFIGURE_JSON_XLOG 0xA0006 //读取XHANDLE配置失败 #define ERROR_MODULE_CONFIGURE_JSON_XDB 0xA0007 //数据库配置错误 #define ERROR_MODULE_CONFIGURE_JSON_XPLUGIN 0xA0008 //插件配置错误 #define ERROR_MODULE_CONFIGURE_JSON_XVER 0xA0009 //版本配置文件读取错误 diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp index 854a616..9469210 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp @@ -40,7 +40,7 @@ CModuleConfigure_Json::~CModuleConfigure_Json() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCTSTR lpszConfigFile, XENGINE_SERVICECONFIG* pSt_ServerConfig) +XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVICECONFIG* pSt_ServerConfig) { Config_IsErrorOccur = FALSE; @@ -62,7 +62,7 @@ BOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCTSTR lpszConfigFile, XE return FALSE; } size_t nCount = 0; - TCHAR tszMsgBuffer[4096]; + XCHAR tszMsgBuffer[4096]; while (1) { size_t nRet = fread(tszMsgBuffer + nCount, 1, 2048, pSt_File); @@ -200,7 +200,7 @@ BOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCTSTR lpszConfigFile, XE 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCTSTR lpszConfigFile, XENGINE_OPENCCCONFIG* pSt_OPenccConfig) +XBOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE_OPENCCCONFIG* pSt_OPenccConfig) { Config_IsErrorOccur = FALSE; @@ -222,7 +222,7 @@ BOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCTSTR lpszConfigFi return FALSE; } size_t nCount = 0; - TCHAR tszMsgBuffer[4096]; + XCHAR tszMsgBuffer[4096]; while (1) { size_t nRet = fread(tszMsgBuffer + nCount, 1, 2048, pSt_File); @@ -275,7 +275,7 @@ BOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCTSTR lpszConfigFi 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCTSTR lpszConfigFile, XENGINE_QRCODECONFIG* pSt_QRCodeConfig) +XBOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE_QRCODECONFIG* pSt_QRCodeConfig) { Config_IsErrorOccur = FALSE; @@ -297,7 +297,7 @@ BOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCTSTR lpszConfigFi return FALSE; } size_t nCount = 0; - TCHAR tszMsgBuffer[4096]; + XCHAR tszMsgBuffer[4096]; while (1) { size_t nRet = fread(tszMsgBuffer + nCount, 1, 2048, pSt_File); @@ -340,7 +340,7 @@ BOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCTSTR lpszConfigFi 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCTSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig) +XBOOL CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig) { Config_IsErrorOccur = FALSE; @@ -362,7 +362,7 @@ BOOL CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCTSTR lpszConfigFi return FALSE; } size_t nCount = 0; - TCHAR tszMsgBuffer[4096]; + XCHAR tszMsgBuffer[4096]; while (1) { size_t nRet = fread(tszMsgBuffer + nCount, 1, 2048, pSt_File); diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.h b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.h index acee487..5b81023 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.h +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.h @@ -17,10 +17,10 @@ public: CModuleConfigure_Json(); ~CModuleConfigure_Json(); public: - BOOL ModuleConfigure_Json_File(LPCTSTR lpszConfigFile, XENGINE_SERVICECONFIG* pSt_ServerConfig); - BOOL ModuleConfigure_Json_OPenccFile(LPCTSTR lpszConfigFile, XENGINE_OPENCCCONFIG* pSt_OPenccConfig); - BOOL ModuleConfigure_Json_QRCodeFile(LPCTSTR lpszConfigFile, XENGINE_QRCODECONFIG* pSt_QRCodeConfig); - BOOL ModuleConfigure_Json_PluginFile(LPCTSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig); + XBOOL ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVICECONFIG* pSt_ServerConfig); + XBOOL ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE_OPENCCCONFIG* pSt_OPenccConfig); + XBOOL ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE_QRCODECONFIG* pSt_QRCodeConfig); + XBOOL ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig); protected: private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp b/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp index daed8c8..f130bae 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp @@ -1,9 +1,9 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -BOOL APIENTRY DllMain( HMODULE hModule, +XBOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, - LPVOID lpReserved + XPVOID lpReserved ) { switch (ul_reason_for_call) diff --git a/XEngine_Source/XEngine_ModuleConfigure/pch.cpp b/XEngine_Source/XEngine_ModuleConfigure/pch.cpp index 5d11a22..1170ca6 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/pch.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出函数实现 // History: *********************************************************************/ -BOOL Config_IsErrorOccur = FALSE; +XBOOL Config_IsErrorOccur = FALSE; DWORD Config_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////// CModuleConfigure_Json m_ConfigJson; @@ -29,19 +29,19 @@ extern "C" DWORD ModuleConfigure_GetLastError(int* pInt_ErrorCode) /************************************************************************/ /* 配置文件读取 */ /************************************************************************/ -extern "C" BOOL ModuleConfigure_Json_File(LPCTSTR lpszConfigFile, XENGINE_SERVICECONFIG * pSt_ServerConfig) +extern "C" XBOOL ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVICECONFIG * pSt_ServerConfig) { return m_ConfigJson.ModuleConfigure_Json_File(lpszConfigFile, pSt_ServerConfig); } -extern "C" BOOL ModuleConfigure_Json_OPenccFile(LPCTSTR lpszConfigFile, XENGINE_OPENCCCONFIG * pSt_OPenccConfig) +extern "C" XBOOL ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE_OPENCCCONFIG * pSt_OPenccConfig) { return m_ConfigJson.ModuleConfigure_Json_OPenccFile(lpszConfigFile, pSt_OPenccConfig); } -extern "C" BOOL ModuleConfigure_Json_QRCodeFile(LPCTSTR lpszConfigFile, XENGINE_QRCODECONFIG * pSt_QRCodeConfig) +extern "C" XBOOL ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE_QRCODECONFIG * pSt_QRCodeConfig) { return m_ConfigJson.ModuleConfigure_Json_QRCodeFile(lpszConfigFile, pSt_QRCodeConfig); } -extern "C" BOOL ModuleConfigure_Json_PluginFile(LPCTSTR lpszConfigFile, XENGINE_PLUGINCONFIG * pSt_PluginConfig) +extern "C" XBOOL ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigFile, XENGINE_PLUGINCONFIG * pSt_PluginConfig) { return m_ConfigJson.ModuleConfigure_Json_PluginFile(lpszConfigFile, pSt_PluginConfig); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleConfigure/pch.h b/XEngine_Source/XEngine_ModuleConfigure/pch.h index 477c828..bc93e14 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/pch.h +++ b/XEngine_Source/XEngine_ModuleConfigure/pch.h @@ -36,7 +36,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern BOOL Config_IsErrorOccur; +extern XBOOL Config_IsErrorOccur; extern DWORD Config_dwErrorCode; #ifdef _MSC_BUILD diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h index e101359..400e1b5 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h @@ -30,7 +30,7 @@ extern "C" DWORD ModuleDB_GetLastError(int *pInt_SysError = NULL); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector); +extern "C" XBOOL ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector); /******************************************************************** 函数名称:ModuleDatabase_IDCard_Destory 函数功能:销毁 @@ -39,7 +39,7 @@ extern "C" BOOL ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBCo 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_IDCard_Destory(); +extern "C" XBOOL ModuleDatabase_IDCard_Destory(); /******************************************************************** 函数名称:ModuleDatabase_IDCard_QueryRegion 函数功能:查询身份证位置信息 @@ -58,7 +58,7 @@ extern "C" BOOL ModuleDatabase_IDCard_Destory(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION * pSt_IDRegion, XENGINE_IDCARDINFO * pSt_IDInfo); +extern "C" XBOOL ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION * pSt_IDRegion, XENGINE_IDCARDINFO * pSt_IDInfo); /************************************************************************/ /* 导出的银行卡信息函数 */ /************************************************************************/ @@ -75,7 +75,7 @@ extern "C" BOOL ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION * pSt_IDRegio 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector); +extern "C" XBOOL ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector); /******************************************************************** 函数名称:ModuleDatabase_Bank_Destory 函数功能:销毁 @@ -84,7 +84,7 @@ extern "C" BOOL ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConn 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_Bank_Destory(); +extern "C" XBOOL ModuleDatabase_Bank_Destory(); /******************************************************************** 函数名称:ModuleDatabase_Bank_Query 函数功能:通过银行缩写获得银行名称 @@ -98,7 +98,7 @@ extern "C" BOOL ModuleDatabase_Bank_Destory(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_Bank_Query(XENGINE_BANKINFO * pSt_BankInfo); +extern "C" XBOOL ModuleDatabase_Bank_Query(XENGINE_BANKINFO * pSt_BankInfo); /************************************************************************/ /* 导出的邮编行政信息函数 */ /************************************************************************/ @@ -115,7 +115,7 @@ extern "C" BOOL ModuleDatabase_Bank_Query(XENGINE_BANKINFO * pSt_BankInfo); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector); +extern "C" XBOOL ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector); /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_Destory 函数功能:销毁 @@ -124,7 +124,7 @@ extern "C" BOOL ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBC 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_ZIPCode_Destory(); +extern "C" XBOOL ModuleDatabase_ZIPCode_Destory(); /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_QueryZIPCode 函数功能:通过邮编查询行政地址信息 @@ -138,7 +138,7 @@ extern "C" BOOL ModuleDatabase_ZIPCode_Destory(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo); +extern "C" XBOOL ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo); /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_QueryName 函数功能:通过行政名称查询内容 @@ -152,7 +152,7 @@ extern "C" BOOL ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo); +extern "C" XBOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo); /************************************************************************/ /* 导出的日志服务数据库函数 */ /************************************************************************/ @@ -169,7 +169,7 @@ extern "C" BOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); +extern "C" XBOOL ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); /******************************************************************** 函数名称:ModuleDatabase_XLog_Destory 函数功能:销毁 @@ -178,7 +178,7 @@ extern "C" BOOL ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConne 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_XLog_Destory(); +extern "C" XBOOL ModuleDatabase_XLog_Destory(); /******************************************************************** 函数名称:ModuleDatabase_XLog_Create 函数功能:创建一个日志服务表 @@ -192,7 +192,7 @@ extern "C" BOOL ModuleDatabase_XLog_Destory(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_XLog_Create(LPCTSTR lpszTableName); +extern "C" XBOOL ModuleDatabase_XLog_Create(LPCXSTR lpszTableName); /******************************************************************** 函数名称:ModuleDatabase_XLog_Insert 函数功能:查询身份证位置信息 @@ -206,7 +206,7 @@ extern "C" BOOL ModuleDatabase_XLog_Create(LPCTSTR lpszTableName); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo); +extern "C" XBOOL ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo); /******************************************************************** 函数名称:ModuleDatabase_XLog_Query 函数功能:日志信息查询 @@ -240,7 +240,7 @@ extern "C" BOOL ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, int* pInt_ListCount, LPCTSTR lpszTableName, LPCTSTR lpszTimeStart, LPCTSTR lpszTimeEnd); +extern "C" XBOOL ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, int* pInt_ListCount, LPCXSTR lpszTableName, LPCXSTR lpszTimeStart, LPCXSTR lpszTimeEnd); /******************************************************************** 函数名称:ModuleDatabase_XLog_Delete 函数功能:删除日志表 @@ -254,4 +254,4 @@ extern "C" BOOL ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, in 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_XLog_Delete(LPCTSTR lpszTableName); \ No newline at end of file +extern "C" XBOOL ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp index 3859d35..62b3ff2 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp @@ -34,7 +34,7 @@ CModuleDatabase_Bank::~CModuleDatabase_Bank() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) +XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { DBModule_IsErrorOccur = FALSE; @@ -44,10 +44,10 @@ BOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; return FALSE; } -#ifdef _WINDOWS - LPCTSTR lpszStrCharset = _T("gbk"); +#ifdef _MSC_BUILD + LPCXSTR lpszStrCharset = _T("gbk"); #else - LPCTSTR lpszStrCharset = _T("utf8"); + LPCXSTR lpszStrCharset = _T("utf8"); #endif //连接数据库 _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APIInfo")); @@ -67,7 +67,7 @@ BOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Destory() +XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Destory() { DBModule_IsErrorOccur = FALSE; @@ -87,7 +87,7 @@ BOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Destory() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_BankInfo) +XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_BankInfo) { DBModule_IsErrorOccur = FALSE; @@ -101,7 +101,7 @@ BOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_BankI __int64u nLine = 0; __int64u nRow = 0; XNETHANDLE xhTable = 0; - TCHAR tszSQLStatement[1024]; + XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); _stprintf(tszSQLStatement, _T("SELECT * FROM `BankList` WHERE tszBankAbridge = '%s'"), pSt_BankInfo->tszBankAbridge); @@ -117,7 +117,7 @@ BOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_BankI DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; return FALSE; } - TCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); + XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); _tcscpy(pSt_BankInfo->tszBankName, pptszResult[2]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.h index 1b6d108..fc123b8 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.h @@ -18,9 +18,9 @@ public: CModuleDatabase_Bank(); ~CModuleDatabase_Bank(); public: - BOOL ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); - BOOL ModuleDatabase_Bank_Destory(); - BOOL ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_BankInfo); + XBOOL ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); + XBOOL ModuleDatabase_Bank_Destory(); + XBOOL ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_BankInfo); protected: private: XNETHANDLE xhDBSQL; diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp index 2797f42..ce0ab40 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp @@ -34,7 +34,7 @@ CModuleDatabase_IDCard::~CModuleDatabase_IDCard() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) +XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { DBModule_IsErrorOccur = FALSE; @@ -44,10 +44,10 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTIN DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; return FALSE; } -#ifdef _WINDOWS - LPCTSTR lpszStrCharset = _T("gbk"); +#ifdef _MSC_BUILD + LPCXSTR lpszStrCharset = _T("gbk"); #else - LPCTSTR lpszStrCharset = _T("utf8"); + LPCXSTR lpszStrCharset = _T("utf8"); #endif //连接数据库 _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APIInfo")); @@ -67,7 +67,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTIN 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Destory() +XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Destory() { DBModule_IsErrorOccur = FALSE; @@ -92,7 +92,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Destory() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) +XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { DBModule_IsErrorOccur = FALSE; @@ -119,7 +119,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION* 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) +XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { DBModule_IsErrorOccur = FALSE; @@ -133,7 +133,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGI __int64u nLine = 0; __int64u nRow = 0; XNETHANDLE xhTable = 0; - TCHAR tszSQLStatement[1024]; + XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); _stprintf(tszSQLStatement, _T("SELECT * FROM `RegionID` WHERE code = '%02d0000'"), pSt_IDInfo->nIDProvince); @@ -149,7 +149,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGI DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; return FALSE; } - TCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); + XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); _tcscpy(pSt_IDRegion->tszProvincer, pptszResult[1]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); @@ -173,7 +173,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGI 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) +XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { DBModule_IsErrorOccur = FALSE; @@ -187,7 +187,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* p __int64u nLine = 0; __int64u nRow = 0; XNETHANDLE xhTable = 0; - TCHAR tszSQLStatement[1024]; + XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); _stprintf(tszSQLStatement, _T("SELECT * FROM `RegionID` WHERE code = '%02d%02d00'"), pSt_IDInfo->nIDProvince, pSt_IDInfo->nIDCity); @@ -203,7 +203,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* p DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; return FALSE; } - TCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); + XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); _tcscpy(pSt_IDRegion->tszCity, pptszResult[1]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); @@ -227,7 +227,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* p 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) +XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { DBModule_IsErrorOccur = FALSE; @@ -241,7 +241,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION* __int64u nLine = 0; __int64u nRow = 0; XNETHANDLE xhTable = 0; - TCHAR tszSQLStatement[1024]; + XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); _stprintf(tszSQLStatement, _T("SELECT * FROM `RegionID` WHERE code = '%02d%02d%02d'"), pSt_IDInfo->nIDProvince, pSt_IDInfo->nIDCity, pSt_IDInfo->nIDCounty); @@ -257,7 +257,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION* DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; return FALSE; } - TCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); + XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); _tcscpy(pSt_IDRegion->tszCounty, pptszResult[1]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.h index fbaaf35..ac9bcb9 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.h @@ -18,13 +18,13 @@ public: CModuleDatabase_IDCard(); ~CModuleDatabase_IDCard(); public: - BOOL ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); - BOOL ModuleDatabase_IDCard_Destory(); - BOOL ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); + XBOOL ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); + XBOOL ModuleDatabase_IDCard_Destory(); + XBOOL ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); protected: - BOOL ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); - BOOL ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); - BOOL ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); + XBOOL ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); + XBOOL ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); + XBOOL ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); private: XNETHANDLE xhDBSQL; }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp index ff35964..5639b4f 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp @@ -34,7 +34,7 @@ CModuleDatabase_XLog::~CModuleDatabase_XLog() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) +XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { DBModule_IsErrorOccur = FALSE; @@ -44,10 +44,10 @@ BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; return FALSE; } -#ifdef _WINDOWS - LPCTSTR lpszStrCharset = _T("gbk"); +#ifdef _MSC_BUILD + LPCXSTR lpszStrCharset = _T("gbk"); #else - LPCTSTR lpszStrCharset = _T("utf8"); + LPCXSTR lpszStrCharset = _T("utf8"); #endif //连接数据库 _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APILog")); @@ -67,7 +67,7 @@ BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Destory() +XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Destory() { DBModule_IsErrorOccur = FALSE; @@ -87,7 +87,7 @@ BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Destory() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Create(LPCTSTR lpszTableName) +XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Create(LPCXSTR lpszTableName) { DBModule_IsErrorOccur = FALSE; @@ -97,7 +97,7 @@ BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Create(LPCTSTR lpszTableName) DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; return FALSE; } - TCHAR tszSQLStatement[10240]; + XCHAR tszSQLStatement[10240]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); _stprintf(tszSQLStatement, _T("CREATE TABLE IF NOT EXISTS `%s` (" @@ -132,7 +132,7 @@ BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Create(LPCTSTR lpszTableName) 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo) +XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo) { DBModule_IsErrorOccur = FALSE; @@ -142,7 +142,7 @@ BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLog DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; return FALSE; } - TCHAR tszSQLStatement[11240]; + XCHAR tszSQLStatement[11240]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); _stprintf(tszSQLStatement, _T("INSERT INTO `%s` (tszFileName,tszFuncName,nLogLine,nLogLevel,tszLogBuffer,tszLogTime) VALUES('%s','%s',%d,%d,'%s','%s')"), pSt_XLogInfo->tszTableName, pSt_XLogInfo->st_ProtocolLog.tszFileName, pSt_XLogInfo->st_ProtocolLog.tszFuncName, pSt_XLogInfo->st_ProtocolLog.nLogLine, pSt_XLogInfo->st_ProtocolLog.nLogLevel, pSt_XLogInfo->tszLogBuffer, pSt_XLogInfo->st_ProtocolLog.tszLogTimer); @@ -187,7 +187,7 @@ BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLog 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, int* pInt_ListCount, LPCTSTR lpszTableName, LPCTSTR lpszTimeStart, LPCTSTR lpszTimeEnd) +XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, int* pInt_ListCount, LPCXSTR lpszTableName, LPCXSTR lpszTimeStart, LPCXSTR lpszTimeEnd) { DBModule_IsErrorOccur = FALSE; @@ -202,7 +202,7 @@ BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_X __int64u nllLine = 0; __int64u nllRow = 0; - TCHAR tszSQLStatement[1024]; + XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); //名称为,消息名为必填 _stprintf_s(tszSQLStatement, _T("SELECT * FROM `%s` WHERE tszLogTime BETWEEN '%s' AND '%s'"), lpszTableName, lpszTimeStart, lpszTimeEnd); @@ -222,7 +222,7 @@ BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_X BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_XLogInfo, (int)nllLine, sizeof(XENGINE_XLOGINFO)); for (__int64u i = 0; i < nllLine; i++) { - TCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); + XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); _tcscpy((*pppSt_XLogInfo)[i]->tszTableName, lpszTableName); if (NULL != pptszResult[1]) @@ -266,7 +266,7 @@ BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_X 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Delete(LPCTSTR lpszTableName) +XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName) { DBModule_IsErrorOccur = FALSE; @@ -276,7 +276,7 @@ BOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Delete(LPCTSTR lpszTableName) DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; return FALSE; } - TCHAR tszSQLStatement[10240]; + XCHAR tszSQLStatement[10240]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); _stprintf(tszSQLStatement, _T("DROP TABLE IF EXISTS `%s`;"), lpszTableName); diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.h index 070c0d1..f28af3d 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.h @@ -18,12 +18,12 @@ public: CModuleDatabase_XLog(); ~CModuleDatabase_XLog(); public: - BOOL ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); - BOOL ModuleDatabase_XLog_Destory(); - BOOL ModuleDatabase_XLog_Create(LPCTSTR lpszTableName); - BOOL ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo); - BOOL ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, int* pInt_ListCount, LPCTSTR lpszTableName, LPCTSTR lpszTimeStart, LPCTSTR lpszTimeEnd); - BOOL ModuleDatabase_XLog_Delete(LPCTSTR lpszTableName); + XBOOL ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); + XBOOL ModuleDatabase_XLog_Destory(); + XBOOL ModuleDatabase_XLog_Create(LPCXSTR lpszTableName); + XBOOL ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo); + XBOOL ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, int* pInt_ListCount, LPCXSTR lpszTableName, LPCXSTR lpszTimeStart, LPCXSTR lpszTimeEnd); + XBOOL ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName); protected: private: XNETHANDLE xhDBSQL; diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp index 584fa0a..c4eacaa 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp @@ -34,7 +34,7 @@ CModuleDatabase_ZIPCode::~CModuleDatabase_ZIPCode() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) +XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { DBModule_IsErrorOccur = FALSE; @@ -44,10 +44,10 @@ BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECT DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; return FALSE; } -#ifdef _WINDOWS - LPCTSTR lpszStrCharset = _T("gbk"); +#ifdef _MSC_BUILD + LPCXSTR lpszStrCharset = _T("gbk"); #else - LPCTSTR lpszStrCharset = _T("utf8"); + LPCXSTR lpszStrCharset = _T("utf8"); #endif //连接数据库 _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APIInfo")); @@ -67,7 +67,7 @@ BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECT 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Destory() +XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Destory() { DBModule_IsErrorOccur = FALSE; @@ -87,7 +87,7 @@ BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Destory() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo) +XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo) { DBModule_IsErrorOccur = FALSE; @@ -95,7 +95,7 @@ BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINF __int64u nLine = 0; __int64u nRow = 0; XNETHANDLE xhTable = 0; - TCHAR tszSQLStatement[1024]; + XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); _stprintf(tszSQLStatement, _T("SELECT * FROM `AdministrativeArea` WHERE zip_code = %d"), pSt_ZIPInfo->nZipCode); @@ -111,7 +111,7 @@ BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINF DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; return FALSE; } - TCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); + XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); //三个级别 省->市->区/县 _tcscpy(pSt_ZIPInfo->tszPinYin, pptszResult[6]); pSt_ZIPInfo->nLevel = _ttoi(pptszResult[5]); @@ -152,7 +152,7 @@ BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINF 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo) +XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo) { DBModule_IsErrorOccur = FALSE; @@ -166,7 +166,7 @@ BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* __int64u nLine = 0; __int64u nRow = 0; XNETHANDLE xhTable = 0; - TCHAR tszSQLStatement[1024]; + XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); @@ -206,7 +206,7 @@ BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; return FALSE; } - TCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); + XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); pSt_ZIPInfo->nLevel = _ttoi(pptszResult[5]); pSt_ZIPInfo->nAreaCode = _ttoi(pptszResult[7]); pSt_ZIPInfo->nZipCode = _ttoi(pptszResult[8]); @@ -243,7 +243,7 @@ BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParentID, TCHAR* ptszParentStr, int* pInt_ParentID /* = NULL */) +XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParentID, XCHAR* ptszParentStr, int* pInt_ParentID /* = NULL */) { DBModule_IsErrorOccur = FALSE; @@ -257,7 +257,7 @@ BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParent __int64u nLine = 0; __int64u nRow = 0; XNETHANDLE xhTable = 0; - TCHAR tszSQLStatement[1024]; + XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); _stprintf(tszSQLStatement, _T("SELECT * FROM `AdministrativeArea` WHERE id = %d"), nParentID); @@ -273,7 +273,7 @@ BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParent DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; return FALSE; } - TCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); + XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); if (NULL != pInt_ParentID) { @@ -302,7 +302,7 @@ BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParent 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByName(LPCTSTR lpszName, int* pInt_ParentID /* = NULL */) +XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByName(LPCXSTR lpszName, int* pInt_ParentID /* = NULL */) { DBModule_IsErrorOccur = FALSE; @@ -316,7 +316,7 @@ BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByName(LPCTSTR l __int64u nLine = 0; __int64u nRow = 0; XNETHANDLE xhTable = 0; - TCHAR tszSQLStatement[1024]; + XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); _stprintf(tszSQLStatement, _T("SELECT * FROM `AdministrativeArea` WHERE name = '%s'"), lpszName); @@ -332,7 +332,7 @@ BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByName(LPCTSTR l DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; return FALSE; } - TCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); + XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); if (NULL != pInt_ParentID) { *pInt_ParentID = _ttoi(pptszResult[1]); diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.h index c44cd2a..2827c55 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.h @@ -18,13 +18,13 @@ public: CModuleDatabase_ZIPCode(); ~CModuleDatabase_ZIPCode(); public: - BOOL ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); - BOOL ModuleDatabase_ZIPCode_Destory(); - BOOL ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo); - BOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo); + XBOOL ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); + XBOOL ModuleDatabase_ZIPCode_Destory(); + XBOOL ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo); + XBOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo); protected: - BOOL ModuleDatabase_ZIPCode_QueryParentByID(int nParentID, TCHAR* ptszParentStr, int* pInt_ParentID = NULL); - BOOL ModuleDatabase_ZIPCode_QueryParentByName(LPCTSTR lpszName, int* pInt_ParentID = NULL); + XBOOL ModuleDatabase_ZIPCode_QueryParentByID(int nParentID, XCHAR* ptszParentStr, int* pInt_ParentID = NULL); + XBOOL ModuleDatabase_ZIPCode_QueryParentByName(LPCXSTR lpszName, int* pInt_ParentID = NULL); private: XNETHANDLE xhDBSQL; }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp b/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp index daed8c8..f130bae 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp @@ -1,9 +1,9 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -BOOL APIENTRY DllMain( HMODULE hModule, +XBOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, - LPVOID lpReserved + XPVOID lpReserved ) { switch (ul_reason_for_call) diff --git a/XEngine_Source/XEngine_ModuleDatabase/pch.cpp b/XEngine_Source/XEngine_ModuleDatabase/pch.cpp index 4c37266..9ae8a8e 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/pch.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/pch.cpp @@ -15,7 +15,7 @@ // History: *********************************************************************/ DWORD DBModule_IsErrorOccur = FALSE; -BOOL DBModule_dwErrorCode = 0; +XBOOL DBModule_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleDatabase_IDCard m_IDCard; CModuleDatabase_Bank m_Bank; @@ -35,76 +35,76 @@ extern "C" DWORD ModuleDB_GetLastError(int* pInt_SysError) /************************************************************************/ /* 导出的身份证地址操作函数 */ /************************************************************************/ -extern "C" BOOL ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) +extern "C" XBOOL ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) { return m_IDCard.ModuleDatabase_IDCard_Init(pSt_DBConnector); } -extern "C" BOOL ModuleDatabase_IDCard_Destory() +extern "C" XBOOL ModuleDatabase_IDCard_Destory() { return m_IDCard.ModuleDatabase_IDCard_Destory(); } -extern "C" BOOL ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION * pSt_IDRegion, XENGINE_IDCARDINFO * pSt_IDInfo) +extern "C" XBOOL ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION * pSt_IDRegion, XENGINE_IDCARDINFO * pSt_IDInfo) { return m_IDCard.ModuleDatabase_IDCard_QueryRegion(pSt_IDRegion, pSt_IDInfo); } /************************************************************************/ /* 导出的银行卡信息函数 */ /************************************************************************/ -extern "C" BOOL ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) +extern "C" XBOOL ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) { return m_Bank.ModuleDatabase_Bank_Init(pSt_DBConnector); } -extern "C" BOOL ModuleDatabase_Bank_Destory() +extern "C" XBOOL ModuleDatabase_Bank_Destory() { return m_Bank.ModuleDatabase_Bank_Destory(); } -extern "C" BOOL ModuleDatabase_Bank_Query(XENGINE_BANKINFO * pSt_BankInfo) +extern "C" XBOOL ModuleDatabase_Bank_Query(XENGINE_BANKINFO * pSt_BankInfo) { return m_Bank.ModuleDatabase_Bank_Query(pSt_BankInfo); } /************************************************************************/ /* 导出的邮编行政信息函数 */ /************************************************************************/ -extern "C" BOOL ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) +extern "C" XBOOL ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) { return m_ZIPCode.ModuleDatabase_ZIPCode_Init(pSt_DBConnector); } -extern "C" BOOL ModuleDatabase_ZIPCode_Destory() +extern "C" XBOOL ModuleDatabase_ZIPCode_Destory() { return m_ZIPCode.ModuleDatabase_ZIPCode_Destory(); } -extern "C" BOOL ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO * pSt_ZIPInfo) +extern "C" XBOOL ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO * pSt_ZIPInfo) { return m_ZIPCode.ModuleDatabase_ZIPCode_QueryZIPCode(pSt_ZIPInfo); } -extern "C" BOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO * pSt_ZIPInfo) +extern "C" XBOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO * pSt_ZIPInfo) { return m_ZIPCode.ModuleDatabase_ZIPCode_QueryName(pSt_ZIPInfo); } /************************************************************************/ /* 导出的日志服务数据库函数 */ /************************************************************************/ -extern "C" BOOL ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) +extern "C" XBOOL ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) { return m_XLog.ModuleDatabase_XLog_Init(pSt_DBConnector); } -extern "C" BOOL ModuleDatabase_XLog_Destory() +extern "C" XBOOL ModuleDatabase_XLog_Destory() { return m_XLog.ModuleDatabase_XLog_Destory(); } -extern "C" BOOL ModuleDatabase_XLog_Create(LPCTSTR lpszTableName) +extern "C" XBOOL ModuleDatabase_XLog_Create(LPCXSTR lpszTableName) { return m_XLog.ModuleDatabase_XLog_Create(lpszTableName); } -extern "C" BOOL ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO * pSt_XLogInfo) +extern "C" XBOOL ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO * pSt_XLogInfo) { return m_XLog.ModuleDatabase_XLog_Insert(pSt_XLogInfo); } -extern "C" BOOL ModuleDatabase_XLog_Query(XENGINE_XLOGINFO * **pppSt_XLogInfo, int* pInt_ListCount, LPCTSTR lpszTableName, LPCTSTR lpszTimeStart, LPCTSTR lpszTimeEnd) +extern "C" XBOOL ModuleDatabase_XLog_Query(XENGINE_XLOGINFO * **pppSt_XLogInfo, int* pInt_ListCount, LPCXSTR lpszTableName, LPCXSTR lpszTimeStart, LPCXSTR lpszTimeEnd) { return m_XLog.ModuleDatabase_XLog_Query(pppSt_XLogInfo, pInt_ListCount, lpszTableName, lpszTimeStart, lpszTimeEnd); } -extern "C" BOOL ModuleDatabase_XLog_Delete(LPCTSTR lpszTableName) +extern "C" XBOOL ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName) { return m_XLog.ModuleDatabase_XLog_Delete(lpszTableName); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/pch.h b/XEngine_Source/XEngine_ModuleDatabase/pch.h index b9b7143..99c3996 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/pch.h +++ b/XEngine_Source/XEngine_ModuleDatabase/pch.h @@ -44,7 +44,7 @@ // History: *********************************************************************/ extern DWORD DBModule_IsErrorOccur; -extern BOOL DBModule_dwErrorCode; +extern XBOOL DBModule_dwErrorCode; #ifdef _MSC_BUILD #pragma comment(lib,"Ws2_32") diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h index 8b3938b..e5ea0ed 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h @@ -13,9 +13,9 @@ ////////////////////////////////////////////////////////////////////////// // 导出回调函数 ////////////////////////////////////////////////////////////////////////// -typedef void(CALLBACK* CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT)(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, LPVOID lParam); +typedef void(CALLBACK* CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT)(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XPVOID lParam); //套接字测试回调:测试句柄,测试的服务器地址,测试的端口,当前测试次数,失败次数,成功次数,状态:0成功报告,1失败报告,2结束报告,自定义参数 -typedef void(CALLBACK* CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST)(XNETHANDLE xhToken, LPCSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, LPVOID lParam); +typedef void(CALLBACK* CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST)(XNETHANDLE xhToken, LPCSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, XPVOID lParam); ////////////////////////////////////////////////////////////////////////// // 导出数据结构 ////////////////////////////////////////////////////////////////////////// @@ -32,7 +32,7 @@ typedef struct { XENGINE_P2XPPEER_PROTOCOL st_PeerAddr; //P2P通信的时候使用的地址(客户方使用) P2XP_TIMER_INFOMATION st_PeerTimer; //节点时间信息 - BOOL bIsLogin; + XBOOL bIsLogin; }XENGINE_P2XP_PEERINFO, * LPNETENGINE_P2XP_PEERINFO; ////////////////////////////////////////////////////////////////////////// /// 导出的函数 @@ -54,7 +54,7 @@ extern "C" DWORD ModuleHelp_GetLastError(int *pInt_SysError = NULL); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO* pSt_IDInfo); +extern "C" XBOOL ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO* pSt_IDInfo); /******************************************************************** 函数名称:ModuleHelp_IDCard_CheckBirth 函数功能:检查身份证的校验码是否正确 @@ -68,7 +68,7 @@ extern "C" BOOL ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO* pSt_IDInfo); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo); +extern "C" XBOOL ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo); /************************************************************************/ /* 导出的语言转换帮助函数 */ /************************************************************************/ @@ -95,7 +95,7 @@ extern "C" BOOL ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_Language_ConvertZh(LPCTSTR lpszJsonFile, LPCTSTR lpszSourceStr, TCHAR* ptszDestStr); +extern "C" XBOOL ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lpszSourceStr, XCHAR* ptszDestStr); /******************************************************************** 函数名称:ModuleHelp_Translation_Convert 函数功能:翻译类型转换 @@ -114,7 +114,7 @@ extern "C" BOOL ModuleHelp_Language_ConvertZh(LPCTSTR lpszJsonFile, LPCTSTR lpsz 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, TCHAR* ptszTranslationType); +extern "C" XBOOL ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, XCHAR* ptszTranslationType); /************************************************************************/ /* 节点管理器导出函数 */ /************************************************************************/ @@ -141,7 +141,7 @@ extern "C" BOOL ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATI 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, LPVOID lParam = NULL); +extern "C" XBOOL ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, XPVOID lParam = NULL); /******************************************************************** 函数名称:ModuleHelp_P2PClient_Destory 函数功能:销毁 @@ -150,7 +150,7 @@ extern "C" BOOL ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODU 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_P2PClient_Destory(); +extern "C" XBOOL ModuleHelp_P2PClient_Destory(); /******************************************************************** 函数名称:ModuleHelp_P2PClient_Add 函数功能:添加一个客户到一个节点信息 @@ -164,7 +164,7 @@ extern "C" BOOL ModuleHelp_P2PClient_Destory(); 意思:是否添加成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO * pSt_PeerInfo); +extern "C" XBOOL ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO * pSt_PeerInfo); /******************************************************************** 函数名称:ModuleHelp_P2PClient_Get 函数功能:获取P2P节点对应信息 @@ -183,7 +183,7 @@ extern "C" BOOL ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO * pSt_PeerInfo); 意思:是否查找成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XP_PEERINFO * pSt_PeerInfo = NULL); +extern "C" XBOOL ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XP_PEERINFO * pSt_PeerInfo = NULL); /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetLan 函数功能:获取局域网IP地址列表 @@ -207,7 +207,7 @@ extern "C" BOOL ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProt 意思:是否成功 备注:参数二需要调用基础库的BaseLib_OperatorMemory_Free函数进行内存释放 *********************************************************************/ -extern "C" BOOL ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL * **pppSt_P2XPClient, int* pInt_ListCount); +extern "C" XBOOL ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL * **pppSt_P2XPClient, int* pInt_ListCount); /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetLList 函数功能:获取同一公网下所有局域网主IP列表 @@ -231,7 +231,7 @@ extern "C" BOOL ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PP 意思:是否成功 备注:参数二需要调用基础库的BaseLib_OperatorMemory_Free函数进行内存释放 *********************************************************************/ -extern "C" BOOL ModuleHelp_P2PClient_GetLList(LPCSTR lpszPubAddr, CHAR * **pppszP2XPClient, int* pInt_ListCount); +extern "C" XBOOL ModuleHelp_P2PClient_GetLList(LPCSTR lpszPubAddr, CHAR * **pppszP2XPClient, int* pInt_ListCount); /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetWList 函数功能:获取所有连接到的公网地址列表 @@ -250,7 +250,7 @@ extern "C" BOOL ModuleHelp_P2PClient_GetLList(LPCSTR lpszPubAddr, CHAR * **pppsz 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_P2PClient_GetWList(CHAR * **pppszP2XPClient, int* pInt_ListCount); +extern "C" XBOOL ModuleHelp_P2PClient_GetWList(CHAR * **pppszP2XPClient, int* pInt_ListCount); /******************************************************************** 函数名称:ModuleHelp_P2PClient_Delete 函数功能:删除一个指定的节点 @@ -264,7 +264,7 @@ extern "C" BOOL ModuleHelp_P2PClient_GetWList(CHAR * **pppszP2XPClient, int* pIn 意思:是否成功删除 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol); +extern "C" XBOOL ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol); /******************************************************************** 函数名称:ModuleHelp_P2PClient_DelAll 函数功能:清空节点列表数据 @@ -273,7 +273,7 @@ extern "C" BOOL ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PP 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_P2PClient_DelAll(); +extern "C" XBOOL ModuleHelp_P2PClient_DelAll(); /******************************************************************** 函数名称:ModuleHelp_P2PClient_Heart 函数功能:触发一次心跳 @@ -287,7 +287,7 @@ extern "C" BOOL ModuleHelp_P2PClient_DelAll(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol); +extern "C" XBOOL ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol); /************************************************************************/ /* 分布式锁导出函数 */ /************************************************************************/ @@ -304,7 +304,7 @@ extern "C" BOOL ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PPro 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_Locker_Create(XNETHANDLE* pxhToken); +extern "C" XBOOL ModuleHelp_Locker_Create(XNETHANDLE* pxhToken); /******************************************************************** 函数名称:ModuleHelp_Locker_OPen 函数功能:打开一个锁 @@ -318,7 +318,7 @@ extern "C" BOOL ModuleHelp_Locker_Create(XNETHANDLE* pxhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_Locker_OPen(XNETHANDLE xhToken); +extern "C" XBOOL ModuleHelp_Locker_OPen(XNETHANDLE xhToken); /******************************************************************** 函数名称:ModuleHelp_Locker_ReadLock 函数功能:读加锁 @@ -332,7 +332,7 @@ extern "C" BOOL ModuleHelp_Locker_OPen(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken); +extern "C" XBOOL ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken); /******************************************************************** 函数名称:ModuleHelp_Locker_ReadUNLock 函数功能:读解锁 @@ -346,7 +346,7 @@ extern "C" BOOL ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken); +extern "C" XBOOL ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken); /******************************************************************** 函数名称:ModuleHelp_Locker_WriteLock 函数功能:写加锁 @@ -360,7 +360,7 @@ extern "C" BOOL ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken); +extern "C" XBOOL ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken); /******************************************************************** 函数名称:ModuleHelp_Locker_WriteUNLock 函数功能:写解锁 @@ -374,7 +374,7 @@ extern "C" BOOL ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken); +extern "C" XBOOL ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken); /******************************************************************** 函数名称:ModuleHelp_Locker_Close 函数功能:关闭锁 @@ -388,7 +388,7 @@ extern "C" BOOL ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_Locker_Close(XNETHANDLE xhToken); +extern "C" XBOOL ModuleHelp_Locker_Close(XNETHANDLE xhToken); /************************************************************************/ /* 二维码导出函数 */ /************************************************************************/ @@ -410,7 +410,7 @@ extern "C" BOOL ModuleHelp_Locker_Close(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_QRCode_QREncodecFile(LPCTSTR lpszFileName, LPCTSTR lpszMsgBuffer); +extern "C" XBOOL ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer); /******************************************************************** 函数名称:ModuleHelp_QRCode_QREncodecMemory 函数功能:编码数据为二维码格式PNG图片 @@ -440,7 +440,7 @@ extern "C" BOOL ModuleHelp_QRCode_QREncodecFile(LPCTSTR lpszFileName, LPCTSTR lp 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_QRCode_QREncodecMemory(LPCTSTR lpszMsgBuffer, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszFmt); +extern "C" XBOOL ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt); /******************************************************************** 函数名称:ModuleHelp_QRCode_QRDecodecFile 函数功能:从文件解码二维码 @@ -479,7 +479,7 @@ extern "C" BOOL ModuleHelp_QRCode_QREncodecMemory(LPCTSTR lpszMsgBuffer, TCHAR* 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_QRCode_QRDecodecFile(LPCTSTR lpszFileName, TCHAR* ptszMsgBuffer, LPCTSTR lpszDetectProto, LPCTSTR lpszDetectModel, LPCTSTR lpszSrProto, LPCTSTR lpszSrModel); +extern "C" XBOOL ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); /******************************************************************** 函数名称:ModuleHelp_QRCode_QRDecodecMemory 函数功能:从内存解析二维码 @@ -523,7 +523,7 @@ extern "C" BOOL ModuleHelp_QRCode_QRDecodecFile(LPCTSTR lpszFileName, TCHAR* pts 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer, int nMsgLen, TCHAR* ptszMsgBuffer, LPCTSTR lpszDetectProto, LPCTSTR lpszDetectModel, LPCTSTR lpszSrProto, LPCTSTR lpszSrModel); +extern "C" XBOOL ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); /************************************************************************/ /* 网络测试导出函数 */ /************************************************************************/ @@ -555,7 +555,7 @@ extern "C" BOOL ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer, int nMsg 意思:成功返回连接的句柄,失败返回NULL 备注:链接测试函数,链接一次后就关闭 *********************************************************************/ -extern "C" BOOL ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_RECONNECT* pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, LPVOID lParam = NULL); +extern "C" XBOOL ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_RECONNECT* pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, XPVOID lParam = NULL); /******************************************************************** 函数名称:ModuleHelp_SocketTest_GetConnect 函数功能:获取是否在处理中 @@ -574,7 +574,7 @@ extern "C" BOOL ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEH 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, BOOL* pbRun); +extern "C" XBOOL ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, XBOOL* pbRun); /******************************************************************** 函数名称:ModuleHelp_SocketTest_StopConnect 函数功能:停止短连接测试 @@ -588,7 +588,7 @@ extern "C" BOOL ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, BOOL* pbRun 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken); +extern "C" XBOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken); /******************************************************************** 函数名称:ModuleHelp_SocketTest_StartDatas 函数功能:数据包测试函数 @@ -617,7 +617,7 @@ extern "C" BOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, BOOL bTCP = TRUE, LPVOID lParam = NULL); +extern "C" XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP = TRUE, XPVOID lParam = NULL); /******************************************************************** 函数名称:ModuleHelp_SocketTest_GetDatas 函数功能:获取是否在处理中 @@ -636,7 +636,7 @@ extern "C" BOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHEL 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, BOOL* pbRun); +extern "C" XBOOL ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, XBOOL* pbRun); /************************************************************************ 函数名称:ModuleHelp_SocketTest_DatasStop 函数功能:停止大数据包测试 @@ -650,4 +650,4 @@ extern "C" BOOL ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, BOOL* pbRun); 意思:是否成功 备注: ************************************************************************/ -extern "C" BOOL ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken); \ No newline at end of file +extern "C" XBOOL ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp index a5fc306..9b4fb69 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp @@ -34,7 +34,7 @@ CModuleHelp_IDCard::~CModuleHelp_IDCard() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO *pSt_IDInfo) +XBOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO *pSt_IDInfo) { ModuleHelp_IsErrorOccur = FALSE; @@ -77,7 +77,7 @@ BOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO *pSt_ID 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo) +XBOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo) { ModuleHelp_IsErrorOccur = FALSE; diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.h index a06d7c3..8f47379 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.h @@ -18,7 +18,7 @@ public: CModuleHelp_IDCard(); ~CModuleHelp_IDCard(); public: - BOOL ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO* pSt_IDInfo); - BOOL ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo); + XBOOL ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO* pSt_IDInfo); + XBOOL ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo); private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp index 9326dbd..10f92ce 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp @@ -44,7 +44,7 @@ CModuleHelp_Language::~CModuleHelp_Language() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_Language::ModuleHelp_Language_ConvertZh(LPCTSTR lpszJsonFile, LPCTSTR lpszSourceStr, TCHAR* ptszDestStr) +XBOOL CModuleHelp_Language::ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lpszSourceStr, XCHAR* ptszDestStr) { ModuleHelp_IsErrorOccur = FALSE; @@ -89,7 +89,7 @@ BOOL CModuleHelp_Language::ModuleHelp_Language_ConvertZh(LPCTSTR lpszJsonFile, L 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_Language::ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, TCHAR* ptszTranslationType) +XBOOL CModuleHelp_Language::ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, XCHAR* ptszTranslationType) { ModuleHelp_IsErrorOccur = FALSE; diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.h index 6c1b297..f906dcf 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.h @@ -17,7 +17,7 @@ public: CModuleHelp_Language(); ~CModuleHelp_Language(); public: - BOOL ModuleHelp_Language_ConvertZh(LPCTSTR lpszJsonFile, LPCTSTR lpszSourceStr, TCHAR* ptszDestStr); - BOOL ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, TCHAR* ptszTranslationType); + XBOOL ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lpszSourceStr, XCHAR* ptszDestStr); + XBOOL ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, XCHAR* ptszTranslationType); private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp index 2323ba6..c0cc4f5 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp @@ -34,7 +34,7 @@ CModuleHelp_Locker::~CModuleHelp_Locker() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_Locker::ModuleHelp_Locker_Create(XNETHANDLE* pxhToken) +XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Create(XNETHANDLE* pxhToken) { ModuleHelp_IsErrorOccur = FALSE; @@ -73,7 +73,7 @@ BOOL CModuleHelp_Locker::ModuleHelp_Locker_Create(XNETHANDLE* pxhToken) 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_Locker::ModuleHelp_Locker_OPen(XNETHANDLE xhToken) +XBOOL CModuleHelp_Locker::ModuleHelp_Locker_OPen(XNETHANDLE xhToken) { ModuleHelp_IsErrorOccur = FALSE; @@ -116,7 +116,7 @@ BOOL CModuleHelp_Locker::ModuleHelp_Locker_OPen(XNETHANDLE xhToken) 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken) +XBOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken) { ModuleHelp_IsErrorOccur = FALSE; @@ -157,7 +157,7 @@ BOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken) 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken) +XBOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken) { ModuleHelp_IsErrorOccur = FALSE; @@ -197,7 +197,7 @@ BOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken) 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken) +XBOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken) { ModuleHelp_IsErrorOccur = FALSE; @@ -237,7 +237,7 @@ BOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken) 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken) +XBOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken) { ModuleHelp_IsErrorOccur = FALSE; @@ -277,7 +277,7 @@ BOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken) 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_Locker::ModuleHelp_Locker_Close(XNETHANDLE xhToken) +XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Close(XNETHANDLE xhToken) { ModuleHelp_IsErrorOccur = FALSE; diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.h index e43366b..22a7dfe 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.h @@ -29,13 +29,13 @@ public: CModuleHelp_Locker(); ~CModuleHelp_Locker(); public: - BOOL ModuleHelp_Locker_Create(XNETHANDLE* pxhToken); - BOOL ModuleHelp_Locker_OPen(XNETHANDLE xhToken); - BOOL ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken); - BOOL ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken); - BOOL ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken); - BOOL ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken); - BOOL ModuleHelp_Locker_Close(XNETHANDLE xhToken); + XBOOL ModuleHelp_Locker_Create(XNETHANDLE* pxhToken); + XBOOL ModuleHelp_Locker_OPen(XNETHANDLE xhToken); + XBOOL ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken); + XBOOL ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken); + XBOOL ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken); + XBOOL ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken); + XBOOL ModuleHelp_Locker_Close(XNETHANDLE xhToken); private: shared_mutex st_Locker; private: diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp index 058a81f..04ea097 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp @@ -43,7 +43,7 @@ CModuleHelp_P2PClient::~CModuleHelp_P2PClient() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, LPVOID lParam /* = NULL */) +XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, XPVOID lParam /* = NULL */) { ModuleHelp_IsErrorOccur = FALSE; @@ -69,7 +69,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_API 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Destory() +XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Destory() { ModuleHelp_IsErrorOccur = FALSE; @@ -96,7 +96,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Destory() 意思:是否添加成功 备注: *********************************************************************/ -BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt_PeerInfo) +XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt_PeerInfo) { ModuleHelp_IsErrorOccur = FALSE; @@ -109,7 +109,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt_ stl_MapPrivate.insert(make_pair(pSt_PeerInfo->st_PeerAddr.tszConnectAddr, *pSt_PeerInfo)); //获取私有网络的路由地址 XENGINE_LIBADDR st_LibAddr; - TCHAR tszPrivateAddr[64]; + XCHAR tszPrivateAddr[64]; memset(tszPrivateAddr, '\0', sizeof(tszPrivateAddr)); memset(&st_LibAddr, '\0', sizeof(XENGINE_LIBADDR)); @@ -131,7 +131,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt_ { //找到了这个公网的地址 XENGINE_LIBADDR st_LibAddr; - TCHAR tszPrivateAddr[64]; + XCHAR tszPrivateAddr[64]; memset(tszPrivateAddr, '\0', sizeof(tszPrivateAddr)); memset(&st_LibAddr, '\0', sizeof(XENGINE_LIBADDR)); @@ -186,7 +186,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt_ 意思:是否查找成功 备注: *********************************************************************/ -BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL *pSt_P2PProtocol, XENGINE_P2XP_PEERINFO* pSt_PeerInfo /* = NULL */) +XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL *pSt_P2PProtocol, XENGINE_P2XP_PEERINFO* pSt_PeerInfo /* = NULL */) { ModuleHelp_IsErrorOccur = FALSE; @@ -208,7 +208,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL * } //转换地址 XENGINE_LIBADDR st_LibAddr; - TCHAR tszPrivateAddr[64]; + XCHAR tszPrivateAddr[64]; memset(tszPrivateAddr, '\0', sizeof(tszPrivateAddr)); memset(&st_LibAddr, '\0', sizeof(XENGINE_LIBADDR)); @@ -263,7 +263,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL * 意思:是否成功 备注:参数二需要调用基础库的BaseLib_OperatorMemory_Free函数进行内存释放 *********************************************************************/ -BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL*** pppSt_P2XPClient, int* pInt_ListCount) +XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL*** pppSt_P2XPClient, int* pInt_ListCount) { ModuleHelp_IsErrorOccur = FALSE; @@ -284,7 +284,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCO return FALSE; } XENGINE_LIBADDR st_LibAddr; - TCHAR tszPrivateAddr[64]; + XCHAR tszPrivateAddr[64]; memset(tszPrivateAddr, '\0', sizeof(tszPrivateAddr)); memset(&st_LibAddr, '\0', sizeof(XENGINE_LIBADDR)); @@ -366,7 +366,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCO 意思:是否成功 备注:参数二需要调用基础库的BaseLib_OperatorMemory_Free函数进行内存释放 *********************************************************************/ -BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLList(LPCTSTR lpszPubAddr, TCHAR*** pppszP2XPClient, int* pInt_ListCount) +XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR*** pppszP2XPClient, int* pInt_ListCount) { ModuleHelp_IsErrorOccur = FALSE; @@ -413,7 +413,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLList(LPCTSTR lpszPubAddr, T 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetWList(TCHAR*** pppszP2XPClient, int* pInt_ListCount) +XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetWList(XCHAR*** pppszP2XPClient, int* pInt_ListCount) { ModuleHelp_IsErrorOccur = FALSE; @@ -454,7 +454,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetWList(TCHAR*** pppszP2XPClie 意思:是否成功删除 备注: *********************************************************************/ -BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol) +XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol) { ModuleHelp_IsErrorOccur = FALSE; //查找公网地址 @@ -462,7 +462,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCO if (stl_MapPubIteartor != stl_MapClients.end()) { XENGINE_LIBADDR st_LibAddr; - TCHAR tszPrivateAddr[64]; + XCHAR tszPrivateAddr[64]; memset(tszPrivateAddr, '\0', sizeof(tszPrivateAddr)); memset(&st_LibAddr, '\0', sizeof(XENGINE_LIBADDR)); @@ -502,7 +502,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCO 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_DelAll() +XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_DelAll() { ModuleHelp_IsErrorOccur = FALSE; @@ -525,7 +525,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_DelAll() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol) +XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol) { ModuleHelp_IsErrorOccur = FALSE; @@ -547,7 +547,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL } //转换地址 XENGINE_LIBADDR st_LibAddr; - TCHAR tszPrivateAddr[64]; + XCHAR tszPrivateAddr[64]; memset(tszPrivateAddr, '\0', sizeof(tszPrivateAddr)); memset(&st_LibAddr, '\0', sizeof(XENGINE_LIBADDR)); @@ -578,7 +578,7 @@ BOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// -XHTHREAD CALLBACK CModuleHelp_P2PClient::ModuleHelp_P2PClient_Thread(LPVOID lParam) +XHTHREAD CALLBACK CModuleHelp_P2PClient::ModuleHelp_P2PClient_Thread(XPVOID lParam) { CModuleHelp_P2PClient* pClass_This = (CModuleHelp_P2PClient*)lParam; list stl_ListRemove; diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.h index f2ba48a..d20b4c4 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.h @@ -16,22 +16,22 @@ public: CModuleHelp_P2PClient(); ~CModuleHelp_P2PClient(); public: - BOOL ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, LPVOID lParam = NULL); - BOOL ModuleHelp_P2PClient_Destory(); - BOOL ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt_PeerInfo); - BOOL ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XENGINE_P2XP_PEERINFO* pSt_PeerInfo = NULL); - BOOL ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL*** pppSt_P2XPClient, int* pInt_ListCount); - BOOL ModuleHelp_P2PClient_GetLList(LPCTSTR lpszPubAddr, TCHAR*** pppszP2XPClient, int* pInt_ListCount); - BOOL ModuleHelp_P2PClient_GetWList(TCHAR*** pppszP2XPClient, int* pInt_ListCount); - BOOL ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol); - BOOL ModuleHelp_P2PClient_DelAll(); - BOOL ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol); + XBOOL ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, XPVOID lParam = NULL); + XBOOL ModuleHelp_P2PClient_Destory(); + XBOOL ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt_PeerInfo); + XBOOL ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XENGINE_P2XP_PEERINFO* pSt_PeerInfo = NULL); + XBOOL ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL*** pppSt_P2XPClient, int* pInt_ListCount); + XBOOL ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR*** pppszP2XPClient, int* pInt_ListCount); + XBOOL ModuleHelp_P2PClient_GetWList(XCHAR*** pppszP2XPClient, int* pInt_ListCount); + XBOOL ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol); + XBOOL ModuleHelp_P2PClient_DelAll(); + XBOOL ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol); protected: - static XHTHREAD CALLBACK ModuleHelp_P2PClient_Thread(LPVOID lParam); + static XHTHREAD CALLBACK ModuleHelp_P2PClient_Thread(XPVOID lParam); private: - BOOL m_bIsRun; + XBOOL m_bIsRun; int m_nTimeout; - LPVOID m_lParam; + XPVOID m_lParam; CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT lpCall_P2PClient; private: shared_mutex st_Locker; diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp index 89442ed..4099d82 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp @@ -41,7 +41,7 @@ CModuleHelp_QRCode::~CModuleHelp_QRCode() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecFile(LPCTSTR lpszFileName, LPCTSTR lpszMsgBuffer) +XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer) { ModuleHelp_IsErrorOccur = FALSE; @@ -125,7 +125,7 @@ BOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecFile(LPCTSTR lpszFileName, L 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCTSTR lpszMsgBuffer, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszFmt) +XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt) { ModuleHelp_IsErrorOccur = FALSE; @@ -221,7 +221,7 @@ BOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCTSTR lpszMsgBuffer 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCTSTR lpszFileName, TCHAR* ptszMsgBuffer, LPCTSTR lpszDetectProto, LPCTSTR lpszDetectModel, LPCTSTR lpszSrProto, LPCTSTR lpszSrModel) +XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) { ModuleHelp_IsErrorOccur = FALSE; @@ -317,7 +317,7 @@ BOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCTSTR lpszFileName, T 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer, int nMsgLen, TCHAR* ptszMsgBuffer, LPCTSTR lpszDetectProto, LPCTSTR lpszDetectModel, LPCTSTR lpszSrProto, LPCTSTR lpszSrModel) +XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) { ModuleHelp_IsErrorOccur = FALSE; diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.h index 417d86d..982513a 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.h @@ -17,10 +17,10 @@ public: CModuleHelp_QRCode(); ~CModuleHelp_QRCode(); public: - BOOL ModuleHelp_QRCode_QREncodecFile(LPCTSTR lpszFileName, LPCTSTR lpszMsgBuffer); - BOOL ModuleHelp_QRCode_QREncodecMemory(LPCTSTR lpszMsgBuffer, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszFmt); - BOOL ModuleHelp_QRCode_QRDecodecFile(LPCTSTR lpszFileName, TCHAR* ptszMsgBuffer, LPCTSTR lpszDetectProto, LPCTSTR lpszDetectModel, LPCTSTR lpszSrProto, LPCTSTR lpszSrModel); - BOOL ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer, int nMsgLen, TCHAR* ptszMsgBuffer, LPCTSTR lpszDetectProto, LPCTSTR lpszDetectModel, LPCTSTR lpszSrProto, LPCTSTR lpszSrModel); + XBOOL ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer); + XBOOL ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt); + XBOOL ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); + XBOOL ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); protected: private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp index 81da20e..9523398 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp @@ -48,7 +48,7 @@ CModuleHelp_SocketTest::~CModuleHelp_SocketTest() 意思:成功返回连接的句柄,失败返回NULL 备注:链接测试函数,链接一次后就关闭 *********************************************************************/ -BOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_RECONNECT* pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, LPVOID lParam /* = NULL */) +XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_RECONNECT* pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, XPVOID lParam /* = NULL */) { ModuleHelp_IsErrorOccur = FALSE; @@ -104,7 +104,7 @@ BOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhT 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, BOOL* pbRun) +XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, XBOOL* pbRun) { ModuleHelp_IsErrorOccur = FALSE; @@ -134,7 +134,7 @@ BOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken) +XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken) { ModuleHelp_IsErrorOccur = FALSE; @@ -147,7 +147,7 @@ BOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToke if (NULL != stl_MapIterator->second->lParam) { - delete (TCHAR*)stl_MapIterator->second->lParam; + delete (XCHAR*)stl_MapIterator->second->lParam; stl_MapIterator->second->lParam = NULL; } @@ -187,7 +187,7 @@ BOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToke 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, BOOL bTCP /* = TRUE */, LPVOID lParam /* = NULL */) +XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP /* = TRUE */, XPVOID lParam /* = NULL */) { ModuleHelp_IsErrorOccur = FALSE; @@ -261,7 +261,7 @@ BOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhTok 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, BOOL* pbRun) +XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, XBOOL* pbRun) { ModuleHelp_IsErrorOccur = FALSE; @@ -291,7 +291,7 @@ BOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, 意思:是否成功 备注: ************************************************************************/ -BOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken) +XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken) { ModuleHelp_IsErrorOccur = FALSE; @@ -306,7 +306,7 @@ BOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken) if (NULL != stl_MapIterator->second->lParam) { - delete (TCHAR*)stl_MapIterator->second->lParam; + delete (XCHAR*)stl_MapIterator->second->lParam; stl_MapIterator->second->lParam = NULL; } @@ -321,7 +321,7 @@ BOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken) ////////////////////////////////////////////////////////////////////////// // 线程函数 ////////////////////////////////////////////////////////////////////////// -XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadConn(LPVOID lParam) +XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadConn(XPVOID lParam) { MODULEHELP_SOCKETTEST_CONNINFO* pSt_ReConnect = (MODULEHELP_SOCKETTEST_CONNINFO*)lParam; __int64x nFailed = 0; @@ -339,7 +339,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadConn(LPVOID lParam) break; } //设置TCP - SOCKET hSocket = INVALID_SOCKET; + XSOCKET hSocket = INVALID_SOCKET; if (XClient_TCPSelect_Create(&hSocket, pSt_ReConnect->st_SocketConn.tszAddr, pSt_ReConnect->st_SocketConn.nPort, 100)) { pSt_ReConnect->lpCall_ReConnect(pSt_ReConnect->xhToken, pSt_ReConnect->st_SocketConn.tszAddr, pSt_ReConnect->st_SocketConn.nPort, ++nNumber, nFailed, ++nSucess, 0, pSt_ReConnect->lParam); @@ -358,7 +358,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadConn(LPVOID lParam) pSt_ReConnect->bIsRun = FALSE; return 0; } -XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(LPVOID lParam) +XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) { MODULEHELP_SOCKETTEST_DATAINFO* pSt_DataSocket = (MODULEHELP_SOCKETTEST_DATAINFO*)lParam; __int64x nFailed = 0; @@ -376,7 +376,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(LPVOID lParam) break; } //发送数据 - BOOL bRet = FALSE; + XBOOL bRet = FALSE; if (pSt_DataSocket->bIsTCP) { bRet = XClient_TCPSelect_SendMsg(pSt_DataSocket->hSocket, pSt_DataSocket->st_SocketData.tszSDBuffer, pSt_DataSocket->st_SocketData.nSDLen); @@ -395,7 +395,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(LPVOID lParam) { //接受数据 int nMsgLen = pSt_DataSocket->st_SocketData.nRVLen; - TCHAR tszMsgBuffer[4096]; + XCHAR tszMsgBuffer[4096]; memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); if (pSt_DataSocket->bIsTCP) diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h index 8daa663..88b51e5 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h @@ -14,22 +14,22 @@ typedef struct { MODULEHELP_SOCKETTEST_DATAS st_SocketData; XNETHANDLE xhToken; //句柄 - SOCKET hSocket; - BOOL bIsTCP; - BOOL bIsRun; //是否运行 + XSOCKET hSocket; + XBOOL bIsTCP; + XBOOL bIsRun; //是否运行 shared_ptr pSTDThread; - LPVOID lParam; + XPVOID lParam; CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST lpCall_TestDatas; }MODULEHELP_SOCKETTEST_DATAINFO; typedef struct { MODULEHELP_SOCKETTEST_RECONNECT st_SocketConn; XNETHANDLE xhToken; //句柄 - BOOL bIsRun; //是否运行 + XBOOL bIsRun; //是否运行 shared_ptr pSTDThread; //线程句柄 - LPVOID lParam; + XPVOID lParam; CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST lpCall_ReConnect; }MODULEHELP_SOCKETTEST_CONNINFO; @@ -41,16 +41,16 @@ public: ~CModuleHelp_SocketTest(); public: //链接测试 - BOOL ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_RECONNECT* pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, LPVOID lParam = NULL); - BOOL ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, BOOL* pbRun); - BOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken); + XBOOL ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_RECONNECT* pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, XPVOID lParam = NULL); + XBOOL ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, XBOOL* pbRun); + XBOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken); //数据包压力测试 - BOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, BOOL bTCP = TRUE, LPVOID lParam = NULL); - BOOL ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, BOOL* pbRun); - BOOL ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken); + XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP = TRUE, XPVOID lParam = NULL); + XBOOL ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, XBOOL* pbRun); + XBOOL ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken); protected: - static XHTHREAD ModuleHelp_SocketTest_ThreadConn(LPVOID lParam); //反复连接测试线程 - static XHTHREAD ModuleHelp_SocketTest_ThreadData(LPVOID lParam); //大数据包长连接测试 + static XHTHREAD ModuleHelp_SocketTest_ThreadConn(XPVOID lParam); //反复连接测试线程 + static XHTHREAD ModuleHelp_SocketTest_ThreadData(XPVOID lParam); //大数据包长连接测试 private: shared_mutex st_LockConn; shared_mutex st_LockData; diff --git a/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp b/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp index daed8c8..f130bae 100644 --- a/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp @@ -1,9 +1,9 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -BOOL APIENTRY DllMain( HMODULE hModule, +XBOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, - LPVOID lpReserved + XPVOID lpReserved ) { switch (ul_reason_for_call) diff --git a/XEngine_Source/XEngine_ModuleHelp/pch.cpp b/XEngine_Source/XEngine_ModuleHelp/pch.cpp index eb5d864..de58592 100644 --- a/XEngine_Source/XEngine_ModuleHelp/pch.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/pch.cpp @@ -16,7 +16,7 @@ // Purpose: 导出函数实现 // History: *********************************************************************/ -BOOL ModuleHelp_IsErrorOccur = FALSE; +XBOOL ModuleHelp_IsErrorOccur = FALSE; DWORD ModuleHelp_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleHelp_IDCard m_IDCard; @@ -39,142 +39,142 @@ extern "C" DWORD ModuleHelp_GetLastError(int* pInt_SysError) /************************************************************************/ /* 导出的身份证帮助函数 */ /************************************************************************/ -extern "C" BOOL ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO * pSt_IDInfo) +extern "C" XBOOL ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO * pSt_IDInfo) { return m_IDCard.ModuleHelp_IDCard_CheckBirth(pSt_IDInfo); } -extern "C" BOOL ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO * pSt_IDInfo) +extern "C" XBOOL ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO * pSt_IDInfo) { return m_IDCard.ModuleHelp_IDCard_CheckSum(pSt_IDInfo); } /************************************************************************/ /* 导出的语言转换帮助函数 */ /************************************************************************/ -extern "C" BOOL ModuleHelp_Language_ConvertZh(LPCTSTR lpszJsonFile, LPCTSTR lpszSourceStr, TCHAR * ptszDestStr) +extern "C" XBOOL ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lpszSourceStr, XCHAR * ptszDestStr) { return m_Language.ModuleHelp_Language_ConvertZh(lpszJsonFile, lpszSourceStr, ptszDestStr); } -extern "C" BOOL ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, TCHAR * ptszTranslationType) +extern "C" XBOOL ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, XCHAR * ptszTranslationType) { return m_Language.ModuleHelp_Translation_Convert(enTranslationType, ptszTranslationType); } /************************************************************************/ /* 导出的P2P客户端帮助函数 */ /************************************************************************/ -extern "C" BOOL ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, LPVOID lParam) +extern "C" XBOOL ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, XPVOID lParam) { return m_P2PClient.ModuleHelp_P2PClient_Init(nTimeout, fpCall_P2PClient, lParam); } -extern "C" BOOL ModuleHelp_P2PClient_Destory() +extern "C" XBOOL ModuleHelp_P2PClient_Destory() { return m_P2PClient.ModuleHelp_P2PClient_Destory(); } -extern "C" BOOL ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO * pSt_PeerInfo) +extern "C" XBOOL ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO * pSt_PeerInfo) { return m_P2PClient.ModuleHelp_P2PClient_Add(pSt_PeerInfo); } -extern "C" BOOL ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XP_PEERINFO * pSt_PeerInfo /* = NULL */) +extern "C" XBOOL ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XP_PEERINFO * pSt_PeerInfo /* = NULL */) { return m_P2PClient.ModuleHelp_P2PClient_Get(pSt_P2PProtocol, pSt_PeerInfo); } -extern "C" BOOL ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL * **pppSt_P2XPClient, int* pInt_ListCount) +extern "C" XBOOL ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL * **pppSt_P2XPClient, int* pInt_ListCount) { return m_P2PClient.ModuleHelp_P2PClient_GetLan(pSt_P2PProtocol, pppSt_P2XPClient, pInt_ListCount); } -extern "C" BOOL ModuleHelp_P2PClient_GetLList(LPCTSTR lpszPubAddr, TCHAR * **pppszP2XPClient, int* pInt_ListCount) +extern "C" XBOOL ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR * **pppszP2XPClient, int* pInt_ListCount) { return m_P2PClient.ModuleHelp_P2PClient_GetLList(lpszPubAddr, pppszP2XPClient, pInt_ListCount); } -extern "C" BOOL ModuleHelp_P2PClient_GetWList(TCHAR * **pppszP2XPClient, int* pInt_ListCount) +extern "C" XBOOL ModuleHelp_P2PClient_GetWList(XCHAR * **pppszP2XPClient, int* pInt_ListCount) { return m_P2PClient.ModuleHelp_P2PClient_GetWList(pppszP2XPClient, pInt_ListCount); } -extern "C" BOOL ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol) +extern "C" XBOOL ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol) { return m_P2PClient.ModuleHelp_P2PClient_Delete(pSt_P2PProtocol); } -extern "C" BOOL ModuleHelp_P2PClient_DelAll() +extern "C" XBOOL ModuleHelp_P2PClient_DelAll() { return m_P2PClient.ModuleHelp_P2PClient_DelAll(); } -extern "C" BOOL ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol) +extern "C" XBOOL ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol) { return m_P2PClient.ModuleHelp_P2PClient_Heart(pSt_P2PProtocol); } /************************************************************************/ /* 分布式锁导出函数 */ /************************************************************************/ -extern "C" BOOL ModuleHelp_Locker_Create(XNETHANDLE * pxhToken) +extern "C" XBOOL ModuleHelp_Locker_Create(XNETHANDLE * pxhToken) { return m_Locker.ModuleHelp_Locker_Create(pxhToken); } -extern "C" BOOL ModuleHelp_Locker_OPen(XNETHANDLE xhToken) +extern "C" XBOOL ModuleHelp_Locker_OPen(XNETHANDLE xhToken) { return m_Locker.ModuleHelp_Locker_OPen(xhToken); } -extern "C" BOOL ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken) +extern "C" XBOOL ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken) { return m_Locker.ModuleHelp_Locker_ReadLock(xhToken); } -extern "C" BOOL ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken) +extern "C" XBOOL ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken) { return m_Locker.ModuleHelp_Locker_ReadUNLock(xhToken); } -extern "C" BOOL ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken) +extern "C" XBOOL ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken) { return m_Locker.ModuleHelp_Locker_WriteLock(xhToken); } -extern "C" BOOL ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken) +extern "C" XBOOL ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken) { return m_Locker.ModuleHelp_Locker_WriteUNLock(xhToken); } -extern "C" BOOL ModuleHelp_Locker_Close(XNETHANDLE xhToken) +extern "C" XBOOL ModuleHelp_Locker_Close(XNETHANDLE xhToken) { return m_Locker.ModuleHelp_Locker_Close(xhToken); } /************************************************************************/ /* 二维码导出函数 */ /************************************************************************/ -extern "C" BOOL ModuleHelp_QRCode_QREncodecFile(LPCTSTR lpszFileName, LPCTSTR lpszMsgBuffer) +extern "C" XBOOL ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer) { return m_QRCode.ModuleHelp_QRCode_QREncodecFile(lpszFileName, lpszMsgBuffer); } -extern "C" BOOL ModuleHelp_QRCode_QREncodecMemory(LPCTSTR lpszMsgBuffer, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszFmt) +extern "C" XBOOL ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt) { return m_QRCode.ModuleHelp_QRCode_QREncodecMemory(lpszMsgBuffer, ptszMsgBuffer, pInt_MsgLen, lpszFmt); } -extern "C" BOOL ModuleHelp_QRCode_QRDecodecFile(LPCTSTR lpszFileName, TCHAR * ptszMsgBuffer, LPCTSTR lpszDetectProto, LPCTSTR lpszDetectModel, LPCTSTR lpszSrProto, LPCTSTR lpszSrModel) +extern "C" XBOOL ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR * ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) { return m_QRCode.ModuleHelp_QRCode_QRDecodecFile(lpszFileName, ptszMsgBuffer, lpszDetectProto, lpszDetectModel, lpszSrProto, lpszSrModel); } -extern "C" BOOL ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer, int nMsgLen, TCHAR * ptszMsgBuffer, LPCTSTR lpszDetectProto, LPCTSTR lpszDetectModel, LPCTSTR lpszSrProto, LPCTSTR lpszSrModel) +extern "C" XBOOL ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer, int nMsgLen, XCHAR * ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) { return m_QRCode.ModuleHelp_QRCode_QRDecodecMemory(lpszMsgBuffer, nMsgLen, ptszMsgBuffer, lpszDetectProto, lpszDetectModel, lpszSrProto, lpszSrModel); } /************************************************************************/ /* 网络测试导出函数 */ /************************************************************************/ -extern "C" BOOL ModuleHelp_SocketTest_StartConnect(XNETHANDLE * pxhToken, MODULEHELP_SOCKETTEST_RECONNECT * pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, LPVOID lParam) +extern "C" XBOOL ModuleHelp_SocketTest_StartConnect(XNETHANDLE * pxhToken, MODULEHELP_SOCKETTEST_RECONNECT * pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, XPVOID lParam) { return m_SocketTest.ModuleHelp_SocketTest_StartConnect(pxhToken, pSt_ReConnect, fpCall_ReConnect, lParam); } -extern "C" BOOL ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, BOOL * pbRun) +extern "C" XBOOL ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, XBOOL * pbRun) { return m_SocketTest.ModuleHelp_SocketTest_GetConnect(xhToken, pbRun); } -extern "C" BOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken) +extern "C" XBOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken) { return m_SocketTest.ModuleHelp_SocketTest_StopConnect(xhToken); } -extern "C" BOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE * pxhToken, MODULEHELP_SOCKETTEST_DATAS * pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, BOOL bTCP, LPVOID lParam) +extern "C" XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE * pxhToken, MODULEHELP_SOCKETTEST_DATAS * pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP, XPVOID lParam) { return m_SocketTest.ModuleHelp_SocketTest_StartDatas(pxhToken, pSt_SocketDatas, fpCall_DataTest, bTCP, lParam); } -extern "C" BOOL ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, BOOL * pbRun) +extern "C" XBOOL ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, XBOOL * pbRun) { return m_SocketTest.ModuleHelp_SocketTest_GetDatas(xhToken, pbRun); } -extern "C" BOOL ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken) +extern "C" XBOOL ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken) { return m_SocketTest.ModuleHelp_SocketTest_StopDatas(xhToken); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/pch.h b/XEngine_Source/XEngine_ModuleHelp/pch.h index 8b7a4c8..7a2282f 100644 --- a/XEngine_Source/XEngine_ModuleHelp/pch.h +++ b/XEngine_Source/XEngine_ModuleHelp/pch.h @@ -51,7 +51,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern BOOL ModuleHelp_IsErrorOccur; +extern XBOOL ModuleHelp_IsErrorOccur; extern DWORD ModuleHelp_dwErrorCode; #ifdef _MSC_BUILD diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Define.h b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Define.h index 2e9f9cf..8818731 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Define.h +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Define.h @@ -25,7 +25,7 @@ extern "C" DWORD ModulePlugin_GetLastError(int* pInt_SysError = NULL); 意思:是否成功初始化 备注: *********************************************************************/ -extern "C" BOOL ModulePlugin_LibCore_Init(); +extern "C" XBOOL ModulePlugin_LibCore_Init(); /******************************************************************** 函数名称:ModulePlugin_LibCore_Push 函数功能:添加一个标准的插件到插件框架中 @@ -49,7 +49,7 @@ extern "C" BOOL ModulePlugin_LibCore_Init(); 意思:是否成功添加 备注: *********************************************************************/ -extern "C" BOOL ModulePlugin_LibCore_Push(XNETHANDLE * pxhNet, LPCSTR lpszPluginFile, LPVOID lParam = NULL); +extern "C" XBOOL ModulePlugin_LibCore_Push(XNETHANDLE * pxhNet, LPCSTR lpszPluginFile, XPVOID lParam = NULL); /******************************************************************** 函数名称:ModulePlugin_LibCore_Exec 函数功能:执行一次 @@ -98,7 +98,7 @@ extern "C" BOOL ModulePlugin_LibCore_Push(XNETHANDLE * pxhNet, LPCSTR lpszPlugin 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBufer = NULL, int nMsgLen = 0); +extern "C" XBOOL ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer = NULL, int nMsgLen = 0); /******************************************************************** 函数名称:ModulePlugin_LibCore_Destroy 函数功能:销毁插件核心并且清理资源 @@ -107,7 +107,7 @@ extern "C" BOOL ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, TCHAR * **pppHDRL 意思:是否成功销毁 备注: *********************************************************************/ -extern "C" BOOL ModulePlugin_LibCore_Destroy(); +extern "C" XBOOL ModulePlugin_LibCore_Destroy(); /********************************************************************************* * LUA插件框架导出函数定义 * *********************************************************************************/ @@ -119,7 +119,7 @@ extern "C" BOOL ModulePlugin_LibCore_Destroy(); 意思:是否成功初始化 备注: *********************************************************************/ -extern "C" BOOL ModulePlugin_LuaCore_Init(); +extern "C" XBOOL ModulePlugin_LuaCore_Init(); /******************************************************************** 函数名称:ModulePlugin_LuaCore_Push 函数功能:添加一个标准的插件到插件框架中 @@ -143,7 +143,7 @@ extern "C" BOOL ModulePlugin_LuaCore_Init(); 意思:是否成功添加 备注: *********************************************************************/ -extern "C" BOOL ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCTSTR lpszPluginFile, LPVOID lParam = NULL); +extern "C" XBOOL ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); /******************************************************************** 函数名称:ModulePlugin_LuaCore_Exec 函数功能:执行一次 @@ -192,7 +192,7 @@ extern "C" BOOL ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCTSTR lpszPlu 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBufer = NULL, int nMsgLen = 0); +extern "C" XBOOL ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer = NULL, int nMsgLen = 0); /******************************************************************** 函数名称:ModulePlugin_LuaCore_Destroy 函数功能:销毁插件核心并且清理资源 @@ -201,7 +201,7 @@ extern "C" BOOL ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, TCHAR*** pppHDRLi 意思:是否成功销毁 备注: *********************************************************************/ -extern "C" BOOL ModulePlugin_LuaCore_Destroy(); +extern "C" XBOOL ModulePlugin_LuaCore_Destroy(); /********************************************************************************* * 加载器导出函数定义 * *********************************************************************************/ @@ -228,7 +228,7 @@ extern "C" BOOL ModulePlugin_LuaCore_Destroy(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModulePlugin_Loader_Insert(LPCTSTR lpszModuleMethod, LPCTSTR lpszModuleName, int nType = 0); +extern "C" XBOOL ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lpszModuleName, int nType = 0); /******************************************************************** 函数名称:ModulePlugin_Loader_Find 函数功能:查找方法是否注册 @@ -247,7 +247,7 @@ extern "C" BOOL ModulePlugin_Loader_Insert(LPCTSTR lpszModuleMethod, LPCTSTR lps 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModulePlugin_Loader_Find(LPCTSTR lpszMethodName, int* pInt_Type); +extern "C" XBOOL ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type); /******************************************************************** 函数名称:ModulePlugin_Loader_Exec 函数功能:执行一次插件 @@ -286,7 +286,7 @@ extern "C" BOOL ModulePlugin_Loader_Find(LPCTSTR lpszMethodName, int* pInt_Type) 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModulePlugin_Loader_Exec(LPCTSTR lpszMethodName, TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen); +extern "C" XBOOL ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen); /******************************************************************** 函数名称:ModulePlugin_Loader_Destory 函数功能:销毁加载器 @@ -295,4 +295,4 @@ extern "C" BOOL ModulePlugin_Loader_Exec(LPCTSTR lpszMethodName, TCHAR * **pppHD 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModulePlugin_Loader_Destory(); \ No newline at end of file +extern "C" XBOOL ModulePlugin_Loader_Destory(); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp index 912458c..19f0b17 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp @@ -29,7 +29,7 @@ CModulePlugin_LibCore::~CModulePlugin_LibCore() 意思:是否成功初始化 备注: *********************************************************************/ -BOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Init() +XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Init() { ModulePlugin_IsErrorOccur = FALSE; //判断是否初始化 @@ -66,7 +66,7 @@ BOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Init() 意思:是否成功添加 备注: *********************************************************************/ -BOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Push(XNETHANDLE* pxhModule, LPCTSTR lpszPluginFile, LPVOID lParam) +XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) { ModulePlugin_IsErrorOccur = FALSE; @@ -130,7 +130,7 @@ BOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Push(XNETHANDLE* pxhModule, LPC 意思:是否成功 备注: *********************************************************************/ -BOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBufer /* = NULL */, int nMsgLen /* = 0 */) +XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer /* = NULL */, int nMsgLen /* = 0 */) { ModulePlugin_IsErrorOccur = FALSE; @@ -163,7 +163,7 @@ BOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, TCHAR 意思:是否成功销毁 备注: *********************************************************************/ -BOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Destroy() +XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Destroy() { ModulePlugin_IsErrorOccur = FALSE; @@ -215,7 +215,7 @@ BOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Destroy() 意思:是否成功执行 备注: *********************************************************************/ -BOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCTSTR lpszPluginFile, LPVOID lParam) +XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam) { ModulePlugin_IsErrorOccur = FALSE; diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.h b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.h index 1899c60..664be81 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.h +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.h @@ -10,19 +10,19 @@ // Purpose: 插件核心架构定义 // History: *********************************************************************/ -typedef BOOL(*FPCall_PluginCore_Init)(LPVOID lParam); +typedef XBOOL(*FPCall_PluginCore_Init)(XPVOID lParam); typedef void(*FPCall_PluginCore_UnInit)(); -typedef BOOL(*FPCall_PluginCore_Call)(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBufer, int nMsgLen); +typedef XBOOL(*FPCall_PluginCore_Call)(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer, int nMsgLen); typedef DWORD(*FPCall_PluginCore_GetLastError)(); typedef struct { HMODULE mhFile; - TCHAR tszModuleFile[MAX_PATH]; + XCHAR tszModuleFile[MAX_PATH]; - BOOL(*fpCall_PluginCore_Init)(LPVOID lParam); + XBOOL(*fpCall_PluginCore_Init)(XPVOID lParam); void(*fpCall_PluginCore_UnInit)(); - BOOL(*fpCall_PluginCore_Call)(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBufer, int nMsgLen); + XBOOL(*fpCall_PluginCore_Call)(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer, int nMsgLen); DWORD(*fpCall_PluginCore_GetLastError)(); }PLUGINCORE_FRAMEWORK, * LPPLUGINCORE_FRAMEWORK; @@ -32,14 +32,14 @@ public: CModulePlugin_LibCore(); ~CModulePlugin_LibCore(); public: - BOOL ModulePlugin_LibCore_Init(); - BOOL ModulePlugin_LibCore_Push(XNETHANDLE* pxhModule, LPCTSTR lpszPluginFile, LPVOID lParam = NULL); - BOOL ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBufer = NULL, int nMsgLen = 0); - BOOL ModulePlugin_LibCore_Destroy(); + XBOOL ModulePlugin_LibCore_Init(); + XBOOL ModulePlugin_LibCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); + XBOOL ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer = NULL, int nMsgLen = 0); + XBOOL ModulePlugin_LibCore_Destroy(); protected: - BOOL ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCTSTR lpszPluginFile, LPVOID lParam = NULL); + XBOOL ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); private: - BOOL bIsInit; + XBOOL bIsInit; private: shared_mutex st_csStl; private: diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp index bb5888e..e1aee12 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp @@ -43,7 +43,7 @@ CModulePlugin_Loader::~CModulePlugin_Loader() 意思:是否成功 备注: *********************************************************************/ -BOOL CModulePlugin_Loader::ModulePlugin_Loader_Insert(LPCTSTR lpszModuleMethod, LPCTSTR lpszModuleName, int nType /* = 0 */) +XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lpszModuleName, int nType /* = 0 */) { ModulePlugin_IsErrorOccur = FALSE; @@ -98,7 +98,7 @@ BOOL CModulePlugin_Loader::ModulePlugin_Loader_Insert(LPCTSTR lpszModuleMethod, 意思:是否成功 备注: *********************************************************************/ -BOOL CModulePlugin_Loader::ModulePlugin_Loader_Find(LPCTSTR lpszMethodName, int* pInt_Type) +XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type) { ModulePlugin_IsErrorOccur = FALSE; @@ -162,7 +162,7 @@ BOOL CModulePlugin_Loader::ModulePlugin_Loader_Find(LPCTSTR lpszMethodName, int* 意思:是否成功 备注: *********************************************************************/ -BOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCTSTR lpszMethodName, TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen) +XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen) { ModulePlugin_IsErrorOccur = FALSE; @@ -209,7 +209,7 @@ BOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCTSTR lpszMethodName, TCHA 意思:是否成功 备注: *********************************************************************/ -BOOL CModulePlugin_Loader::ModulePlugin_Loader_Destory() +XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Destory() { ModulePlugin_IsErrorOccur = FALSE; diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.h b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.h index 623c1df..659d211 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.h +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.h @@ -12,8 +12,8 @@ *********************************************************************/ typedef struct { - TCHAR tszModuleFile[MAX_PATH]; - TCHAR tszModuleMethod[MAX_PATH]; + XCHAR tszModuleFile[MAX_PATH]; + XCHAR tszModuleMethod[MAX_PATH]; XNETHANDLE xhToken; int nType; }PLUGINCORE_LOADER, * LPPLUGINCORE_LOADER; @@ -24,10 +24,10 @@ public: CModulePlugin_Loader(); ~CModulePlugin_Loader(); public: - BOOL ModulePlugin_Loader_Insert(LPCTSTR lpszModuleMethod, LPCTSTR lpszModuleName, int nType = 0); - BOOL ModulePlugin_Loader_Find(LPCTSTR lpszMethodName, int* pInt_Type); - BOOL ModulePlugin_Loader_Exec(LPCTSTR lpszMethodName, TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen); - BOOL ModulePlugin_Loader_Destory(); + XBOOL ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lpszModuleName, int nType = 0); + XBOOL ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type); + XBOOL ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen); + XBOOL ModulePlugin_Loader_Destory(); protected: private: shared_mutex st_Locker; diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp index 58f455f..50bdd16 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp @@ -29,7 +29,7 @@ CModulePlugin_LuaCore::~CModulePlugin_LuaCore() 意思:是否成功初始化 备注: *********************************************************************/ -BOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Init() +XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Init() { ModulePlugin_IsErrorOccur = FALSE; //判断是否初始化 @@ -66,7 +66,7 @@ BOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Init() 意思:是否成功添加 备注: *********************************************************************/ -BOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCTSTR lpszPluginFile, LPVOID lParam) +XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) { ModulePlugin_IsErrorOccur = FALSE; @@ -130,7 +130,7 @@ BOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPC 意思:是否成功 备注: *********************************************************************/ -BOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBufer /* = NULL */, int nMsgLen /* = 0 */) +XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer /* = NULL */, int nMsgLen /* = 0 */) { ModulePlugin_IsErrorOccur = FALSE; @@ -151,7 +151,7 @@ BOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, TCHAR st_csStl.unlock_shared(); return FALSE; } - TCHAR tszURLParam[MAX_PATH]; + XCHAR tszURLParam[MAX_PATH]; memset(tszURLParam, '\0', MAX_PATH); for (int i = 1; i < nListCount; i++) @@ -197,7 +197,7 @@ BOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, TCHAR 意思:是否成功销毁 备注: *********************************************************************/ -BOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Destroy() +XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Destroy() { ModulePlugin_IsErrorOccur = FALSE; @@ -248,7 +248,7 @@ BOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Destroy() 意思:是否成功执行 备注: *********************************************************************/ -BOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Add(XNETHANDLE xhNet, LPCTSTR lpszPluginFile, LPVOID lParam) +XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam) { ModulePlugin_IsErrorOccur = FALSE; diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.h b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.h index 94ae0e4..804e77b 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.h +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.h @@ -12,7 +12,7 @@ *********************************************************************/ typedef struct { - TCHAR tszModuleFile[MAX_PATH]; + XCHAR tszModuleFile[MAX_PATH]; lua_State* pSt_LuaState; }PLUGINCORE_LUAFRAMEWORK; @@ -22,14 +22,14 @@ public: CModulePlugin_LuaCore(); ~CModulePlugin_LuaCore(); public: - BOOL ModulePlugin_LuaCore_Init(); - BOOL ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCTSTR lpszPluginFile, LPVOID lParam = NULL); - BOOL ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBufer = NULL, int nMsgLen = 0); - BOOL ModulePlugin_LuaCore_Destroy(); + XBOOL ModulePlugin_LuaCore_Init(); + XBOOL ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); + XBOOL ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer = NULL, int nMsgLen = 0); + XBOOL ModulePlugin_LuaCore_Destroy(); protected: - BOOL ModulePlugin_LuaCore_Add(XNETHANDLE xhNet, LPCTSTR lpszPluginFile, LPVOID lParam = NULL); + XBOOL ModulePlugin_LuaCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); private: - BOOL bIsInit; + XBOOL bIsInit; private: shared_mutex st_csStl; private: diff --git a/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp b/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp index daed8c8..f130bae 100644 --- a/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp @@ -1,9 +1,9 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -BOOL APIENTRY DllMain( HMODULE hModule, +XBOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, - LPVOID lpReserved + XPVOID lpReserved ) { switch (ul_reason_for_call) diff --git a/XEngine_Source/XEngine_ModulePlugin/pch.cpp b/XEngine_Source/XEngine_ModulePlugin/pch.cpp index 807b91a..c00a4ed 100644 --- a/XEngine_Source/XEngine_ModulePlugin/pch.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/pch.cpp @@ -13,7 +13,7 @@ // Purpose: 插件核心导出函数实现 // History: *********************************************************************/ -BOOL ModulePlugin_IsErrorOccur = FALSE; +XBOOL ModulePlugin_IsErrorOccur = FALSE; DWORD ModulePlugin_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_LibCore m_PluginLib; @@ -33,57 +33,57 @@ extern "C" DWORD ModulePlugin_GetLastError(int* pInt_SysError) /********************************************************************************* * 插件框架导出函数定义 * *********************************************************************************/ -extern "C" BOOL ModulePlugin_LibCore_Init() +extern "C" XBOOL ModulePlugin_LibCore_Init() { return m_PluginLib.ModulePlugin_LibCore_Init(); } -extern "C" BOOL ModulePlugin_LibCore_Push(XNETHANDLE * pxhModule, LPCTSTR lpszPluginFile, LPVOID lParam) +extern "C" XBOOL ModulePlugin_LibCore_Push(XNETHANDLE * pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) { return m_PluginLib.ModulePlugin_LibCore_Push(pxhModule, lpszPluginFile, lParam); } -extern "C" BOOL ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBufer, int nMsgLen) +extern "C" XBOOL ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer, int nMsgLen) { return m_PluginLib.ModulePlugin_LibCore_Exec(xhModule, pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen); } -extern "C" BOOL ModulePlugin_LibCore_Destroy() +extern "C" XBOOL ModulePlugin_LibCore_Destroy() { return m_PluginLib.ModulePlugin_LibCore_Destroy(); } /********************************************************************************* * LUA插件框架导出函数定义 * *********************************************************************************/ -extern "C" BOOL ModulePlugin_LuaCore_Init() +extern "C" XBOOL ModulePlugin_LuaCore_Init() { return m_PluginLua.ModulePlugin_LuaCore_Init(); } -extern "C" BOOL ModulePlugin_LuaCore_Push(XNETHANDLE * pxhModule, LPCTSTR lpszPluginFile, LPVOID lParam) +extern "C" XBOOL ModulePlugin_LuaCore_Push(XNETHANDLE * pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) { return m_PluginLua.ModulePlugin_LuaCore_Push(pxhModule, lpszPluginFile, lParam); } -extern "C" BOOL ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBufer, int nMsgLen) +extern "C" XBOOL ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer, int nMsgLen) { return m_PluginLua.ModulePlugin_LuaCore_Exec(xhModule, pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBufer, nMsgLen); } -extern "C" BOOL ModulePlugin_LuaCore_Destroy() +extern "C" XBOOL ModulePlugin_LuaCore_Destroy() { return m_PluginLua.ModulePlugin_LuaCore_Destroy(); } /********************************************************************************* * 加载器导出函数定义 * *********************************************************************************/ -extern "C" BOOL ModulePlugin_Loader_Insert(LPCTSTR lpszModuleMethod, LPCTSTR lpszModuleName, int nType) +extern "C" XBOOL ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lpszModuleName, int nType) { return m_PluginLoader.ModulePlugin_Loader_Insert(lpszModuleMethod, lpszModuleName, nType); } -extern "C" BOOL ModulePlugin_Loader_Find(LPCTSTR lpszMethodName, int* pInt_Type) +extern "C" XBOOL ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type) { return m_PluginLoader.ModulePlugin_Loader_Find(lpszMethodName, pInt_Type); } -extern "C" BOOL ModulePlugin_Loader_Exec(LPCTSTR lpszMethodName, TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen) +extern "C" XBOOL ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen) { return m_PluginLoader.ModulePlugin_Loader_Exec(lpszMethodName, pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen); } -extern "C" BOOL ModulePlugin_Loader_Destory() +extern "C" XBOOL ModulePlugin_Loader_Destory() { return m_PluginLoader.ModulePlugin_Loader_Destory(); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModulePlugin/pch.h b/XEngine_Source/XEngine_ModulePlugin/pch.h index ad6aef1..c18d848 100644 --- a/XEngine_Source/XEngine_ModulePlugin/pch.h +++ b/XEngine_Source/XEngine_ModulePlugin/pch.h @@ -55,7 +55,7 @@ using namespace std; // Purpose: 插件核心公有头文件 // History: *********************************************************************/ -extern BOOL ModulePlugin_IsErrorOccur; +extern XBOOL ModulePlugin_IsErrorOccur; extern DWORD ModulePlugin_dwErrorCode; #ifdef _MSC_BUILD diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h index 86554dd..e1b3f57 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h @@ -45,7 +45,7 @@ extern "C" DWORD ModuleProtocol_GetLastError(int *pInt_SysError = NULL); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_Common(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); +extern "C" XBOOL ModuleProtocol_Packet_Common(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); /******************************************************************** 函数名称:ModuleProtocol_Packet_IDQuery 函数功能:ID查询打包为JSON的封包函数 @@ -84,7 +84,7 @@ extern "C" BOOL ModuleProtocol_Packet_Common(TCHAR * ptszMsgBuffer, int* pInt_Ms 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_IDQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); +extern "C" XBOOL ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); /******************************************************************** 函数名称:ModuleProtocol_Packet_BankQuery 函数功能:银行卡信息查询打包为JSON @@ -118,7 +118,7 @@ extern "C" BOOL ModuleProtocol_Packet_IDQuery(TCHAR* ptszMsgBuffer, int* pInt_Ms 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_BankQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); +extern "C" XBOOL ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); /******************************************************************** 函数名称:ModuleProtocol_Packet_LanguageQuery 函数功能:语言打包为JSON @@ -152,7 +152,7 @@ extern "C" BOOL ModuleProtocol_Packet_BankQuery(TCHAR* ptszMsgBuffer, int* pInt_ 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_LanguageQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); +extern "C" XBOOL ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); /******************************************************************** 函数名称:ModuleProtocol_Packet_Locker 函数功能:分布式锁协议打包函数 @@ -186,7 +186,7 @@ extern "C" BOOL ModuleProtocol_Packet_LanguageQuery(TCHAR* ptszMsgBuffer, int* p 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_Locker(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); +extern "C" XBOOL ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); /******************************************************************** 函数名称:ModuleProtocol_Packet_ZIPCode 函数功能:打包行政邮编信息协议 @@ -220,7 +220,7 @@ extern "C" BOOL ModuleProtocol_Packet_Locker(TCHAR* ptszMsgBuffer, int* pInt_Msg 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_ZIPCode(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); +extern "C" XBOOL ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); /******************************************************************** 函数名称:ModuleProtocol_Packet_TestReport 函数功能:套接字测试信息打包 @@ -273,7 +273,7 @@ extern "C" BOOL ModuleProtocol_Packet_ZIPCode(TCHAR* ptszMsgBuffer, int* pInt_Ms 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_TestReport(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCTSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus); +extern "C" XBOOL ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus); /******************************************************************** 函数名称:ModuleProtocol_Packet_TestReply 函数功能:请求返回 @@ -297,7 +297,7 @@ extern "C" BOOL ModuleProtocol_Packet_TestReport(TCHAR* ptszMsgBuffer, int* pInt 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_TestReply(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken); +extern "C" XBOOL ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken); /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PLan 函数功能:响应同步局域网地址列表 @@ -326,7 +326,7 @@ extern "C" BOOL ModuleProtocol_Packet_TestReply(TCHAR* ptszMsgBuffer, int* pInt_ 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_P2PLan(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount); +extern "C" XBOOL ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount); /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PWLan 函数功能:响应同步局域网所有地址列表 @@ -350,7 +350,7 @@ extern "C" BOOL ModuleProtocol_Packet_P2PLan(TCHAR* ptszMsgBuffer, int* pInt_Msg 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_P2PWLan(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients); +extern "C" XBOOL ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients); /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PUser 函数功能:响应用户查询用户信息的请求协议封包函数 @@ -374,7 +374,7 @@ extern "C" BOOL ModuleProtocol_Packet_P2PWLan(TCHAR* ptszMsgBuffer, int* pInt_Ms 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_P2PUser(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo); +extern "C" XBOOL ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo); /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PConnect 函数功能:请求连接打包函数 @@ -403,7 +403,7 @@ extern "C" BOOL ModuleProtocol_Packet_P2PUser(TCHAR* ptszMsgBuffer, int* pInt_Ms 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_P2PConnect(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol); +extern "C" XBOOL ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol); /******************************************************************** 函数名称:ModuleProtocol_Packet_Log 函数功能:日志信息打包 @@ -432,7 +432,7 @@ extern "C" BOOL ModuleProtocol_Packet_P2PConnect(TCHAR* ptszMsgBuffer, int* pInt 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_Log(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount); +extern "C" XBOOL ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount); /************************************************************************/ /* 导出的协议解析函数 */ /************************************************************************/ @@ -454,7 +454,7 @@ extern "C" BOOL ModuleProtocol_Packet_Log(TCHAR* ptszMsgBuffer, int* pInt_MsgLen 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Parse_IDCard(LPCTSTR lpszMsgBuffer, XENGINE_IDCARDINFO* pSt_IDInfo); +extern "C" XBOOL ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCARDINFO* pSt_IDInfo); /******************************************************************** 函数名称:ModuleProtocol_Parse_Bank 函数功能:银行卡解析 @@ -478,7 +478,7 @@ extern "C" BOOL ModuleProtocol_Parse_IDCard(LPCTSTR lpszMsgBuffer, XENGINE_IDCAR 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Parse_Bank(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO* pSt_BankInfo); +extern "C" XBOOL ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO* pSt_BankInfo); /******************************************************************** 函数名称:ModuleProtocol_Parse_Translation 函数功能:翻译解析 @@ -502,7 +502,7 @@ extern "C" BOOL ModuleProtocol_Parse_Bank(LPCTSTR lpszMsgBuffer, int nMsgLen, XE 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Parse_Translation(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo); +extern "C" XBOOL ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo); /******************************************************************** 函数名称:ModuleProtocol_Parse_P2PClient 函数功能:P2P客户端请求解析函数 @@ -526,7 +526,7 @@ extern "C" BOOL ModuleProtocol_Parse_Translation(LPCTSTR lpszMsgBuffer, int nMsg 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Parse_P2PClient(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL * pSt_P2XPPeer); +extern "C" XBOOL ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL * pSt_P2XPPeer); /******************************************************************** 函数名称:ModuleProtocol_Parse_ZIPCode 函数功能:解析邮政地址信息 @@ -550,7 +550,7 @@ extern "C" BOOL ModuleProtocol_Parse_P2PClient(LPCTSTR lpszMsgBuffer, int nMsgLe 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Parse_ZIPCode(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo); +extern "C" XBOOL ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo); /******************************************************************** 函数名称:ModuleProtocol_Parse_XLog 函数功能:解析日志信息 @@ -574,7 +574,7 @@ extern "C" BOOL ModuleProtocol_Parse_ZIPCode(LPCTSTR lpszMsgBuffer, int nMsgLen, 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Parse_XLog(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo); +extern "C" XBOOL ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo); /******************************************************************** 函数名称:ModuleProtocol_Parse_QRCode 函数功能:二维码协议解析 @@ -598,7 +598,7 @@ extern "C" BOOL ModuleProtocol_Parse_XLog(LPCTSTR lpszMsgBuffer, int nMsgLen, XE 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Parse_QRCode(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode); +extern "C" XBOOL ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode); /******************************************************************** 函数名称:ModuleProtocol_Parse_SocketTest 函数功能:套接字测试协议解析 @@ -622,4 +622,4 @@ extern "C" BOOL ModuleProtocol_Parse_QRCode(LPCTSTR lpszMsgBuffer, int nMsgLen, 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Parse_SocketTest(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest); \ No newline at end of file +extern "C" XBOOL ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp index b715fde..2716b2a 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp @@ -49,7 +49,7 @@ CModuleProtocol_Packet::~CModuleProtocol_Packet() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Common(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode /* = 0 */, LPCTSTR lpszMsgBuffer /* = NULL */) +XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Common(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { ModuleProtocol_IsErrorOccur = FALSE; @@ -108,7 +108,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Common(TCHAR* ptszMsgBuffer, 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode /* = 0 */, LPCTSTR lpszMsgBuffer /* = NULL */) +XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { ModuleProtocol_IsErrorOccur = FALSE; @@ -134,7 +134,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(TCHAR* ptszMsgBuffer, #ifdef _MSC_BUILD int nUTFLen = _tcslen(pSt_IDRegion->tszProvincer); - TCHAR tszUTFBuffer[MAX_PATH]; + XCHAR tszUTFBuffer[MAX_PATH]; memset(tszUTFBuffer, '\0', MAX_PATH); BaseLib_OperatorCharset_AnsiToUTF(pSt_IDRegion->tszProvincer, tszUTFBuffer, &nUTFLen); @@ -205,7 +205,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(TCHAR* ptszMsgBuffer, 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode /* = 0 */, LPCTSTR lpszMsgBuffer /* = NULL */) +XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { ModuleProtocol_IsErrorOccur = FALSE; @@ -226,7 +226,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(TCHAR* ptszMsgBuffe st_JsonObject["enBankType"] = pSt_BankInfo->enBankType; #ifdef _MSC_BUILD - TCHAR tszUTFBuffer[MAX_PATH]; + XCHAR tszUTFBuffer[MAX_PATH]; memset(tszUTFBuffer, '\0', MAX_PATH); int nUTFLen = _tcslen(pSt_BankInfo->tszBankName); @@ -286,7 +286,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(TCHAR* ptszMsgBuffe 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode /* = 0 */, LPCTSTR lpszMsgBuffer /* = NULL */) +XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { ModuleProtocol_IsErrorOccur = FALSE; @@ -356,7 +356,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(TCHAR* ptszMsgB 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCTSTR lpszMsgBuffer) +XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCXSTR lpszMsgBuffer) { ModuleProtocol_IsErrorOccur = FALSE; @@ -421,7 +421,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(TCHAR* ptszMsgBuffer, 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ZIPCode(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode /* = 0 */, LPCTSTR lpszMsgBuffer /* = NULL */) +XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { ModuleProtocol_IsErrorOccur = FALSE; @@ -492,7 +492,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ZIPCode(TCHAR* ptszMsgBuffer, 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Log(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount) +XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount) { ModuleProtocol_IsErrorOccur = FALSE; @@ -582,7 +582,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Log(TCHAR* ptszMsgBuffer, int 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReport(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCTSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus) +XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus) { ModuleProtocol_IsErrorOccur = FALSE; @@ -636,7 +636,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReport(TCHAR* ptszMsgBuff 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReply(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken) +XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken) { ModuleProtocol_IsErrorOccur = FALSE; @@ -689,7 +689,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReply(TCHAR* ptszMsgBuffe 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PLan(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount) +XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount) { ModuleProtocol_IsErrorOccur = FALSE; @@ -740,7 +740,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PLan(TCHAR* ptszMsgBuffer, 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients) +XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients) { ModuleProtocol_IsErrorOccur = FALSE; @@ -754,7 +754,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(TCHAR* ptszMsgBuffer, //首先处理公网下的局域网网段列表 for (auto stl_ListIterator = pStl_ListClients->begin(); stl_ListIterator != pStl_ListClients->end(); stl_ListIterator++) { - TCHAR tszClientAddr[128]; + XCHAR tszClientAddr[128]; XENGINE_LIBADDR st_LibAddr; P2XPPROTOCOL_LANPACKET st_LANPacket; @@ -833,7 +833,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(TCHAR* ptszMsgBuffer, 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PUser(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo) +XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo) { ModuleProtocol_IsErrorOccur = FALSE; @@ -889,7 +889,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PUser(TCHAR* ptszMsgBuffer, 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PConnect(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol) +XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol) { ModuleProtocol_IsErrorOccur = FALSE; diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h index 05049ba..6caa287 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h @@ -12,8 +12,8 @@ *********************************************************************/ typedef struct { - TCHAR tszUsername[MAX_PATH]; - TCHAR tszClientAddr[128]; + XCHAR tszUsername[MAX_PATH]; + XCHAR tszClientAddr[128]; }P2XPPROTOCOL_LANPACKET; class CModuleProtocol_Packet @@ -22,19 +22,19 @@ public: CModuleProtocol_Packet(); ~CModuleProtocol_Packet(); public: - BOOL ModuleProtocol_Packet_Common(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); - BOOL ModuleProtocol_Packet_IDQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); - BOOL ModuleProtocol_Packet_BankQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); - BOOL ModuleProtocol_Packet_LanguageQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); - BOOL ModuleProtocol_Packet_Locker(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); - BOOL ModuleProtocol_Packet_ZIPCode(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); - BOOL ModuleProtocol_Packet_Log(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount); - BOOL ModuleProtocol_Packet_TestReport(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCTSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus); - BOOL ModuleProtocol_Packet_TestReply(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken); + XBOOL ModuleProtocol_Packet_Common(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); + XBOOL ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); + XBOOL ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); + XBOOL ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); + XBOOL ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); + XBOOL ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); + XBOOL ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount); + XBOOL ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus); + XBOOL ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken); public: - BOOL ModuleProtocol_Packet_P2PLan(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount); - BOOL ModuleProtocol_Packet_P2PWLan(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients); - BOOL ModuleProtocol_Packet_P2PUser(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo); - BOOL ModuleProtocol_Packet_P2PConnect(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol); + XBOOL ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount); + XBOOL ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients); + XBOOL ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo); + XBOOL ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol); private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp index 819108a..861a4aa 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp @@ -39,7 +39,7 @@ CModuleProtocol_Parse::~CModuleProtocol_Parse() 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCTSTR lpszMsgBuffer, XENGINE_IDCARDINFO* pSt_IDInfo) +XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCARDINFO* pSt_IDInfo) { ModuleProtocol_IsErrorOccur = FALSE; @@ -56,7 +56,7 @@ BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCTSTR lpszMsgBuffer, X return FALSE; } int nPos = 0; - TCHAR tszTmpBuffer[16]; + XCHAR tszTmpBuffer[16]; //是否是身份证号码 for (int i = 0; i < 17; i++) { @@ -138,7 +138,7 @@ BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCTSTR lpszMsgBuffer, X 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO* pSt_BankInfo) +XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO* pSt_BankInfo) { ModuleProtocol_IsErrorOccur = FALSE; @@ -167,8 +167,8 @@ BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCTSTR lpszMsgBuffer, int ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_VALIDATE; return FALSE; } - LPCTSTR lpszTypeDC = _T("DC"); - LPCTSTR lpszTypeCC = _T("CC"); + LPCXSTR lpszTypeDC = _T("DC"); + LPCXSTR lpszTypeCC = _T("CC"); if (0 == _tcsncmp(lpszTypeDC, st_JsonRoot["cardType"].asCString(), _tcslen(lpszTypeDC))) { pSt_BankInfo->enBankType = ENUM_XENGINE_APISERVICE_BANK_TYPE_DC; @@ -207,7 +207,7 @@ BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCTSTR lpszMsgBuffer, int 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Translation(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo) +XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo) { ModuleProtocol_IsErrorOccur = FALSE; @@ -264,7 +264,7 @@ BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Translation(LPCTSTR lpszMsgBuff 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_P2XPPeer) +XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_P2XPPeer) { ModuleProtocol_IsErrorOccur = FALSE; @@ -334,7 +334,7 @@ BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCTSTR lpszMsgBuffer 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo) +XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo) { ModuleProtocol_IsErrorOccur = FALSE; @@ -398,7 +398,7 @@ BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCTSTR lpszMsgBuffer, 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo) +XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo) { ModuleProtocol_IsErrorOccur = FALSE; @@ -485,7 +485,7 @@ BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCTSTR lpszMsgBuffer, int 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode) +XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode) { ModuleProtocol_IsErrorOccur = FALSE; @@ -540,7 +540,7 @@ BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCTSTR lpszMsgBuffer, i 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest) +XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest) { ModuleProtocol_IsErrorOccur = FALSE; diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h index 2637b42..684c129 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h @@ -18,13 +18,13 @@ public: CModuleProtocol_Parse(); ~CModuleProtocol_Parse(); public: - BOOL ModuleProtocol_Parse_IDCard(LPCTSTR lpszMsgBuffer, XENGINE_IDCARDINFO* pSt_IDInfo); - BOOL ModuleProtocol_Parse_Bank(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO* pSt_BankInfo); - BOOL ModuleProtocol_Parse_Translation(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo); - BOOL ModuleProtocol_Parse_P2PClient(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_P2XPPeer); - BOOL ModuleProtocol_Parse_ZIPCode(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo); - BOOL ModuleProtocol_Parse_XLog(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo); - BOOL ModuleProtocol_Parse_QRCode(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode); - BOOL ModuleProtocol_Parse_SocketTest(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest); + XBOOL ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCARDINFO* pSt_IDInfo); + XBOOL ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO* pSt_BankInfo); + XBOOL ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo); + XBOOL ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_P2XPPeer); + XBOOL ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo); + XBOOL ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo); + XBOOL ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode); + XBOOL ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest); private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp b/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp index daed8c8..f130bae 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp @@ -1,9 +1,9 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -BOOL APIENTRY DllMain( HMODULE hModule, +XBOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, - LPVOID lpReserved + XPVOID lpReserved ) { switch (ul_reason_for_call) diff --git a/XEngine_Source/XEngine_ModuleProtocol/pch.cpp b/XEngine_Source/XEngine_ModuleProtocol/pch.cpp index 9ee47f5..f52d528 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/pch.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/pch.cpp @@ -12,7 +12,7 @@ // Purpose: 导出协议模块实现 // History: *********************************************************************/ -BOOL ModuleProtocol_IsErrorOccur = FALSE; +XBOOL ModuleProtocol_IsErrorOccur = FALSE; DWORD ModuleProtocol_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleProtocol_Packet m_ProtocolPacket; @@ -31,90 +31,90 @@ extern "C" DWORD ModuleProtocol_GetLastError(int* pInt_SysError) /************************************************************************/ /* 导出的协议打包函数 */ /************************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_Common(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, int nCode, LPCTSTR lpszMsgBuffer) +extern "C" XBOOL ModuleProtocol_Packet_Common(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, int nCode, LPCXSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_Common(ptszMsgBuffer, pInt_MsgLen, nCode, lpszMsgBuffer); } -extern "C" BOOL ModuleProtocol_Packet_IDQuery(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO * pSt_IDInfo, XENGINE_IDREGION * pSt_IDRegion, int nCode, LPCTSTR lpszMsgBuffer) +extern "C" XBOOL ModuleProtocol_Packet_IDQuery(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO * pSt_IDInfo, XENGINE_IDREGION * pSt_IDRegion, int nCode, LPCXSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_IDQuery(ptszMsgBuffer, pInt_MsgLen, pSt_IDInfo, pSt_IDRegion, nCode, lpszMsgBuffer); } -extern "C" BOOL ModuleProtocol_Packet_BankQuery(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO * pSt_BankInfo, int nCode, LPCTSTR lpszMsgBuffer) +extern "C" XBOOL ModuleProtocol_Packet_BankQuery(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO * pSt_BankInfo, int nCode, LPCXSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_BankQuery(ptszMsgBuffer, pInt_MsgLen, pSt_BankInfo, nCode, lpszMsgBuffer); } -extern "C" BOOL ModuleProtocol_Packet_LanguageQuery(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO * pSt_LanguageInfo, int nCode, LPCTSTR lpszMsgBuffer) +extern "C" XBOOL ModuleProtocol_Packet_LanguageQuery(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO * pSt_LanguageInfo, int nCode, LPCXSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_LanguageQuery(ptszMsgBuffer, pInt_MsgLen, pSt_LanguageInfo, nCode, lpszMsgBuffer); } -extern "C" BOOL ModuleProtocol_Packet_Locker(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCTSTR lpszMsgBuffer) +extern "C" XBOOL ModuleProtocol_Packet_Locker(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCXSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_Locker(ptszMsgBuffer, pInt_MsgLen, xhToken, nCode, lpszMsgBuffer); } -extern "C" BOOL ModuleProtocol_Packet_ZIPCode(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO * pSt_ZIPInfo, int nCode, LPCTSTR lpszMsgBuffer) +extern "C" XBOOL ModuleProtocol_Packet_ZIPCode(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO * pSt_ZIPInfo, int nCode, LPCXSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_ZIPCode(ptszMsgBuffer, pInt_MsgLen, pSt_ZIPInfo, nCode, lpszMsgBuffer); } -extern "C" BOOL ModuleProtocol_Packet_Log(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO * **pppSt_XLogList, int nListCount) +extern "C" XBOOL ModuleProtocol_Packet_Log(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO * **pppSt_XLogList, int nListCount) { return m_ProtocolPacket.ModuleProtocol_Packet_Log(ptszMsgBuffer, pInt_MsgLen, pppSt_XLogList, nListCount); } -extern "C" BOOL ModuleProtocol_Packet_TestReport(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCTSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus) +extern "C" XBOOL ModuleProtocol_Packet_TestReport(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus) { return m_ProtocolPacket.ModuleProtocol_Packet_TestReport(ptszMsgBuffer, pInt_MsgLen, xhToken, lpszIPAddr, nIPPort, nNumber, nFailed, nSuccess, nStatus); } -extern "C" BOOL ModuleProtocol_Packet_TestReply(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken) +extern "C" XBOOL ModuleProtocol_Packet_TestReply(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken) { return m_ProtocolPacket.ModuleProtocol_Packet_TestReply(ptszMsgBuffer, pInt_MsgLen, xhToken); } -extern "C" BOOL ModuleProtocol_Packet_P2PLan(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL * **pppSt_ListClients, int nListCount) +extern "C" XBOOL ModuleProtocol_Packet_P2PLan(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL * **pppSt_ListClients, int nListCount) { return m_ProtocolPacket.ModuleProtocol_Packet_P2PLan(ptszMsgBuffer, pInt_MsgLen, pppSt_ListClients, nListCount); } -extern "C" BOOL ModuleProtocol_Packet_P2PWLan(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, list*pStl_ListClients) +extern "C" XBOOL ModuleProtocol_Packet_P2PWLan(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, list*pStl_ListClients) { return m_ProtocolPacket.ModuleProtocol_Packet_P2PWLan(ptszMsgBuffer, pInt_MsgLen, pStl_ListClients); } -extern "C" BOOL ModuleProtocol_Packet_P2PUser(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL * pSt_PeerInfo) +extern "C" XBOOL ModuleProtocol_Packet_P2PUser(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL * pSt_PeerInfo) { return m_ProtocolPacket.ModuleProtocol_Packet_P2PUser(ptszMsgBuffer, pInt_MsgLen, pSt_PeerInfo); } -extern "C" BOOL ModuleProtocol_Packet_P2PConnect(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL * pSt_IOProtocol) +extern "C" XBOOL ModuleProtocol_Packet_P2PConnect(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL * pSt_IOProtocol) { return m_ProtocolPacket.ModuleProtocol_Packet_P2PConnect(ptszMsgBuffer, pInt_MsgLen, pSt_IOProtocol); } /************************************************************************/ /* 导出的协议解析函数 */ /************************************************************************/ -extern "C" BOOL ModuleProtocol_Parse_IDCard(LPCTSTR lpszMsgBuffer, XENGINE_IDCARDINFO * pSt_IDInfo) +extern "C" XBOOL ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCARDINFO * pSt_IDInfo) { return m_ProtocolParse.ModuleProtocol_Parse_IDCard(lpszMsgBuffer, pSt_IDInfo); } -extern "C" BOOL ModuleProtocol_Parse_Bank(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO * pSt_BankInfo) +extern "C" XBOOL ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO * pSt_BankInfo) { return m_ProtocolParse.ModuleProtocol_Parse_Bank(lpszMsgBuffer, nMsgLen, pSt_BankInfo); } -extern "C" BOOL ModuleProtocol_Parse_Translation(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO * pSt_LanguageInfo) +extern "C" XBOOL ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO * pSt_LanguageInfo) { return m_ProtocolParse.ModuleProtocol_Parse_Translation(lpszMsgBuffer, nMsgLen, pSt_LanguageInfo); } -extern "C" BOOL ModuleProtocol_Parse_P2PClient(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL * pSt_P2XPPeer) +extern "C" XBOOL ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL * pSt_P2XPPeer) { return m_ProtocolParse.ModuleProtocol_Parse_P2PClient(lpszMsgBuffer, nMsgLen, pSt_P2XPPeer); } -extern "C" BOOL ModuleProtocol_Parse_ZIPCode(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO * pSt_ZIPInfo) +extern "C" XBOOL ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO * pSt_ZIPInfo) { return m_ProtocolParse.ModuleProtocol_Parse_ZIPCode(lpszMsgBuffer, nMsgLen, pSt_ZIPInfo); } -extern "C" BOOL ModuleProtocol_Parse_XLog(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO * pSt_XLogInfo) +extern "C" XBOOL ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO * pSt_XLogInfo) { return m_ProtocolParse.ModuleProtocol_Parse_XLog(lpszMsgBuffer, nMsgLen, pSt_XLogInfo); } -extern "C" BOOL ModuleProtocol_Parse_QRCode(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE * pSt_QRCode) +extern "C" XBOOL ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE * pSt_QRCode) { return m_ProtocolParse.ModuleProtocol_Parse_QRCode(lpszMsgBuffer, nMsgLen, pSt_QRCode); } -extern "C" BOOL ModuleProtocol_Parse_SocketTest(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST * pSt_SocketTest) +extern "C" XBOOL ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST * pSt_SocketTest) { return m_ProtocolParse.ModuleProtocol_Parse_SocketTest(lpszMsgBuffer, nMsgLen, pSt_SocketTest); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/pch.h b/XEngine_Source/XEngine_ModuleProtocol/pch.h index faf8f1c..f28b6ac 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/pch.h +++ b/XEngine_Source/XEngine_ModuleProtocol/pch.h @@ -38,7 +38,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern BOOL ModuleProtocol_IsErrorOccur; +extern XBOOL ModuleProtocol_IsErrorOccur; extern DWORD ModuleProtocol_dwErrorCode; #ifdef _MSC_BUILD diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/BMIndex_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/BMIndex_Define.h index df53fdd..ed441b7 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/BMIndex_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/BMIndex_Define.h @@ -30,7 +30,7 @@ extern "C" DWORD PluginCore_GetLastError(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL PluginCore_Init(LPVOID lParam = NULL); +extern "C" XBOOL PluginCore_Init(XPVOID lParam = NULL); /******************************************************************** 函数名称:PluginCore_UnInit 函数功能:卸载插件 @@ -48,4 +48,4 @@ extern "C" void PluginCore_UnInit(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file +extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp index 4c3d75a..2164e30 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp @@ -33,7 +33,7 @@ CPlugin_BMIndex::~CPlugin_BMIndex() 意思:是否成功 备注: *********************************************************************/ -BOOL CPlugin_BMIndex::PluginCore_Init(LPVOID lParam) +XBOOL CPlugin_BMIndex::PluginCore_Init(XPVOID lParam) { BMIndex_IsErrorOccur = FALSE; @@ -59,7 +59,7 @@ void CPlugin_BMIndex::PluginCore_UnInit() 意思:是否成功 备注: *********************************************************************/ -BOOL CPlugin_BMIndex::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +XBOOL CPlugin_BMIndex::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { BMIndex_IsErrorOccur = FALSE; @@ -69,9 +69,9 @@ BOOL CPlugin_BMIndex::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* BMIndex_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_BMINDEX_PARAMENT; return FALSE; } - TCHAR tszKeyName[128]; - TCHAR tszParamHigh[128]; - TCHAR tszParamWeight[128]; + XCHAR tszKeyName[128]; + XCHAR tszParamHigh[128]; + XCHAR tszParamWeight[128]; memset(tszKeyName, '\0', sizeof(tszKeyName)); memset(tszParamHigh, '\0', sizeof(tszParamHigh)); @@ -87,7 +87,7 @@ BOOL CPlugin_BMIndex::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// -BOOL CPlugin_BMIndex::Plugin_Timezone_BMIndex(LPCTSTR lpszHigh, LPCTSTR lpszWeight, TCHAR* ptszMsgBufer, int* pInt_Len) +XBOOL CPlugin_BMIndex::Plugin_Timezone_BMIndex(LPCXSTR lpszHigh, LPCXSTR lpszWeight, XCHAR* ptszMsgBufer, int* pInt_Len) { BMIndex_IsErrorOccur = FALSE; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.h index 65e481b..853b815 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.h @@ -17,10 +17,10 @@ public: CPlugin_BMIndex(); ~CPlugin_BMIndex(); public: - BOOL PluginCore_Init(LPVOID lParam); + XBOOL PluginCore_Init(XPVOID lParam); void PluginCore_UnInit(); - BOOL PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen); + XBOOL PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); protected: - BOOL Plugin_Timezone_BMIndex(LPCTSTR lpszHigh, LPCTSTR lpszWeight, TCHAR* ptszMsgBufer, int* pInt_Len); + XBOOL Plugin_Timezone_BMIndex(LPCXSTR lpszHigh, LPCXSTR lpszWeight, XCHAR* ptszMsgBufer, int* pInt_Len); private: }; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp index daed8c8..f130bae 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp @@ -1,9 +1,9 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -BOOL APIENTRY DllMain( HMODULE hModule, +XBOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, - LPVOID lpReserved + XPVOID lpReserved ) { switch (ul_reason_for_call) diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp index f5bb721..eb2ea11 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -BOOL BMIndex_IsErrorOccur = FALSE; +XBOOL BMIndex_IsErrorOccur = FALSE; DWORD BMIndex_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_BMIndex m_PluginBMIndex; @@ -25,7 +25,7 @@ extern "C" DWORD PluginCore_GetLastError() /********************************************************************************* * 导出函数定义 * *********************************************************************************/ -extern "C" BOOL PluginCore_Init(LPVOID lParam) +extern "C" XBOOL PluginCore_Init(XPVOID lParam) { return m_PluginBMIndex.PluginCore_Init(lParam); } @@ -33,7 +33,7 @@ extern "C" void PluginCore_UnInit() { m_PluginBMIndex.PluginCore_UnInit(); } -extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { return m_PluginBMIndex.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.h index 44ce434..b158828 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.h @@ -37,7 +37,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern BOOL BMIndex_IsErrorOccur; +extern XBOOL BMIndex_IsErrorOccur; extern DWORD BMIndex_dwErrorCode; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp index 451214b..8f0428a 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp @@ -33,7 +33,7 @@ CModulePlugin_Interface::~CModulePlugin_Interface() 意思:是否成功 备注: *********************************************************************/ -BOOL CModulePlugin_Interface::PluginCore_Init(LPVOID lParam) +XBOOL CModulePlugin_Interface::PluginCore_Init(XPVOID lParam) { IPAddr_IsErrorOccur = FALSE; @@ -68,7 +68,7 @@ void CModulePlugin_Interface::PluginCore_UnInit() 意思:是否成功 备注: *********************************************************************/ -BOOL CModulePlugin_Interface::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +XBOOL CModulePlugin_Interface::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { IPAddr_IsErrorOccur = FALSE; @@ -78,8 +78,8 @@ BOOL CModulePlugin_Interface::PluginCore_Call(TCHAR*** pppHDRList, int nListCoun IPAddr_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_IPADDR_PARAMENT; return FALSE; } - TCHAR tszKeyName[128]; - TCHAR tszMsgBuffer[128]; + XCHAR tszKeyName[128]; + XCHAR tszMsgBuffer[128]; XENGINE_IPADDRINFO st_IPAddr; Json::Value st_JsonRoot; Json::Value st_JsonObject; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.h index 2e67cc8..8d14e27 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.h @@ -17,9 +17,9 @@ public: CModulePlugin_Interface(); ~CModulePlugin_Interface(); public: - BOOL PluginCore_Init(LPVOID lParam); + XBOOL PluginCore_Init(XPVOID lParam); void PluginCore_UnInit(); - BOOL PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen); + XBOOL PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); protected: private: xdb_searcher_t st_DBSearch; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/PluginIPAddr_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/PluginIPAddr_Define.h index 79167fa..15ae52b 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/PluginIPAddr_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/PluginIPAddr_Define.h @@ -13,13 +13,13 @@ //IP地址信息 typedef struct { - TCHAR tszIPAddr[128]; //IP地址 - TCHAR tszIPCountry[128]; //国家/地区 - TCHAR tszIPProvince[128]; //省/自治区 - TCHAR tszIPCity[128]; //市 - TCHAR tszIPCounty[128]; //县 - TCHAR tszIPAddress[128]; //详细地址 - TCHAR tszIPISP[128]; //运营商 + XCHAR tszIPAddr[128]; //IP地址 + XCHAR tszIPCountry[128]; //国家/地区 + XCHAR tszIPProvince[128]; //省/自治区 + XCHAR tszIPCity[128]; //市 + XCHAR tszIPCounty[128]; //县 + XCHAR tszIPAddress[128]; //详细地址 + XCHAR tszIPISP[128]; //运营商 }XENGINE_IPADDRINFO; ////////////////////////////////////////////////////////////////////////// // 导出函数定义 @@ -41,7 +41,7 @@ extern "C" DWORD PluginCore_GetLastError(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL PluginCore_Init(LPVOID lParam = NULL); +extern "C" XBOOL PluginCore_Init(XPVOID lParam = NULL); /******************************************************************** 函数名称:PluginCore_UnInit 函数功能:卸载插件 @@ -59,4 +59,4 @@ extern "C" void PluginCore_UnInit(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file +extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp index fb5e929..16e8e32 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp @@ -1,9 +1,9 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -BOOL APIENTRY DllMain( HMODULE hModule, +XBOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, - LPVOID lpReserved + XPVOID lpReserved ) { switch (ul_reason_for_call) diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp index a6df6c2..ada1c9b 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -BOOL IPAddr_IsErrorOccur = FALSE; +XBOOL IPAddr_IsErrorOccur = FALSE; DWORD IPAddr_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_Interface m_PluginIPAddr; @@ -25,7 +25,7 @@ extern "C" DWORD PluginCore_GetLastError() /********************************************************************************* * 导出函数定义 * *********************************************************************************/ -extern "C" BOOL PluginCore_Init(LPVOID lParam) +extern "C" XBOOL PluginCore_Init(XPVOID lParam) { return m_PluginIPAddr.PluginCore_Init(lParam); } @@ -33,7 +33,7 @@ extern "C" void PluginCore_UnInit() { m_PluginIPAddr.PluginCore_UnInit(); } -extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { return m_PluginIPAddr.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.h index 73ddbe9..0a97ff0 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.h @@ -33,7 +33,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern BOOL IPAddr_IsErrorOccur; +extern XBOOL IPAddr_IsErrorOccur; extern DWORD IPAddr_dwErrorCode; #include "ModulePlugin_IPAddr/ModulePlugin_IPAddr.h" diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h index a17f727..1b2d8f2 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h @@ -83,7 +83,7 @@ extern "C" DWORD PluginCore_GetLastError(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL PluginCore_Init(LPVOID lParam = NULL); +extern "C" XBOOL PluginCore_Init(XPVOID lParam = NULL); /******************************************************************** 函数名称:PluginCore_UnInit 函数功能:卸载插件 @@ -101,4 +101,4 @@ extern "C" void PluginCore_UnInit(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file +extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp index ea78d02..897e9b8 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp @@ -33,7 +33,7 @@ CPlugin_Meter::~CPlugin_Meter() 意思:是否成功 备注: *********************************************************************/ -BOOL CPlugin_Meter::PluginCore_Init(LPVOID lParam) +XBOOL CPlugin_Meter::PluginCore_Init(XPVOID lParam) { Meter_IsErrorOccur = FALSE; @@ -59,7 +59,7 @@ void CPlugin_Meter::PluginCore_UnInit() 意思:是否成功 备注: *********************************************************************/ -BOOL CPlugin_Meter::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +XBOOL CPlugin_Meter::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { Meter_IsErrorOccur = FALSE; @@ -69,10 +69,10 @@ BOOL CPlugin_Meter::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pI Meter_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_METER_PARAMENT; return FALSE; } - TCHAR tszKeyName[128]; - TCHAR tszParamType[128]; - TCHAR tszParamValue[128]; - TCHAR tszParamSource[128]; + XCHAR tszKeyName[128]; + XCHAR tszParamType[128]; + XCHAR tszParamValue[128]; + XCHAR tszParamSource[128]; Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -122,7 +122,7 @@ BOOL CPlugin_Meter::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pI ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// -BOOL CPlugin_Meter::Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Json::Value *pSt_JsonObject) +XBOOL CPlugin_Meter::Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Json::Value *pSt_JsonObject) { Meter_IsErrorOccur = FALSE; @@ -193,7 +193,7 @@ BOOL CPlugin_Meter::Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Jso (*pSt_JsonObject)["Length"] = st_JsonObejct; return TRUE; } -BOOL CPlugin_Meter::Plugin_Meter_TemperatureConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) +XBOOL CPlugin_Meter::Plugin_Meter_TemperatureConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) { Meter_IsErrorOccur = FALSE; @@ -208,7 +208,7 @@ BOOL CPlugin_Meter::Plugin_Meter_TemperatureConvert(int nSource, __int64x nValue (*pSt_JsonObject)["Temperature"] = st_JsonObejct; return TRUE; } -BOOL CPlugin_Meter::Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) +XBOOL CPlugin_Meter::Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) { Meter_IsErrorOccur = FALSE; @@ -222,7 +222,7 @@ BOOL CPlugin_Meter::Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Json (*pSt_JsonObject)["Power"] = st_JsonObejct; return TRUE; } -BOOL CPlugin_Meter::Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) +XBOOL CPlugin_Meter::Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) { Meter_IsErrorOccur = FALSE; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.h index 9e7b043..4b1718a 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.h @@ -17,13 +17,13 @@ public: CPlugin_Meter(); ~CPlugin_Meter(); public: - BOOL PluginCore_Init(LPVOID lParam); + XBOOL PluginCore_Init(XPVOID lParam); void PluginCore_UnInit(); - BOOL PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen); + XBOOL PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); protected: - BOOL Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Json::Value *pSt_JsonObject); - BOOL Plugin_Meter_TemperatureConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); - BOOL Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); - BOOL Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); + XBOOL Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Json::Value *pSt_JsonObject); + XBOOL Plugin_Meter_TemperatureConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); + XBOOL Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); + XBOOL Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); private: }; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp index daed8c8..f130bae 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp @@ -1,9 +1,9 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -BOOL APIENTRY DllMain( HMODULE hModule, +XBOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, - LPVOID lpReserved + XPVOID lpReserved ) { switch (ul_reason_for_call) diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp index 9248161..8659fc7 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -BOOL Meter_IsErrorOccur = FALSE; +XBOOL Meter_IsErrorOccur = FALSE; DWORD Meter_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Meter m_PluginMeter; @@ -25,7 +25,7 @@ extern "C" DWORD PluginCore_GetLastError() /********************************************************************************* * 导出函数定义 * *********************************************************************************/ -extern "C" BOOL PluginCore_Init(LPVOID lParam) +extern "C" XBOOL PluginCore_Init(XPVOID lParam) { return m_PluginMeter.PluginCore_Init(lParam); } @@ -33,7 +33,7 @@ extern "C" void PluginCore_UnInit() { m_PluginMeter.PluginCore_UnInit(); } -extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { return m_PluginMeter.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h index abb8e8b..f46ea2f 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h @@ -35,7 +35,7 @@ // Purpose: 公用头文件 // History: *********************************************************************/ -extern BOOL Meter_IsErrorOccur; +extern XBOOL Meter_IsErrorOccur; extern DWORD Meter_dwErrorCode; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/PluginPass_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/PluginPass_Define.h index acbc83b..840f2ea 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/PluginPass_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/PluginPass_Define.h @@ -30,7 +30,7 @@ extern "C" DWORD PluginCore_GetLastError(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL PluginCore_Init(LPVOID lParam = NULL); +extern "C" XBOOL PluginCore_Init(XPVOID lParam = NULL); /******************************************************************** 函数名称:PluginCore_UnInit 函数功能:卸载插件 @@ -48,4 +48,4 @@ extern "C" void PluginCore_UnInit(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file +extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp index e92a222..9f02475 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp @@ -33,7 +33,7 @@ CPlugin_Password::~CPlugin_Password() 意思:是否成功 备注: *********************************************************************/ -BOOL CPlugin_Password::PluginCore_Init(LPVOID lParam) +XBOOL CPlugin_Password::PluginCore_Init(XPVOID lParam) { Pass_IsErrorOccur = FALSE; @@ -59,7 +59,7 @@ void CPlugin_Password::PluginCore_UnInit() 意思:是否成功 备注: *********************************************************************/ -BOOL CPlugin_Password::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +XBOOL CPlugin_Password::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { Pass_IsErrorOccur = FALSE; @@ -69,10 +69,10 @@ BOOL CPlugin_Password::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* Pass_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PASS_PARAMENT; return FALSE; } - TCHAR tszKeyName[128]; - TCHAR tszParamType[128]; - TCHAR tszParamLength[128]; - TCHAR tszPassword[MAX_PATH]; + XCHAR tszKeyName[128]; + XCHAR tszParamType[128]; + XCHAR tszParamLength[128]; + XCHAR tszPassword[MAX_PATH]; Json::Value st_JsonRoot; Json::Value st_JsonObject; Json::StreamWriterBuilder st_JsonBuilder; @@ -102,13 +102,13 @@ BOOL CPlugin_Password::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// -BOOL CPlugin_Password::Plugin_Password_Creator(LPCTSTR lpszPassType, LPCTSTR lpszLength, TCHAR* ptszPassStr) +XBOOL CPlugin_Password::Plugin_Password_Creator(LPCXSTR lpszPassType, LPCXSTR lpszLength, XCHAR* ptszPassStr) { Pass_IsErrorOccur = FALSE; int nType = _ttoi(lpszPassType); int nLen = _ttoi(lpszLength); - TCHAR tszPassBuffer[MAX_PATH]; + XCHAR tszPassBuffer[MAX_PATH]; memset(tszPassBuffer, '\0', MAX_PATH); if (0 == nType) diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.h index e335ff5..63d2064 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.h @@ -17,10 +17,10 @@ public: CPlugin_Password(); ~CPlugin_Password(); public: - BOOL PluginCore_Init(LPVOID lParam); + XBOOL PluginCore_Init(XPVOID lParam); void PluginCore_UnInit(); - BOOL PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen); + XBOOL PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); protected: - BOOL Plugin_Password_Creator(LPCTSTR lpszPassType, LPCTSTR lpszLength, TCHAR* ptszPassStr); + XBOOL Plugin_Password_Creator(LPCXSTR lpszPassType, LPCXSTR lpszLength, XCHAR* ptszPassStr); private: }; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp index daed8c8..f130bae 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp @@ -1,9 +1,9 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -BOOL APIENTRY DllMain( HMODULE hModule, +XBOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, - LPVOID lpReserved + XPVOID lpReserved ) { switch (ul_reason_for_call) diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp index 4bcb196..c053353 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -BOOL Pass_IsErrorOccur = FALSE; +XBOOL Pass_IsErrorOccur = FALSE; DWORD Pass_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Password m_PluginPass; @@ -25,7 +25,7 @@ extern "C" DWORD PluginCore_GetLastError() /********************************************************************************* * 导出函数定义 * *********************************************************************************/ -extern "C" BOOL PluginCore_Init(LPVOID lParam) +extern "C" XBOOL PluginCore_Init(XPVOID lParam) { return m_PluginPass.PluginCore_Init(lParam); } @@ -33,7 +33,7 @@ extern "C" void PluginCore_UnInit() { m_PluginPass.PluginCore_UnInit(); } -extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { return m_PluginPass.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.h index e1d7253..d1a686d 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.h @@ -33,7 +33,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern BOOL Pass_IsErrorOccur; +extern XBOOL Pass_IsErrorOccur; extern DWORD Pass_dwErrorCode; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp index ce97982..6da719f 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp @@ -33,7 +33,7 @@ CModulePlugin_APIPhone::~CModulePlugin_APIPhone() 意思:是否成功 备注: *********************************************************************/ -BOOL CModulePlugin_APIPhone::PluginCore_Init(LPVOID lParam) +XBOOL CModulePlugin_APIPhone::PluginCore_Init(XPVOID lParam) { Phone_IsErrorOccur = FALSE; @@ -65,7 +65,7 @@ void CModulePlugin_APIPhone::PluginCore_UnInit() 意思:是否成功 备注: *********************************************************************/ -BOOL CModulePlugin_APIPhone::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +XBOOL CModulePlugin_APIPhone::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { Phone_IsErrorOccur = FALSE; @@ -75,8 +75,8 @@ BOOL CModulePlugin_APIPhone::PluginCore_Call(TCHAR*** pppHDRList, int nListCount Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_PARAMENT; return FALSE; } - TCHAR tszKeyName[128]; - TCHAR tszKeyValue[128]; + XCHAR tszKeyName[128]; + XCHAR tszKeyValue[128]; Json::Value st_JsonRoot; Json::Value st_JsonObject; Json::StreamWriterBuilder st_JsonBuilder; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.h index 91988c1..2a4a7e2 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.h @@ -17,9 +17,9 @@ public: CModulePlugin_APIPhone(); ~CModulePlugin_APIPhone(); public: - BOOL PluginCore_Init(LPVOID lParam); + XBOOL PluginCore_Init(XPVOID lParam); void PluginCore_UnInit(); - BOOL PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen); + XBOOL PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); protected: private: CModulePlugin_DBPhone m_DBPhone; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp index ebe9ad5..a0e1c04 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp @@ -34,7 +34,7 @@ CModulePlugin_DBPhone::~CModulePlugin_DBPhone() 意思:是否成功 备注: *********************************************************************/ -BOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Init(LPCTSTR lpszSQLFile) +XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Init(LPCXSTR lpszSQLFile) { Phone_IsErrorOccur = FALSE; @@ -53,7 +53,7 @@ BOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Init(LPCTSTR lpszSQLFile) return FALSE; } //申请内存 - ptszMsgBuffer = (TCHAR*)malloc(XENGINE_APISERVICE_DATABASE_PHONE_BUFFER_SIZE); + ptszMsgBuffer = (XCHAR*)malloc(XENGINE_APISERVICE_DATABASE_PHONE_BUFFER_SIZE); if (NULL == ptszMsgBuffer) { Phone_IsErrorOccur = TRUE; @@ -84,7 +84,7 @@ BOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Init(LPCTSTR lpszSQLFile) 意思:是否成功 备注: *********************************************************************/ -BOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Destory() +XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Destory() { Phone_IsErrorOccur = FALSE; @@ -110,7 +110,7 @@ BOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Destory() 意思:是否成功 备注: *********************************************************************/ -BOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCTSTR lpszPhoneNumber, XENGINE_PHONEINFO* pSt_PhoneInfo) +XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, XENGINE_PHONEINFO* pSt_PhoneInfo) { Phone_IsErrorOccur = FALSE; @@ -125,7 +125,7 @@ BOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCTSTR lpszPhoneNumber, //不能超过7 if (nPLen > 7) { - TCHAR tszPhone[64]; + XCHAR tszPhone[64]; memset(tszPhone, '\0', sizeof(tszPhone)); memcpy(tszPhone, lpszPhoneNumber, 7); @@ -207,15 +207,15 @@ BOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCTSTR lpszPhoneNumber, 意思:是否成功 备注: *********************************************************************/ -BOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Convert(LPCTSTR lpszPhoneInfo, int nMsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo) +XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Convert(LPCXSTR lpszPhoneInfo, int nMsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo) { Phone_IsErrorOccur = FALSE; - TCHAR tszMsgBuffer[128]; + XCHAR tszMsgBuffer[128]; memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); memcpy(tszMsgBuffer, lpszPhoneInfo, nMsgLen); //省 - TCHAR* ptszTokStr = _tcstok(tszMsgBuffer, _T("|")); + XCHAR* ptszTokStr = _tcstok(tszMsgBuffer, _T("|")); if (NULL == ptszTokStr) { Phone_IsErrorOccur = TRUE; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.h index 56a1503..b3f289e 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.h @@ -32,15 +32,15 @@ public: CModulePlugin_DBPhone(); ~CModulePlugin_DBPhone(); public: - BOOL ModuleDatabase_Phone_Init(LPCTSTR lpszSQLFile); - BOOL ModuleDatabase_Phone_Destory(); - BOOL ModuleDatabase_Phone_Query(LPCTSTR lpszPhoneNumber, XENGINE_PHONEINFO* pSt_PhoneInfo); + XBOOL ModuleDatabase_Phone_Init(LPCXSTR lpszSQLFile); + XBOOL ModuleDatabase_Phone_Destory(); + XBOOL ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, XENGINE_PHONEINFO* pSt_PhoneInfo); protected: - BOOL ModuleDatabase_Phone_Convert(LPCTSTR lpszPhoneInfo, int nMsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo); + XBOOL ModuleDatabase_Phone_Convert(LPCXSTR lpszPhoneInfo, int nMsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo); private: XENGINE_DBPHONEHDR st_PhoneHdr; private: size_t nFLen = 0; size_t nCount = 0; - TCHAR* ptszMsgBuffer; + XCHAR* ptszMsgBuffer; }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/PluginPhone_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/PluginPhone_Define.h index 6297cc5..37f1351 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/PluginPhone_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/PluginPhone_Define.h @@ -26,8 +26,8 @@ typedef enum ////////////////////////////////////////////////////////////////////////// typedef struct { - TCHAR tszProvincer[64]; //省/自治区/直辖市 - TCHAR tszCity[64]; //市/区 + XCHAR tszProvincer[64]; //省/自治区/直辖市 + XCHAR tszCity[64]; //市/区 __int64x nPhoneNumber; //电话号码 int nZipCode; //邮编 int nAreaCode; //区号 @@ -53,7 +53,7 @@ extern "C" DWORD PluginCore_GetLastError(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL PluginCore_Init(LPVOID lParam = NULL); +extern "C" XBOOL PluginCore_Init(XPVOID lParam = NULL); /******************************************************************** 函数名称:PluginCore_UnInit 函数功能:卸载插件 @@ -71,4 +71,4 @@ extern "C" void PluginCore_UnInit(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file +extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp index daed8c8..f130bae 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp @@ -1,9 +1,9 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -BOOL APIENTRY DllMain( HMODULE hModule, +XBOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, - LPVOID lpReserved + XPVOID lpReserved ) { switch (ul_reason_for_call) diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp index de2b4a7..4683cb3 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -BOOL Phone_IsErrorOccur = FALSE; +XBOOL Phone_IsErrorOccur = FALSE; DWORD Phone_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_APIPhone m_PluginPhone; @@ -25,7 +25,7 @@ extern "C" DWORD PluginCore_GetLastError() /********************************************************************************* * 导出函数定义 * *********************************************************************************/ -extern "C" BOOL PluginCore_Init(LPVOID lParam) +extern "C" XBOOL PluginCore_Init(XPVOID lParam) { return m_PluginPhone.PluginCore_Init(lParam); } @@ -33,7 +33,7 @@ extern "C" void PluginCore_UnInit() { m_PluginPhone.PluginCore_UnInit(); } -extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { return m_PluginPhone.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.h index 56952d1..0c7f001 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.h @@ -33,7 +33,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern BOOL Phone_IsErrorOccur; +extern XBOOL Phone_IsErrorOccur; extern DWORD Phone_dwErrorCode; #include "ModulePlugin_DBPhone/ModulePlugin_DBPhone.h" diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp index 80e75e9..d9586f5 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp @@ -33,7 +33,7 @@ CPlugin_Timezone::~CPlugin_Timezone() 意思:是否成功 备注: *********************************************************************/ -BOOL CPlugin_Timezone::PluginCore_Init(LPVOID lParam) +XBOOL CPlugin_Timezone::PluginCore_Init(XPVOID lParam) { Timezone_IsErrorOccur = FALSE; @@ -521,7 +521,7 @@ void CPlugin_Timezone::PluginCore_UnInit() 意思:是否成功 备注: *********************************************************************/ -BOOL CPlugin_Timezone::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +XBOOL CPlugin_Timezone::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { Timezone_IsErrorOccur = FALSE; @@ -531,10 +531,10 @@ BOOL CPlugin_Timezone::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* Timezone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_TIMEZONE_PARAMENT; return FALSE; } - TCHAR tszKeyName[128]; - TCHAR tszParamType[128]; - TCHAR tszParamCvt[128]; - TCHAR tszParamTime[128]; + XCHAR tszKeyName[128]; + XCHAR tszParamType[128]; + XCHAR tszParamCvt[128]; + XCHAR tszParamTime[128]; memset(tszKeyName, '\0', sizeof(tszKeyName)); memset(tszParamType, '\0', sizeof(tszParamType)); @@ -571,7 +571,7 @@ BOOL CPlugin_Timezone::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// -BOOL CPlugin_Timezone::Plugin_Timezone_Count(TCHAR* ptszMsgBufer, int* pInt_Len) +XBOOL CPlugin_Timezone::Plugin_Timezone_Count(XCHAR* ptszMsgBufer, int* pInt_Len) { Timezone_IsErrorOccur = FALSE; @@ -589,7 +589,7 @@ BOOL CPlugin_Timezone::Plugin_Timezone_Count(TCHAR* ptszMsgBufer, int* pInt_Len) memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len); return TRUE; } -BOOL CPlugin_Timezone::Plugin_Timezone_List(LPCTSTR lpszConvert, TCHAR* ptszMsgBufer, int* pInt_Len) +XBOOL CPlugin_Timezone::Plugin_Timezone_List(LPCXSTR lpszConvert, XCHAR* ptszMsgBufer, int* pInt_Len) { Timezone_IsErrorOccur = FALSE; @@ -624,7 +624,7 @@ BOOL CPlugin_Timezone::Plugin_Timezone_List(LPCTSTR lpszConvert, TCHAR* ptszMsgB memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len); return TRUE; } -BOOL CPlugin_Timezone::Plugin_Timezone_Convert(LPCTSTR lpszConvert, LPCTSTR lpszTimeStr, TCHAR* ptszMsgBufer, int* pInt_Len) +XBOOL CPlugin_Timezone::Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lpszTimeStr, XCHAR* ptszMsgBufer, int* pInt_Len) { Timezone_IsErrorOccur = FALSE; @@ -637,7 +637,7 @@ BOOL CPlugin_Timezone::Plugin_Timezone_Convert(LPCTSTR lpszConvert, LPCTSTR lpsz { return FALSE; } - TCHAR tszTimeStr[64]; + XCHAR tszTimeStr[64]; XENGINE_LIBTIMER st_TimeStart; XENGINE_LIBTIMER st_TimeEnd; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.h index d5ef3ff..1b0371b 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.h @@ -13,7 +13,7 @@ typedef struct { XENGINE_LIBTIMER st_TimeZone; - TCHAR tszTimeCountry[MAX_PATH]; + XCHAR tszTimeCountry[MAX_PATH]; }MODULEPLUGIN_TIMEZONE; @@ -23,13 +23,13 @@ public: CPlugin_Timezone(); ~CPlugin_Timezone(); public: - BOOL PluginCore_Init(LPVOID lParam); + XBOOL PluginCore_Init(XPVOID lParam); void PluginCore_UnInit(); - BOOL PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen); + XBOOL PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); protected: - BOOL Plugin_Timezone_Count(TCHAR* ptszMsgBufer, int* pInt_Len); - BOOL Plugin_Timezone_List(LPCTSTR lpszConvert, TCHAR* ptszMsgBufer, int* pInt_Len); - BOOL Plugin_Timezone_Convert(LPCTSTR lpszConvert, LPCTSTR lpszTimeStr, TCHAR* ptszMsgBufer, int* pInt_Len); + XBOOL Plugin_Timezone_Count(XCHAR* ptszMsgBufer, int* pInt_Len); + XBOOL Plugin_Timezone_List(LPCXSTR lpszConvert, XCHAR* ptszMsgBufer, int* pInt_Len); + XBOOL Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lpszTimeStr, XCHAR* ptszMsgBufer, int* pInt_Len); private: unordered_map stl_MapTimezone; }; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Timezone_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Timezone_Define.h index df53fdd..ed441b7 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Timezone_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Timezone_Define.h @@ -30,7 +30,7 @@ extern "C" DWORD PluginCore_GetLastError(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL PluginCore_Init(LPVOID lParam = NULL); +extern "C" XBOOL PluginCore_Init(XPVOID lParam = NULL); /******************************************************************** 函数名称:PluginCore_UnInit 函数功能:卸载插件 @@ -48,4 +48,4 @@ extern "C" void PluginCore_UnInit(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file +extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp index daed8c8..f130bae 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp @@ -1,9 +1,9 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -BOOL APIENTRY DllMain( HMODULE hModule, +XBOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, - LPVOID lpReserved + XPVOID lpReserved ) { switch (ul_reason_for_call) diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp index e7dbfaa..be2c061 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -BOOL Timezone_IsErrorOccur = FALSE; +XBOOL Timezone_IsErrorOccur = FALSE; DWORD Timezone_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Timezone m_PluginTimes; @@ -25,7 +25,7 @@ extern "C" DWORD PluginCore_GetLastError() /********************************************************************************* * 导出函数定义 * *********************************************************************************/ -extern "C" BOOL PluginCore_Init(LPVOID lParam) +extern "C" XBOOL PluginCore_Init(XPVOID lParam) { return m_PluginTimes.PluginCore_Init(lParam); } @@ -33,7 +33,7 @@ extern "C" void PluginCore_UnInit() { m_PluginTimes.PluginCore_UnInit(); } -extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { return m_PluginTimes.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.h index f4618ee..8188124 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.h @@ -37,7 +37,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern BOOL Timezone_IsErrorOccur; +extern XBOOL Timezone_IsErrorOccur; extern DWORD Timezone_dwErrorCode; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/PluginZodiac_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/PluginZodiac_Define.h index 1a1cae9..7cd1667 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/PluginZodiac_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/PluginZodiac_Define.h @@ -30,7 +30,7 @@ extern "C" DWORD PluginCore_GetLastError(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL PluginCore_Init(LPVOID lParam = NULL); +extern "C" XBOOL PluginCore_Init(XPVOID lParam = NULL); /******************************************************************** 函数名称:PluginCore_UnInit 函数功能:卸载插件 @@ -48,4 +48,4 @@ extern "C" void PluginCore_UnInit(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file +extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp index 2e2994a..610e669 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp @@ -45,7 +45,7 @@ CPlugin_Zodiac::~CPlugin_Zodiac() 意思:是否成功 备注: *********************************************************************/ -BOOL CPlugin_Zodiac::PluginCore_Init(LPVOID lParam) +XBOOL CPlugin_Zodiac::PluginCore_Init(XPVOID lParam) { Zodiac_IsErrorOccur = FALSE; @@ -71,7 +71,7 @@ void CPlugin_Zodiac::PluginCore_UnInit() 意思:是否成功 备注: *********************************************************************/ -BOOL CPlugin_Zodiac::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +XBOOL CPlugin_Zodiac::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { Zodiac_IsErrorOccur = FALSE; @@ -81,10 +81,10 @@ BOOL CPlugin_Zodiac::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* p Zodiac_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_ZODIAC_PARAMENT; return FALSE; } - TCHAR tszKeyName[128]; - TCHAR tszValueName[128]; - TCHAR tszChineseZodiac[64]; - TCHAR tszEnglishZodiac[64]; + XCHAR tszKeyName[128]; + XCHAR tszValueName[128]; + XCHAR tszChineseZodiac[64]; + XCHAR tszEnglishZodiac[64]; Json::Value st_JsonRoot; Json::Value st_JsonObject; Json::StreamWriterBuilder st_JsonBuilder; @@ -114,7 +114,7 @@ BOOL CPlugin_Zodiac::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* p ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// -BOOL CPlugin_Zodiac::Plugin_Zodiac_Chinese(LPCTSTR lpszDate, TCHAR* ptszCZodiac) +XBOOL CPlugin_Zodiac::Plugin_Zodiac_Chinese(LPCXSTR lpszDate, XCHAR* ptszCZodiac) { Zodiac_IsErrorOccur = FALSE; @@ -125,7 +125,7 @@ BOOL CPlugin_Zodiac::Plugin_Zodiac_Chinese(LPCTSTR lpszDate, TCHAR* ptszCZodiac) _tcscpy(ptszCZodiac, m_StrChinese[nYear].c_str()); return TRUE; } -BOOL CPlugin_Zodiac::Plugin_Zodiac_English(LPCTSTR lpszDate, TCHAR* ptszEZodiac) +XBOOL CPlugin_Zodiac::Plugin_Zodiac_English(LPCXSTR lpszDate, XCHAR* ptszEZodiac) { Zodiac_IsErrorOccur = FALSE; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.h index e5491f6..859f3e8 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.h @@ -17,12 +17,12 @@ public: CPlugin_Zodiac(); ~CPlugin_Zodiac(); public: - BOOL PluginCore_Init(LPVOID lParam); + XBOOL PluginCore_Init(XPVOID lParam); void PluginCore_UnInit(); - BOOL PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen); + XBOOL PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); protected: - BOOL Plugin_Zodiac_Chinese(LPCTSTR lpszDate, TCHAR* ptszCZodiac); - BOOL Plugin_Zodiac_English(LPCTSTR lpszDate, TCHAR* ptszEZodiac); + XBOOL Plugin_Zodiac_Chinese(LPCXSTR lpszDate, XCHAR* ptszCZodiac); + XBOOL Plugin_Zodiac_English(LPCXSTR lpszDate, XCHAR* ptszEZodiac); private: string m_StrChinese[12]; }; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp index daed8c8..f130bae 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp @@ -1,9 +1,9 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -BOOL APIENTRY DllMain( HMODULE hModule, +XBOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, - LPVOID lpReserved + XPVOID lpReserved ) { switch (ul_reason_for_call) diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp index 5dad93d..90efc25 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -BOOL Zodiac_IsErrorOccur = FALSE; +XBOOL Zodiac_IsErrorOccur = FALSE; DWORD Zodiac_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Zodiac m_PluginZodiac; @@ -25,7 +25,7 @@ extern "C" DWORD PluginCore_GetLastError() /********************************************************************************* * 导出函数定义 * *********************************************************************************/ -extern "C" BOOL PluginCore_Init(LPVOID lParam) +extern "C" XBOOL PluginCore_Init(XPVOID lParam) { return m_PluginZodiac.PluginCore_Init(lParam); } @@ -33,7 +33,7 @@ extern "C" void PluginCore_UnInit() { m_PluginZodiac.PluginCore_UnInit(); } -extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { return m_PluginZodiac.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.h index 9cec5fa..c6b0caa 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.h @@ -35,7 +35,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern BOOL Zodiac_IsErrorOccur; +extern XBOOL Zodiac_IsErrorOccur; extern DWORD Zodiac_dwErrorCode; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp index e304350..b6fb053 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp @@ -10,9 +10,9 @@ // Purpose: 配置文件操作代码 // History: *********************************************************************/ -BOOL XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* pSt_Configure) +XBOOL XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* pSt_Configure) { - LPCTSTR lpszConfigFile = _T("./XEngine_Config/XEngine_Config.json"); + LPCXSTR lpszConfigFile = _T("./XEngine_Config/XEngine_Config.json"); if (!ModuleConfigure_Json_File(lpszConfigFile, pSt_Configure)) { diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.h index e5c853d..b23e85e 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.h @@ -10,5 +10,5 @@ // Purpose: 配置文件操作代码 // History: *********************************************************************/ -BOOL XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* pSt_Configure); +XBOOL XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* pSt_Configure); void XEngine_Configure_Help(); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp index 38cde1e..cd13b5a 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp @@ -10,7 +10,7 @@ // Purpose: HTTP任务处理代码 // History: *********************************************************************/ -XHTHREAD CALLBACK XEngine_HTTPTask_Thread(LPVOID lParam) +XHTHREAD CALLBACK XEngine_HTTPTask_Thread(XPVOID lParam) { //任务池是编号1开始的. int nThreadPos = *(int*)lParam; @@ -19,14 +19,14 @@ XHTHREAD CALLBACK XEngine_HTTPTask_Thread(LPVOID lParam) while (bIsRun) { //等待编号1的任务池触发一个组完包的事件 - if (!RfcComponents_HttpServer_EventWaitEx(xhHTTPPacket, nThreadPos)) + if (!HttpProtocol_Server_EventWaitEx(xhHTTPPacket, nThreadPos)) { continue; } int nListCount = 0; RFCCOMPONENTS_HTTP_PKTCLIENT** ppSst_ListAddr; //获得编号1的所有待处理任务的客户端列表(也就是客户端发送过来的数据已经组好了一个包,需要我们处理) - RfcComponents_HttpServer_GetPoolEx(xhHTTPPacket, nThreadPos, &ppSst_ListAddr, &nListCount); + HttpProtocol_Server_GetPoolEx(xhHTTPPacket, nThreadPos, &ppSst_ListAddr, &nListCount); //先循环客户端 for (int i = 0; i < nListCount; i++) { @@ -39,7 +39,7 @@ XHTHREAD CALLBACK XEngine_HTTPTask_Thread(LPVOID lParam) memset(&st_HTTPReqparam, '\0', sizeof(RFCCOMPONENTS_HTTP_REQPARAM)); //得到一个指定客户端的完整数据包 - if (RfcComponents_HttpServer_GetMemoryEx(xhHTTPPacket, ppSst_ListAddr[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &st_HTTPReqparam)) + if (HttpProtocol_Server_GetMemoryEx(xhHTTPPacket, ppSst_ListAddr[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &st_HTTPReqparam)) { //在另外一个函数里面处理数据 XEngine_HTTPTask_Handle(&st_HTTPReqparam, ppSst_ListAddr[i]->tszClientAddr, ptszMsgBuffer, nMsgLen); @@ -52,12 +52,12 @@ XHTHREAD CALLBACK XEngine_HTTPTask_Thread(LPVOID lParam) } return 0; } -BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR lpszClientAddr, LPCTSTR lpszRVBuffer, int nRVLen) +XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen) { int nMsgLen = 4096; - LPCTSTR lpszMethodPost = _T("POST"); - LPCTSTR lpszMethodGet = _T("GET"); - TCHAR tszMsgBuffer[4096]; + LPCXSTR lpszMethodPost = _T("POST"); + LPCXSTR lpszMethodGet = _T("GET"); + XCHAR tszMsgBuffer[4096]; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); @@ -66,40 +66,40 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR st_HDRParam.nHttpCode = 200; //HTTP CODE码 st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 - TCHAR** pptszList; - TCHAR tszUrlName[128]; + XCHAR** pptszList; + XCHAR tszUrlName[128]; int nListCount = 0; memset(tszUrlName, '\0', sizeof(tszUrlName)); //得到URL参数个数 - RfcComponents_HttpHelp_GetParament(pSt_HTTPParam->tszHttpUri, &pptszList, &nListCount, tszUrlName); + HttpProtocol_ServerHelp_GetParament(pSt_HTTPParam->tszHttpUri, &pptszList, &nListCount, tszUrlName); if (nListCount < 1) { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return FALSE; } - TCHAR tszKey[MAX_PATH]; - TCHAR tszValue[MAX_PATH]; - LPCTSTR lpszFuncName = _T("api"); - LPCTSTR lpszParamFuncKey = _T("function"); - LPCTSTR lpszParamName = _T("params1"); + XCHAR tszKey[MAX_PATH]; + XCHAR tszValue[MAX_PATH]; + LPCXSTR lpszFuncName = _T("api"); + LPCXSTR lpszParamFuncKey = _T("function"); + LPCXSTR lpszParamName = _T("params1"); //get - LPCTSTR lpszParamOPtions = _T("options"); - LPCTSTR lpszParamIDCard = _T("id"); - LPCTSTR lpszParamBank = _T("bank"); - LPCTSTR lpszParamLanguage = _T("language"); - LPCTSTR lpszParamTranslation = _T("translation"); - LPCTSTR lpszParamLocker = _T("lock"); - LPCTSTR lpszParamQRCode = _T("qrcode"); + LPCXSTR lpszParamOPtions = _T("options"); + LPCXSTR lpszParamIDCard = _T("id"); + LPCXSTR lpszParamBank = _T("bank"); + LPCXSTR lpszParamLanguage = _T("language"); + LPCXSTR lpszParamTranslation = _T("translation"); + LPCXSTR lpszParamLocker = _T("lock"); + LPCXSTR lpszParamQRCode = _T("qrcode"); //post - LPCTSTR lpszParamP2PClient = _T("p2p"); - LPCTSTR lpszParamZIPCode = _T("zipcode"); - LPCTSTR lpszParamXLog = _T("log"); - LPCTSTR lpszParamTest = _T("test"); + LPCXSTR lpszParamP2PClient = _T("p2p"); + LPCXSTR lpszParamZIPCode = _T("zipcode"); + LPCXSTR lpszParamXLog = _T("log"); + LPCXSTR lpszParamTest = _T("test"); memset(tszKey, '\0', MAX_PATH); memset(tszValue, '\0', MAX_PATH); @@ -107,7 +107,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR if (0 != _tcsnicmp(lpszFuncName, tszUrlName, _tcslen(lpszFuncName))) { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); @@ -118,7 +118,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR if (0 != _tcsnicmp(lpszParamFuncKey, tszKey, _tcslen(lpszParamFuncKey))) { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); @@ -142,7 +142,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); @@ -159,7 +159,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); @@ -176,7 +176,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); @@ -193,7 +193,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); @@ -210,7 +210,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); @@ -221,7 +221,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR else { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的请求不支持:%s,内容:\r\n%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri, lpszRVBuffer); } @@ -242,7 +242,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); @@ -259,7 +259,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); @@ -270,7 +270,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR else if (0 == _tcsnicmp(lpszParamLanguage, tszValue, _tcslen(lpszParamLanguage))) { //是不是语言转换 - TCHAR tszCvtType[64]; + XCHAR tszCvtType[64]; memset(tszCvtType, '\0', sizeof(tszCvtType)); memset(tszKey, '\0', sizeof(tszKey)); @@ -280,7 +280,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); @@ -294,7 +294,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR else if (0 == _tcsnicmp(lpszParamTranslation, tszValue, _tcslen(lpszParamTranslation))) { //是不是翻译 - TCHAR tszCvtType[64]; + XCHAR tszCvtType[64]; memset(tszCvtType, '\0', sizeof(tszCvtType)); memset(tszKey, '\0', sizeof(tszKey)); @@ -304,7 +304,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); @@ -318,8 +318,8 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR else if (0 == _tcsnicmp(lpszParamLocker, tszValue, _tcslen(lpszParamLocker))) { //是不是分布式锁 - TCHAR tszLockToken[128]; - TCHAR tszLockType[64]; + XCHAR tszLockToken[128]; + XCHAR tszLockType[64]; memset(tszKey, '\0', sizeof(tszKey)); memset(tszLockToken, '\0', sizeof(tszLockToken)); @@ -332,7 +332,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR else { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的请求不支持:%s,内容:\r\n%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri, lpszRVBuffer); } diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h index d9c4915..0e07377 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h @@ -11,6 +11,6 @@ // History: *********************************************************************/ //任务处理池,用来获取一个完整包 -XHTHREAD CALLBACK XEngine_HTTPTask_Thread(LPVOID lParam); +XHTHREAD CALLBACK XEngine_HTTPTask_Thread(XPVOID lParam); //任务处理相关函数,处理包的内容 -BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR lpszClientAddr, LPCTSTR lpszRVBuffer, int nRVLen); \ No newline at end of file +XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.cpp index ca389b3..7dc60ca 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.cpp @@ -1,15 +1,15 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_BankInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszBankNumber) +XBOOL XEngine_HTTPTask_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber) { int nMsgLen = 4096; int nPktLen = 4096; int nBLen = 0; - TCHAR* ptszBodyBuffer; - TCHAR tszMsgBuffer[4096]; - TCHAR tszPktBuffer[4096]; - TCHAR tszUrlBuffer[MAX_PATH]; + XCHAR* ptszBodyBuffer; + XCHAR tszMsgBuffer[4096]; + XCHAR tszPktBuffer[4096]; + XCHAR tszUrlBuffer[MAX_PATH]; XENGINE_BANKINFO st_BankInfo; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 @@ -30,7 +30,7 @@ BOOL XEngine_HTTPTask_BankInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszBankNumber) { ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, NULL, 1001, _T("banknumber is corrent")); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的银行卡号码错误:%s"), lpszClientAddr, lpszBankNumber); return FALSE; @@ -40,14 +40,14 @@ BOOL XEngine_HTTPTask_BankInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszBankNumber) if (!ModuleDatabase_Bank_Query(&st_BankInfo)) { ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, NULL, 1010, _T("not found")); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的银行卡信息没有找到:%s"), lpszClientAddr, lpszBankNumber); return FALSE; } //打包发送 ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, &st_BankInfo); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,发送银行卡信息获取请求给服务器,查询号码:%s"), lpszClientAddr, lpszBankNumber); return TRUE; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.h index 994afd9..f3c999e 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_BankInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszBankNumber); \ No newline at end of file +XBOOL XEngine_HTTPTask_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.cpp index 7687f64..a38e2ff 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.cpp @@ -1,11 +1,11 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_IDCard(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer) +XBOOL XEngine_HTTPTask_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer) { int nMsgLen = 4096; int nPktLen = 4096; - TCHAR tszMsgBuffer[4096]; - TCHAR tszPktBuffer[4096]; + XCHAR tszMsgBuffer[4096]; + XCHAR tszPktBuffer[4096]; XENGINE_IDREGION st_IDRegion; XENGINE_IDCARDINFO st_IDCardInfo; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 @@ -22,7 +22,7 @@ BOOL XEngine_HTTPTask_IDCard(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer) if (!ModuleProtocol_Parse_IDCard(lpszMsgBuffer, &st_IDCardInfo)) { ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1001, _T("idnumber is incorrent")); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的身份证编号不正确:%s"), lpszClientAddr, lpszMsgBuffer); return FALSE; @@ -31,7 +31,7 @@ BOOL XEngine_HTTPTask_IDCard(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer) if (!ModuleHelp_IDCard_CheckBirth(&st_IDCardInfo)) { ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1002, _T("idnumber is incorrent")); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的身份证验证生日失败:%s"), lpszClientAddr, lpszMsgBuffer); return FALSE; @@ -39,14 +39,14 @@ BOOL XEngine_HTTPTask_IDCard(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer) if (!ModuleHelp_IDCard_CheckSum(&st_IDCardInfo)) { ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1010, _T("not found")); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的身份证验证校验码失败:%s"), lpszClientAddr, lpszMsgBuffer); return FALSE; } ModuleDatabase_IDCard_QueryRegion(&st_IDRegion, &st_IDCardInfo); ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, &st_IDCardInfo, &st_IDRegion); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求身份证号码验证与信息查询成功,号码:%s"), lpszClientAddr, lpszMsgBuffer); return TRUE; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.h index 51f9ee3..8173e8f 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_IDCard(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer); \ No newline at end of file +XBOOL XEngine_HTTPTask_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.cpp index e021103..df6b42b 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.cpp @@ -1,12 +1,12 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_Language(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nConvertType) +XBOOL XEngine_HTTPTask_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType) { int nMsgLen = 4096; int nPktLen = 4096; - TCHAR tszMsgBuffer[4096]; - TCHAR tszPktBuffer[4096]; + XCHAR tszMsgBuffer[4096]; + XCHAR tszPktBuffer[4096]; XENGINE_LANGUAGEINFO st_LanguageInfo; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 @@ -78,7 +78,7 @@ BOOL XEngine_HTTPTask_Language(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, in } //打包发送 ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, &st_LanguageInfo); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求语言转换成功,原始语言:%s,目标语言:%s"), lpszClientAddr, st_LanguageInfo.tszSourceStr, st_LanguageInfo.tszDestStr); return TRUE; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.h index efc91f9..c64bd51 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_Language(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nConvertType); \ No newline at end of file +XBOOL XEngine_HTTPTask_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Locker.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Locker.cpp index b563575..189e476 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Locker.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Locker.cpp @@ -1,11 +1,11 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_Locker(LPCTSTR lpszClientAddr, __int64x xhToken, ENUM_XENGINE_APISERVICE_LOCKER_TYPE enLockType) +XBOOL XEngine_HTTPTask_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XENGINE_APISERVICE_LOCKER_TYPE enLockType) { int nSDLen = 4096; int nRVLen = 4096; - TCHAR tszSDBuffer[4096]; - TCHAR tszRVBuffer[4096]; + XCHAR tszSDBuffer[4096]; + XCHAR tszRVBuffer[4096]; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); @@ -20,7 +20,7 @@ BOOL XEngine_HTTPTask_Locker(LPCTSTR lpszClientAddr, __int64x xhToken, ENUM_XENG XNETHANDLE xhToken = 0; ModuleHelp_Locker_Create(&xhToken); ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求创建锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); } @@ -31,13 +31,13 @@ BOOL XEngine_HTTPTask_Locker(LPCTSTR lpszClientAddr, __int64x xhToken, ENUM_XENG { DWORD dwRet = ModuleHelp_GetLastError(); ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求打开锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); return FALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求打开锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); } @@ -45,7 +45,7 @@ BOOL XEngine_HTTPTask_Locker(LPCTSTR lpszClientAddr, __int64x xhToken, ENUM_XENG { ModuleHelp_Locker_Close(xhToken); ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求关闭锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); } @@ -55,13 +55,13 @@ BOOL XEngine_HTTPTask_Locker(LPCTSTR lpszClientAddr, __int64x xhToken, ENUM_XENG { DWORD dwRet = ModuleHelp_GetLastError(); ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求读加锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); return FALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求读加锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); } @@ -71,13 +71,13 @@ BOOL XEngine_HTTPTask_Locker(LPCTSTR lpszClientAddr, __int64x xhToken, ENUM_XENG { DWORD dwRet = ModuleHelp_GetLastError(); ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求读解锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); return FALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求读解锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); } @@ -87,13 +87,13 @@ BOOL XEngine_HTTPTask_Locker(LPCTSTR lpszClientAddr, __int64x xhToken, ENUM_XENG { DWORD dwRet = ModuleHelp_GetLastError(); ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求写加锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); return FALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求写加锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); } @@ -103,20 +103,20 @@ BOOL XEngine_HTTPTask_Locker(LPCTSTR lpszClientAddr, __int64x xhToken, ENUM_XENG { DWORD dwRet = ModuleHelp_GetLastError(); ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求写解锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); return FALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求写解锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); } else { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求了一条未知的子协议:%d"), lpszClientAddr, enLockType); } diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Locker.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Locker.h index 96b0e6b..971c481 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Locker.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Locker.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_Locker(LPCTSTR lpszClientAddr,__int64x nToken, ENUM_XENGINE_APISERVICE_LOCKER_TYPE enLockType); \ No newline at end of file +XBOOL XEngine_HTTPTask_Locker(LPCXSTR lpszClientAddr,__int64x nToken, ENUM_XENGINE_APISERVICE_LOCKER_TYPE enLockType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Log.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Log.cpp index 31a4802..84f4867 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Log.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Log.cpp @@ -1,11 +1,11 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_LogInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen, int nType) +XBOOL XEngine_HTTPTask_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 0; int nRVLen = 0; - TCHAR tszSDBuffer[4096]; - TCHAR tszRVBuffer[4096]; + XCHAR tszSDBuffer[4096]; + XCHAR tszRVBuffer[4096]; XENGINE_XLOGINFO st_XLogInfo; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 @@ -22,7 +22,7 @@ BOOL XEngine_HTTPTask_LogInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int { ModuleDatabase_XLog_Create(st_XLogInfo.tszTableName); ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求日志表创建成功,创建的表:%s,"), lpszClientAddr, st_XLogInfo.tszTableName); } @@ -30,7 +30,7 @@ BOOL XEngine_HTTPTask_LogInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int { ModuleDatabase_XLog_Insert(&st_XLogInfo); ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求日志插入成功,插入的表:%s,日志大小:%d"), lpszClientAddr, st_XLogInfo.tszTableName, st_XLogInfo.nLogSize); } @@ -40,7 +40,7 @@ BOOL XEngine_HTTPTask_LogInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int XENGINE_XLOGINFO** ppSt_XLogInfo; ModuleDatabase_XLog_Query(&ppSt_XLogInfo, &nListCount, st_XLogInfo.tszTableName, st_XLogInfo.tszTimeStart, st_XLogInfo.tszTimeEnd); ModuleProtocol_Packet_Log(tszRVBuffer, &nRVLen, &ppSt_XLogInfo, nListCount); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求日志查询成功,查询的表:%s,查询日期:%s - %s,查询条数:%d"), lpszClientAddr, st_XLogInfo.tszTableName, st_XLogInfo.tszTimeStart, st_XLogInfo.tszTimeEnd, nListCount); } @@ -48,7 +48,7 @@ BOOL XEngine_HTTPTask_LogInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int { ModuleDatabase_XLog_Delete(st_XLogInfo.tszTableName); ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求日志删除成功,删除的表:%s"), lpszClientAddr, st_XLogInfo.tszTableName); } diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Log.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Log.h index 3379ca0..8f1e2c6 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Log.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Log.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_LogInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file +XBOOL XEngine_HTTPTask_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.cpp index bb7cddb..aa73ea3 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.cpp @@ -1,12 +1,12 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_OPTions(LPCTSTR lpszClientAddr) +XBOOL XEngine_HTTPTask_OPTions(LPCXSTR lpszClientAddr) { int nMsgLen = 4096; int nPktLen = 4096; - TCHAR tszMsgBuffer[4096]; - TCHAR tszPktBuffer[4096]; + XCHAR tszMsgBuffer[4096]; + XCHAR tszPktBuffer[4096]; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); @@ -17,12 +17,12 @@ BOOL XEngine_HTTPTask_OPTions(LPCTSTR lpszClientAddr) st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 //解析能力配置 XENGINE_OPTIONLIST st_OPtionList; - LPCTSTR lpszOPFile = _T("./XEngine_Config/XEngine_OPtionConfig.json"); + LPCXSTR lpszOPFile = _T("./XEngine_Config/XEngine_OPtionConfig.json"); FILE* pSt_File = _tfopen(lpszOPFile, _T("rb")); if (NULL == pSt_File) { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,查询服务器能力失败,没有找到配置文件"), lpszClientAddr); return FALSE; @@ -30,7 +30,7 @@ BOOL XEngine_HTTPTask_OPTions(LPCTSTR lpszClientAddr) nPktLen = fread(tszPktBuffer, 1, nPktLen, pSt_File); fclose(pSt_File); //打包发送 - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,查询服务器能力成功"), lpszClientAddr); return TRUE; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.h index e6188d8..f4bcae0 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_OPTions(LPCTSTR lpszClientAddr); \ No newline at end of file +XBOOL XEngine_HTTPTask_OPTions(LPCXSTR lpszClientAddr); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.cpp index 0bb0cd4..0a8b634 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.cpp @@ -1,15 +1,15 @@ #include "../XEngine_Hdr.h" -void CALLBACK XEngine_HTTPTask_P2PCallback(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, LPVOID lParam) +void CALLBACK XEngine_HTTPTask_P2PCallback(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XPVOID lParam) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("HTTP客户端:公网:%s,私网:%s,连接:%s P2P离开"), pSt_P2PProtocol->tszPublicAddr, pSt_P2PProtocol->tszPrivateAddr, pSt_P2PProtocol->tszConnectAddr); } -BOOL XEngine_HTTPTask_P2PClient(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen, int unOperatorCode) +XBOOL XEngine_HTTPTask_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int unOperatorCode) { int nSDLen = 4096; int nRVLen = 4096; - TCHAR tszSDBuffer[4096]; - TCHAR tszRVBuffer[MAX_PATH]; + XCHAR tszSDBuffer[4096]; + XCHAR tszRVBuffer[MAX_PATH]; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); @@ -26,7 +26,7 @@ BOOL XEngine_HTTPTask_P2PClient(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, i if (!ModuleProtocol_Parse_P2PClient(lpszMsgBuffer, nMsgLen, &st_ClientPeer.st_PeerAddr)) { ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen, 400, "协议错误"); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,处理登录错误,解析协议失败,错误码:%lX"), lpszClientAddr, ModuleProtocol_GetLastError()); return FALSE; @@ -47,13 +47,13 @@ BOOL XEngine_HTTPTask_P2PClient(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, i if (!ModuleHelp_P2PClient_Add(&st_ClientPeer)) { ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen, 500, "内部错误"); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,处理登录错误,设置用户信息失败,错误码:%lX"), lpszClientAddr, ModuleHelp_GetLastError()); return FALSE; } ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,处理用户登录请求成功,用户名:%s"), lpszClientAddr, st_ClientPeer.st_PeerAddr.tszUserName); } @@ -65,7 +65,7 @@ BOOL XEngine_HTTPTask_P2PClient(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, i if (!ModuleProtocol_Parse_P2PClient(lpszMsgBuffer, nMsgLen, &st_P2PProtocol)) { ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen, 400, "协议错误"); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,列表请求失败,协议解析错误,错误码:%lX"), lpszClientAddr, ModuleProtocol_GetLastError()); return FALSE; @@ -78,13 +78,13 @@ BOOL XEngine_HTTPTask_P2PClient(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, i if (!ModuleHelp_P2PClient_GetLan(&st_P2PProtocol, &ppSt_ListClients, &nListCount)) { ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen, 500, "内部错误"); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,列表请求失败,请求同步局域网列表失败,公有地址:%s,私有地址:%s,错误码:%lX"), lpszClientAddr, st_P2PProtocol.tszPublicAddr, st_P2PProtocol.tszPrivateAddr, ModuleHelp_GetLastError()); return FALSE; } ModuleProtocol_Packet_P2PLan(tszRVBuffer, &nRVLen, &ppSt_ListClients, nListCount); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_ListClients, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求同步局域网列表成功,公有地址:%s,私有地址:%s"), lpszClientAddr, st_P2PProtocol.tszPublicAddr, st_P2PProtocol.tszPrivateAddr); @@ -93,7 +93,7 @@ BOOL XEngine_HTTPTask_P2PClient(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, i { //公网下所有列表 int nListCount = 0; - TCHAR** ppszClientList; + XCHAR** ppszClientList; list stl_ListClient; if (ModuleHelp_P2PClient_GetLList(st_P2PProtocol.tszPublicAddr, &ppszClientList, &nListCount)) { @@ -117,7 +117,7 @@ BOOL XEngine_HTTPTask_P2PClient(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, i BaseLib_OperatorMemory_Free((XPPPMEM)&ppszClientList, nListCount); } ModuleProtocol_Packet_P2PWLan(tszRVBuffer, &nRVLen, &stl_ListClient); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求同步公有局域网列表成功,公有地址:%s"), lpszClientAddr, st_P2PProtocol.tszPublicAddr); } @@ -125,7 +125,7 @@ BOOL XEngine_HTTPTask_P2PClient(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, i else { st_HDRParam.nHttpCode = 404; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求了一条未知的子协议:%lX"), lpszClientAddr, unOperatorCode); } diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.h index 02bfba9..020c1cb 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.h @@ -1,4 +1,4 @@ #pragma once -void CALLBACK XEngine_HTTPTask_P2PCallback(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, LPVOID lParam); -BOOL XEngine_HTTPTask_P2PClient(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen, int unOperatorCode); \ No newline at end of file +void CALLBACK XEngine_HTTPTask_P2PCallback(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XPVOID lParam); +XBOOL XEngine_HTTPTask_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int unOperatorCode); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.cpp index a83e850..5d3195d 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.cpp @@ -1,11 +1,11 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_PostCode(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen, int nType) +XBOOL XEngine_HTTPTask_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 4096; int nRVLen = 4096; - TCHAR tszSDBuffer[4096]; - TCHAR tszRVBuffer[4096]; + XCHAR tszSDBuffer[4096]; + XCHAR tszRVBuffer[4096]; XENGINE_ZIPINFO st_ZIPInfo; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 @@ -28,7 +28,7 @@ BOOL XEngine_HTTPTask_PostCode(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, in } ModuleProtocol_Packet_ZIPCode(tszRVBuffer, &nRVLen, &st_ZIPInfo); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求查询邮政编码地址信息查询成功,查询邮编;%d,查询地址:%s"), lpszClientAddr, st_ZIPInfo.nZipCode, st_ZIPInfo.tszCounty); return TRUE; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.h index fb06c83..52e6bdc 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_PostCode(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file +XBOOL XEngine_HTTPTask_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_QRCode.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_QRCode.cpp index 2fe487a..94e3757 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_QRCode.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_QRCode.cpp @@ -1,11 +1,11 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_QRCode(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen, int nType) +XBOOL XEngine_HTTPTask_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 0; int nRVLen = 0; - TCHAR *ptszSDBuffer = (TCHAR *)malloc(XENGIEN_APISERVICE_BUFFER_SIZE); - TCHAR *ptszRVBuffer = (TCHAR *)malloc(XENGIEN_APISERVICE_BUFFER_SIZE); + XCHAR *ptszSDBuffer = (XCHAR *)malloc(XENGIEN_APISERVICE_BUFFER_SIZE); + XCHAR *ptszRVBuffer = (XCHAR *)malloc(XENGIEN_APISERVICE_BUFFER_SIZE); XENGINE_QRCODE st_QRCode; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 @@ -22,7 +22,7 @@ BOOL XEngine_HTTPTask_QRCode(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int ModuleProtocol_Parse_QRCode(lpszMsgBuffer, nMsgLen, &st_QRCode); _tcscpy(st_HDRParam.tszMimeType, st_QRCode.tszFmtBuffer + 1); ModuleHelp_QRCode_QREncodecMemory(st_QRCode.tszMsgBuffer, ptszRVBuffer, &nRVLen, st_QRCode.tszFmtBuffer); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam, ptszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam, ptszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求创建二维码成功,创建的二维码数据:%s"), lpszClientAddr, st_QRCode.tszMsgBuffer); } @@ -30,7 +30,7 @@ BOOL XEngine_HTTPTask_QRCode(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int { ModuleHelp_QRCode_QRDecodecMemory(lpszMsgBuffer, nMsgLen, ptszRVBuffer, st_QRCodeConfig.tszProtoDetect, st_QRCodeConfig.tszModelDetect, st_QRCodeConfig.tszProtoSr, st_QRCodeConfig.tszModelSr); nRVLen = _tcslen(ptszRVBuffer); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam, ptszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam, ptszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求二维码解析成功,解析的数据:%s"), lpszClientAddr, ptszRVBuffer); } diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_QRCode.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_QRCode.h index b5bb2a6..44c0a9c 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_QRCode.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_QRCode.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_QRCode(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file +XBOOL XEngine_HTTPTask_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.cpp index e61d630..1a8475f 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.cpp @@ -1,10 +1,10 @@ #include "../XEngine_Hdr.h" -void CALLBACK XEngine_HTTPTask_CBSocketTest(XNETHANDLE xhToken, LPCSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, LPVOID lParam) +void CALLBACK XEngine_HTTPTask_CBSocketTest(XNETHANDLE xhToken, LPCSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, XPVOID lParam) { XENGINE_SOCKETTEST* pSt_SocketTest = (XENGINE_SOCKETTEST*)lParam; int nMsgLen = 0; - TCHAR tszMsgBuffer[4096]; + XCHAR tszMsgBuffer[4096]; memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); if (0 == pSt_SocketTest->nType) @@ -47,12 +47,12 @@ void CALLBACK XEngine_HTTPTask_CBSocketTest(XNETHANDLE xhToken, LPCSTR lpszAddr, } } } -BOOL XEngine_HTTPTask_SocketTest(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen, int nType) +XBOOL XEngine_HTTPTask_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 0; int nRVLen = 0; - TCHAR tszSDBuffer[4096]; - TCHAR tszRVBuffer[4096]; + XCHAR tszSDBuffer[4096]; + XCHAR tszRVBuffer[4096]; XENGINE_SOCKETTEST *pSt_SocketTest = new XENGINE_SOCKETTEST; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 @@ -78,7 +78,7 @@ BOOL XEngine_HTTPTask_SocketTest(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, ModuleHelp_SocketTest_StartDatas(&pSt_SocketTest->xhToken, &pSt_SocketTest->st_SocketData, XEngine_HTTPTask_CBSocketTest, pSt_SocketTest->bTCP, pSt_SocketTest); } ModuleProtocol_Packet_TestReply(tszRVBuffer, &nRVLen, pSt_SocketTest->xhToken); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求创建套接字测试成功,句柄:%lld,地址:%s:%d,TCP:%d,测试类型:%d"), lpszClientAddr, pSt_SocketTest->xhToken, pSt_SocketTest->st_SocketConn.tszAddr, pSt_SocketTest->st_SocketConn.nPort, pSt_SocketTest->bTCP, pSt_SocketTest->bConn); } @@ -93,7 +93,7 @@ BOOL XEngine_HTTPTask_SocketTest(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, ModuleHelp_SocketTest_StopDatas(pSt_SocketTest->xhToken); } ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求销毁套接字测试成功,句柄:%lld"), lpszClientAddr, pSt_SocketTest->xhToken); delete pSt_SocketTest; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.h index 3fe35ca..6ddb1f3 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.h @@ -1,4 +1,4 @@ #pragma once -void CALLBACK XEngine_HTTPTask_CBSocketTest(XNETHANDLE xhToken, LPCSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, LPVOID lParam); -BOOL XEngine_HTTPTask_SocketTest(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file +void CALLBACK XEngine_HTTPTask_CBSocketTest(XNETHANDLE xhToken, LPCSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, XPVOID lParam); +XBOOL XEngine_HTTPTask_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.cpp index 3cc6daf..7ebd061 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.cpp @@ -1,15 +1,15 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_Translation(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nConvertType) +XBOOL XEngine_HTTPTask_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType) { int nMsgLen = 4096; int nPktLen = 4096; int nBLen = 0; - TCHAR* ptszBodyBuffer; - TCHAR tszMsgBuffer[4096]; - TCHAR tszPktBuffer[4096]; - TCHAR tszUrlBuffer[MAX_PATH]; - TCHAR tszTypeBuffer[64]; + XCHAR* ptszBodyBuffer; + XCHAR tszMsgBuffer[4096]; + XCHAR tszPktBuffer[4096]; + XCHAR tszUrlBuffer[MAX_PATH]; + XCHAR tszTypeBuffer[64]; XENGINE_LANGUAGEINFO st_LanguageInfo; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 @@ -29,7 +29,7 @@ BOOL XEngine_HTTPTask_Translation(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, { ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, NULL, 1001, _T("type not support")); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的翻译类型不正确:%d,原始字符串:%s"), lpszClientAddr, nConvertType, lpszMsgBuffer); return FALSE; @@ -41,14 +41,14 @@ BOOL XEngine_HTTPTask_Translation(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, { ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, NULL, 1002, _T("translation failed")); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的翻译失败,类型:%d,原始字符串:%s"), lpszClientAddr, nConvertType, lpszMsgBuffer); return FALSE; } //打包发送 ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, &st_LanguageInfo); - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求语言翻译成功,原始语言:%s,目标语言:%s"), lpszClientAddr, st_LanguageInfo.tszSourceStr, st_LanguageInfo.tszDestStr); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.h index 322fa84..f6339d6 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_Translation(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nConvertType); \ No newline at end of file +XBOOL XEngine_HTTPTask_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h index 99aafa2..0c3ad50 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h @@ -8,7 +8,7 @@ #include #include #include -#ifdef _WINDOWS +#ifdef _MSC_BUILD #include #include #else @@ -34,8 +34,8 @@ using namespace std; #include #include #include -#include -#include +#include +#include #include #include #include @@ -82,8 +82,8 @@ using namespace std; *********************************************************************/ #define XENGIEN_APISERVICE_BUFFER_SIZE (1024 * 1024 * 10) -extern BOOL bIsRun; -extern XLOG xhLog; +extern XBOOL bIsRun; +extern XHANDLE xhLog; //HTTP服务器 extern XHANDLE xhHTTPSocket; extern XHANDLE xhHTTPHeart; @@ -96,7 +96,7 @@ extern XENGINE_QRCODECONFIG st_QRCodeConfig; extern XENGINE_PLUGINCONFIG st_PluginLibConfig; extern XENGINE_PLUGINCONFIG st_PluginLuaConfig; //连接库 -#ifdef _WINDOWS +#ifdef _MSC_BUILD #ifdef _WIN64 #ifdef _DEBUG #pragma comment(lib,"../../x64/Debug/XEngine_ModuleConfigure.lib") @@ -131,7 +131,7 @@ extern XENGINE_PLUGINCONFIG st_PluginLuaConfig; #pragma comment(lib,"XEngine_Core/XEngine_ManagePool.lib") #pragma comment(lib,"XEngine_Core/XEngine_OPenSsl.lib") #pragma comment(lib,"XEngine_HelpComponents/HelpComponents_XLog.lib") -#pragma comment(lib,"XEngine_RfcComponents/RfcComponents_HttpServer.lib") +#pragma comment(lib,"XEngine_RfcComponents/RfcComponents_HttpProtocol.lib") #pragma comment(lib,"XEngine_NetHelp/NetHelp_APIClient.lib") #pragma comment(lib,"XEngine_SystemSdk/XEngine_SystemApi") #pragma comment(lib,"Ws2_32.lib") diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp index a007b98..c010f36 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp @@ -10,8 +10,8 @@ // Purpose: 主要入口函数 // History: *********************************************************************/ -BOOL bIsRun = FALSE; -XLOG xhLog = NULL; +XBOOL bIsRun = FALSE; +XHANDLE xhLog = NULL; //HTTP服务器 XHANDLE xhHTTPSocket = NULL; XHANDLE xhHTTPHeart = NULL; @@ -33,7 +33,7 @@ void ServiceApp_Stop(int signo) //销毁HTTP资源 NetCore_TCPXCore_DestroyEx(xhHTTPSocket); SocketOpt_HeartBeat_DestoryEx(xhHTTPHeart); - RfcComponents_HttpServer_DestroyEx(xhHTTPPacket); + HttpProtocol_Server_DestroyEx(xhHTTPPacket); ManagePool_Thread_NQDestroy(xhHTTPPool); //销毁数据库 ModuleDatabase_IDCard_Destory(); @@ -47,7 +47,7 @@ void ServiceApp_Stop(int signo) //销毁日志资源 HelpComponents_XLog_Destroy(xhLog); } -#ifdef _WINDOWS +#ifdef _MSC_BUILD WSACleanup(); #endif exit(0); @@ -55,7 +55,7 @@ void ServiceApp_Stop(int signo) //LINUX守护进程 static int ServiceApp_Deamon() { -#ifndef _WINDOWS +#ifndef _MSC_BUILD pid_t nPID = 0; int nStatus = 0; nPID = fork(); @@ -85,14 +85,14 @@ static int ServiceApp_Deamon() int main(int argc, char** argv) { -#ifdef _WINDOWS +#ifdef _MSC_BUILD WSADATA st_WSAData; WSAStartup(MAKEWORD(2, 2), &st_WSAData); #endif bIsRun = TRUE; - LPCTSTR lpszHTTPMime = _T("./XEngine_Config/HttpMime.types"); - LPCTSTR lpszHTTPCode = _T("./XEngine_Config/HttpCode.types"); - LPCTSTR lpszLogFile = _T("./XEngine_Log/XEngine_HttpApp.Log"); + LPCXSTR lpszHTTPMime = _T("./XEngine_Config/HttpMime.types"); + LPCXSTR lpszHTTPCode = _T("./XEngine_Config/HttpCode.types"); + LPCXSTR lpszLogFile = _T("./XEngine_Log/XEngine_HttpApp.Log"); HELPCOMPONENTS_XLOG_CONFIGURE st_XLogConfig; THREADPOOL_PARAMENT** ppSt_ListHTTPParam; @@ -194,10 +194,10 @@ int main(int argc, char** argv) if (st_ServiceConfig.nHttpPort > 0) { //HTTP包处理器 - xhHTTPPacket = RfcComponents_HttpServer_InitEx(lpszHTTPCode, lpszHTTPMime, st_ServiceConfig.st_XMax.nHTTPThread); + xhHTTPPacket = HttpProtocol_Server_InitEx(lpszHTTPCode, lpszHTTPMime, st_ServiceConfig.st_XMax.nHTTPThread); if (NULL == xhHTTPPacket) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化HTTP组包失败,错误:%lX"), HttpServer_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化HTTP组包失败,错误:%lX"), HttpProtocol_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化HTTP组包成功,IO线程个数:%d"), st_ServiceConfig.st_XMax.nHTTPThread); @@ -329,7 +329,7 @@ XENGINE_SERVICEAPP_EXIT: //销毁HTTP资源 NetCore_TCPXCore_DestroyEx(xhHTTPSocket); SocketOpt_HeartBeat_DestoryEx(xhHTTPHeart); - RfcComponents_HttpServer_DestroyEx(xhHTTPPacket); + HttpProtocol_Server_DestroyEx(xhHTTPPacket); ManagePool_Thread_NQDestroy(xhHTTPPool); //销毁数据库 ModuleDatabase_IDCard_Destory(); @@ -343,7 +343,7 @@ XENGINE_SERVICEAPP_EXIT: //销毁日志资源 HelpComponents_XLog_Destroy(xhLog); } -#ifdef _WINDOWS +#ifdef _MSC_BUILD WSACleanup(); #endif return 0; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp index 6020282..f4c2469 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp @@ -11,33 +11,33 @@ // History: *********************************************************************/ //////////////////////////////////////////////////////////////////////////下面是HTTP网络IO相关代码处理函数 -BOOL CALLBACK Network_Callback_HTTPLogin(LPCTSTR lpszClientAddr, SOCKET hSocket, LPVOID lParam) +XBOOL CALLBACK Network_Callback_HTTPLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { SocketOpt_HeartBeat_InsertAddrEx(xhHTTPHeart, lpszClientAddr); - RfcComponents_HttpServer_CreateClientEx(xhHTTPPacket, lpszClientAddr, 0); + HttpProtocol_Server_CreateClientEx(xhHTTPPacket, lpszClientAddr, 0); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,连接到服务器"), lpszClientAddr); return TRUE; } -void CALLBACK Network_Callback_HTTPRecv(LPCTSTR lpszClientAddr, SOCKET hSocket, LPCTSTR lpszRecvMsg, int nMsgLen, LPVOID lParam) +void CALLBACK Network_Callback_HTTPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam) { - if (!RfcComponents_HttpServer_InserQueueEx(xhHTTPPacket, lpszClientAddr, lpszRecvMsg, nMsgLen)) + if (!HttpProtocol_Server_InserQueueEx(xhHTTPPacket, lpszClientAddr, lpszRecvMsg, nMsgLen)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,投递HTTP数据包到消息队列失败,错误:%lX"), lpszClientAddr, HttpServer_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,投递HTTP数据包到消息队列失败,错误:%lX"), lpszClientAddr, HttpProtocol_GetLastError()); return; } SocketOpt_HeartBeat_ActiveAddrEx(xhHTTPHeart, lpszClientAddr); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DEBUG, _T("HTTP客户端:%s,投递数据包到组包队列成功,大小:%d"), lpszClientAddr, nMsgLen); } -void CALLBACK Network_Callback_HTTPLeave(LPCTSTR lpszClientAddr, SOCKET hSocket, LPVOID lParam) +void CALLBACK Network_Callback_HTTPLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { XEngine_Network_Close(lpszClientAddr, FALSE); } -void CALLBACK Network_Callback_HTTPHeart(LPCTSTR lpszClientAddr, SOCKET hSocket, int nStatus, LPVOID lParam) +void CALLBACK Network_Callback_HTTPHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam) { XEngine_Network_Close(lpszClientAddr, TRUE); } //////////////////////////////////////////////////////////////////////////网络IO关闭操作 -void XEngine_Network_Close(LPCTSTR lpszClientAddr, BOOL bHeart) +void XEngine_Network_Close(LPCXSTR lpszClientAddr, XBOOL bHeart) { if (bHeart) { @@ -47,11 +47,11 @@ void XEngine_Network_Close(LPCTSTR lpszClientAddr, BOOL bHeart) { SocketOpt_HeartBeat_DeleteAddrEx(xhHTTPHeart, lpszClientAddr); } - RfcComponents_HttpServer_CloseClinetEx(xhHTTPPacket, lpszClientAddr); + HttpProtocol_Server_CloseClinetEx(xhHTTPPacket, lpszClientAddr); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,离开服务器"), lpszClientAddr); } ////////////////////////////////////////////////////////////////////////// -BOOL XEngine_Network_Send(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen) +XBOOL XEngine_Network_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen) { //发送数据给指定客户端 if (!NetCore_TCPXCore_SendEx(xhHTTPSocket, lpszClientAddr, lpszMsgBuffer, nMsgLen)) diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.h index ca18087..0d466d3 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.h @@ -11,10 +11,10 @@ // History: *********************************************************************/ //HTTP相关 -BOOL CALLBACK Network_Callback_HTTPLogin(LPCTSTR lpszClientAddr, SOCKET hSocket, LPVOID lParam); -void CALLBACK Network_Callback_HTTPRecv(LPCTSTR lpszClientAddr, SOCKET hSocket, LPCTSTR lpszRecvMsg, int nMsgLen, LPVOID lParam); -void CALLBACK Network_Callback_HTTPLeave(LPCTSTR lpszClientAddr, SOCKET hSocket, LPVOID lParam); -void CALLBACK Network_Callback_HTTPHeart(LPCTSTR lpszClientAddr, SOCKET hSocket, int nStatus, LPVOID lParam); +XBOOL CALLBACK Network_Callback_HTTPLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); +void CALLBACK Network_Callback_HTTPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam); +void CALLBACK Network_Callback_HTTPLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); +void CALLBACK Network_Callback_HTTPHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam); //关闭与发送 -void XEngine_Network_Close(LPCTSTR lpszClientAddr, BOOL bHeart); -BOOL XEngine_Network_Send(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen); \ No newline at end of file +void XEngine_Network_Close(LPCXSTR lpszClientAddr, XBOOL bHeart); +XBOOL XEngine_Network_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp index 9e770d7..25767b2 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp @@ -10,12 +10,12 @@ // Purpose: HTTP任务处理代码 // History: *********************************************************************/ -BOOL XEngine_PluginTask_Handle(LPCTSTR lpszMethodName, LPCTSTR lpszClientAddr, LPCTSTR lpszRVBuffer, int nRVLen, TCHAR*** ppptszList, int nListCount, int nPluginType) +XBOOL XEngine_PluginTask_Handle(LPCXSTR lpszMethodName, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR*** ppptszList, int nListCount, int nPluginType) { int nMsgLen = 0; int nPktLen = 0; - TCHAR tszMsgBuffer[2048]; - TCHAR tszPktBuffer[2048]; + XCHAR tszMsgBuffer[2048]; + XCHAR tszPktBuffer[2048]; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParament; memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); @@ -28,13 +28,13 @@ BOOL XEngine_PluginTask_Handle(LPCTSTR lpszMethodName, LPCTSTR lpszClientAddr, L if (ModulePlugin_Loader_Exec(lpszMethodName, ppptszList, nListCount, &st_HDRParament.nHttpCode, tszPktBuffer, &nPktLen)) { - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParament, tszPktBuffer, nPktLen); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParament, tszPktBuffer, nPktLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的方法:%s,由%s插件模块处理成功"), lpszClientAddr, lpszMethodName, 0 == nPluginType ? "Lib" : "Lua"); } else { st_HDRParament.nHttpCode = 400; - RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParament); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParament); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的方法:%s,由%s插件模块处理失败,错误:%lX"), lpszClientAddr, lpszMethodName, 0 == nPluginType ? "Lib" : "Lua", ModulePlugin_GetLastError()); } XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.h index d7c4cfd..0f5c01d 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.h @@ -11,4 +11,4 @@ // History: *********************************************************************/ //插件处理函数 -BOOL XEngine_PluginTask_Handle(LPCTSTR lpszMethodName, LPCTSTR lpszClientAddr, LPCTSTR lpszRVBuffer, int nRVLen, TCHAR*** ppptszList, int nListCount, int nPluginType); \ No newline at end of file +XBOOL XEngine_PluginTask_Handle(LPCXSTR lpszMethodName, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR*** ppptszList, int nListCount, int nPluginType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_UserProtocol.h b/XEngine_Source/XEngine_UserProtocol.h index 6b5fedf..9dbe72a 100644 --- a/XEngine_Source/XEngine_UserProtocol.h +++ b/XEngine_Source/XEngine_UserProtocol.h @@ -95,7 +95,7 @@ typedef enum //身份证校验 typedef struct { - TCHAR tszIDNumber[20]; + XCHAR tszIDNumber[20]; WORD nIDProvince; //省/自治区/直辖市 WORD nIDCity; //市/区 WORD nIDCounty; //县 @@ -109,23 +109,23 @@ typedef struct //行政区域 typedef struct { - TCHAR tszProvincer[64]; //省/自治区/直辖市 - TCHAR tszCity[64]; //市/区 - TCHAR tszCounty[64]; //县 + XCHAR tszProvincer[64]; //省/自治区/直辖市 + XCHAR tszCity[64]; //市/区 + XCHAR tszCounty[64]; //县 }XENGINE_IDREGION; //银行卡 typedef struct { - TCHAR tszBankNumber[MAX_PATH]; //银行卡号 - TCHAR tszBankName[MAX_PATH]; //银行卡名称 - TCHAR tszBankAbridge[MAX_PATH]; //银行卡缩写 + XCHAR tszBankNumber[MAX_PATH]; //银行卡号 + XCHAR tszBankName[MAX_PATH]; //银行卡名称 + XCHAR tszBankAbridge[MAX_PATH]; //银行卡缩写 ENUM_XENGINE_APISERVICE_BANK_TYPE enBankType; }XENGINE_BANKINFO; //语言转换 typedef struct { - TCHAR tszSourceStr[1024]; //原始字符串 - TCHAR tszDestStr[1024]; //转换字符串 + XCHAR tszSourceStr[1024]; //原始字符串 + XCHAR tszDestStr[1024]; //转换字符串 int enType; //简繁为ENUM_XENGINE_APISERVICE_LANGUAGE_TYPE 翻译为ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE }XENGINE_LANGUAGEINFO; //连接信息 @@ -145,15 +145,15 @@ typedef struct tag_XEngine_P2XPIO_Protocol CHAR tszDestUser[32]; //要连接的用户 CHAR tszConnectAddr[32]; //连接的IP地址 int nDestPort; //要连接的端口 - BOOL bIsTcp; //连接类型TCP,否则为UDP + XBOOL bIsTcp; //连接类型TCP,否则为UDP }XENGINE_P2XPIO_PROTOCOL, * LPXENGINE_P2XPIO_PROTOCOL; //邮编信息 typedef struct { - TCHAR tszProvincer[64]; //省/自治区/直辖市 - TCHAR tszCity[64]; //市/区 - TCHAR tszCounty[64]; //县 - TCHAR tszPinYin[64]; //拼音 + XCHAR tszProvincer[64]; //省/自治区/直辖市 + XCHAR tszCity[64]; //市/区 + XCHAR tszCounty[64]; //县 + XCHAR tszPinYin[64]; //拼音 double dlLng; //经度 double dlLat; //纬度 int nZipCode; //邮编 @@ -164,17 +164,17 @@ typedef struct typedef struct { XENGINE_PROTOCOL_XLOG st_ProtocolLog; - TCHAR tszLogBuffer[10240]; - TCHAR tszTableName[128]; - TCHAR tszTimeStart[128]; - TCHAR tszTimeEnd[128]; + XCHAR tszLogBuffer[10240]; + XCHAR tszTableName[128]; + XCHAR tszTimeStart[128]; + XCHAR tszTimeEnd[128]; int nLogSize; }XENGINE_XLOGINFO; //二维码 typedef struct { - TCHAR tszMsgBuffer[4096]; - TCHAR tszFmtBuffer[8]; + XCHAR tszMsgBuffer[4096]; + XCHAR tszFmtBuffer[8]; }XENGINE_QRCODE; //网络测试 typedef struct @@ -200,7 +200,7 @@ typedef struct { MODULEHELP_SOCKETTEST_RECONNECT st_SocketConn; MODULEHELP_SOCKETTEST_DATAS st_SocketData; - TCHAR tszAPIUrl[MAX_PATH]; + XCHAR tszAPIUrl[MAX_PATH]; XNETHANDLE xhToken; int nType; //0,全部报告,其他结束统计报告 bool bTCP; -- Gitee From b15ab25c5d9238c7052b5ea057bac7e67c4395e8 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 4 Apr 2023 16:19:27 +0800 Subject: [PATCH 02/26] update:makefile to support cross platform --- .../XEngine_ModuleConfigure/Makefile | 89 +++++++++---- .../XEngine_ModuleDatabase/Makefile | 98 ++++++++++----- XEngine_Source/XEngine_ModuleHelp/Makefile | 117 +++++++++++------- XEngine_Source/XEngine_ModulePlugin/Makefile | 105 +++++++++++----- .../XEngine_ModuleProtocol/Makefile | 94 +++++++++----- .../ModulePlugin_BMIndex/Makefile | 86 +++++++++---- .../ModulePlugin_IPAddr/Makefile | 90 ++++++++++---- .../ModulePlugin_Meter/Makefile | 87 +++++++++---- .../ModulePlugin_Password/Makefile | 88 +++++++++---- .../ModulePlugin_Phone/Makefile | 88 +++++++++---- .../ModulePlugin_Timezone/Makefile | 89 +++++++++---- .../ModulePlugin_Zodiac/Makefile | 92 ++++++++++---- .../XEngine_ThirdPart/jsoncpp/Makefile | 97 ++++++++++----- 13 files changed, 848 insertions(+), 372 deletions(-) diff --git a/XEngine_Source/XEngine_ModuleConfigure/Makefile b/XEngine_Source/XEngine_ModuleConfigure/Makefile index 8a6eb51..ff75027 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/Makefile +++ b/XEngine_Source/XEngine_ModuleConfigure/Makefile @@ -1,30 +1,28 @@ CC = g++ -Wall -std=c++17 -fPIC -SHAREFLAG = -shared -SHAREDLL = so +PLATFORM = linux +PLATVER = +PLATDIR = +FILEEXT = +LIBFLAG = RELEASE = 0 UNICODE = 0 -INCLUDE = -I ./ -I ../XEngine_ThirdPart/jsoncpp -LOADBIN = -L ../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp +LOADSO = -L ../XEngine_ThirdPart/jsoncpp LIB = -ljsoncpp -LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath=./,--disable-new-dtags -LIBINCLUDE = ModuleConfigure_Json.o pch.o - -ifeq ($(shell uname),Darwin) - SHAREDLL = dylib - SHAREFLAG = -dynamiclib - LOADSO = -else - SHAREDLL = so - SHAREFLAG = -shared -endif +LIBEX = +OBJECTS = ModuleConfigure_Json.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -O2 +FLAGS = -c DEBUG = else +ifeq ($(PLATFORM),android) FLAGS = -c -DEBUG = -g +DEBUG = -g +else +FLAGS = -c -lc_p +DEBUG = -g -pg +endif endif ifeq ($(UNICODE),1) @@ -33,24 +31,63 @@ else UNICODE = endif +ifeq ($(PLATFORM),linux) + ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) + PLATVER = -D __CENTOS__ + PLATDIR = XEngine_Linux/Centos + else + PLATVER = -D __UBUNTU__ + PLATDIR = XEngine_Linux/Ubuntu + endif + FILEEXT = so + LIBFLAG = -shared + LIBEX = -lpthread -lrt -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),android) + NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC + PLATVER = -D __ANDROID__ + PLATDIR = XEngine_Android + FILEEXT = so + LIBFLAG = -shared + LIBEX = -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),mac) + CC += -Wno-deprecated-declarations + PLATVER = -D __MACOS__ + PLATDIR = XEngine_Mac + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +else ifeq ($(PLATFORM),ios) + SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 + PLATVER = -D __IOS__ + PLATDIR = XEngine_IOS + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +endif -all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libXEngine_ModuleConfigure.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) -ModuleConfigure_Json.o:./ModuleConfigure_Json/ModuleConfigure_Json.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleConfigure_Json/ModuleConfigure_Json.cpp +all:$(OBJECTS) + $(CC) $(DEBUG) $(OBJECTS) -o libXEngine_ModuleConfigure.$(FILEEXT) $(LIBFLAG) $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) +ModuleConfigure_Json.o:./ModuleConfigure_Json/ModuleConfigure_Json.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleConfigure_Json/ModuleConfigure_Json.cpp pch.o:./pch.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./pch.cpp InstallAll:InstallSo -InstallSo:./libXEngine_ModuleConfigure.$(SHAREDLL) - cp ./libXEngine_ModuleConfigure.$(SHAREDLL) ../../XEngine_Release/libXEngine_ModuleConfigure.$(SHAREDLL) +InstallSo:./libXEngine_ModuleConfigure.$(FILEEXT) + cp ./libXEngine_ModuleConfigure.$(FILEEXT) ../../XEngine_Release/libXEngine_ModuleConfigure.$(FILEEXT) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.$(SHAREDLL) + rm *.$(FILEEXT) diff --git a/XEngine_Source/XEngine_ModuleDatabase/Makefile b/XEngine_Source/XEngine_ModuleDatabase/Makefile index 88e0657..36acd5c 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/Makefile +++ b/XEngine_Source/XEngine_ModuleDatabase/Makefile @@ -1,30 +1,28 @@ -CC = g++ -Wall -std=c++17 -fPIC -Wno-deprecated-declarations -SHAREFLAG = -shared -SHAREDLL = so +CC = g++ -Wall -std=c++17 -fPIC +PLATFORM = linux +PLATVER = +PLATDIR = +FILEEXT = +LIBFLAG = RELEASE = 0 UNICODE = 0 -INCLUDE = -I ./ -LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_HelpComponents +LOADHDR = -I ./ +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_HelpComponents LIB = -lXEngine_BaseLib -lHelpComponents_DataBase -LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath=./,--disable-new-dtags -LIBINCLUDE = ModuleDatabase_IDCard.o ModuleDatabase_Bank.o ModuleDatabase_ZIPCode.o ModuleDatabase_XLog.o pch.o - -ifeq ($(shell uname),Darwin) - SHAREDLL = dylib - SHAREFLAG = -dynamiclib - LOADSO = -else - SHAREDLL = so - SHAREFLAG = -shared -endif +LIBEX = +OBJECTS = ModuleDatabase_IDCard.o ModuleDatabase_Bank.o ModuleDatabase_ZIPCode.o ModuleDatabase_XLog.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -O2 +FLAGS = -c DEBUG = else -FLAGS = -c -DEBUG = -g +ifeq ($(PLATFORM),android) +FLAGS = -c +DEBUG = -g +else +FLAGS = -c -lc_p +DEBUG = -g -pg +endif endif ifeq ($(UNICODE),1) @@ -33,30 +31,70 @@ else UNICODE = endif +ifeq ($(PLATFORM),linux) + ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) + PLATVER = -D __CENTOS__ + PLATDIR = XEngine_Linux/Centos + else + PLATVER = -D __UBUNTU__ + PLATDIR = XEngine_Linux/Ubuntu + endif + FILEEXT = so + LIBFLAG = -shared + LIBEX = -lpthread -lrt -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),android) + NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC + PLATVER = -D __ANDROID__ + PLATDIR = XEngine_Android + FILEEXT = so + LIBFLAG = -shared + LIBEX = -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),mac) + CC += -Wno-deprecated-declarations + PLATVER = -D __MACOS__ + PLATDIR = XEngine_Mac + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +else ifeq ($(PLATFORM),ios) + SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 + PLATVER = -D __IOS__ + PLATDIR = XEngine_IOS + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +endif + -all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libXEngine_ModuleDatabase.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) +all:$(OBJECTS) + $(CC) $(DEBUG) $(OBJECTS) -o libXEngine_ModuleDatabase.$(FILEEXT) $(LIBFLAG) $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) ModuleDatabase_IDCard.o:./ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp ModuleDatabase_Bank.o:./ModuleDatabase_Bank/ModuleDatabase_Bank.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleDatabase_Bank/ModuleDatabase_Bank.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleDatabase_Bank/ModuleDatabase_Bank.cpp ModuleDatabase_ZIPCode.o:./ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp ModuleDatabase_XLog.o:./ModuleDatabase_XLog/ModuleDatabase_XLog.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleDatabase_XLog/ModuleDatabase_XLog.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleDatabase_XLog/ModuleDatabase_XLog.cpp pch.o:./pch.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./pch.cpp InstallAll:InstallSo -InstallSo:./libXEngine_ModuleDatabase.$(SHAREDLL) - cp ./libXEngine_ModuleDatabase.$(SHAREDLL) ../../XEngine_Release/libXEngine_ModuleDatabase.$(SHAREDLL) +InstallSo:./libXEngine_ModuleDatabase.$(FILEEXT) + cp ./libXEngine_ModuleDatabase.$(FILEEXT) ../../XEngine_Release/libXEngine_ModuleDatabase.$(FILEEXT) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.$(SHAREDLL) \ No newline at end of file + rm *.$(FILEEXT) \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/Makefile b/XEngine_Source/XEngine_ModuleHelp/Makefile index 1300a60..dcfb89b 100644 --- a/XEngine_Source/XEngine_ModuleHelp/Makefile +++ b/XEngine_Source/XEngine_ModuleHelp/Makefile @@ -1,44 +1,29 @@ -CC = g++ -Wall -std=c++17 -fPIC -Wno-deprecated-declarations -SHAREFLAG = -shared -SHAREDLL = so +CC = g++ -Wall -std=c++17 -fPIC +PLATFORM = linux +PLATVER = +PLATDIR = +FILEEXT = +LIBFLAG = RELEASE = 0 UNICODE = 0 -INCLUDE = -I ./ -I /usr/include/opencv4 -LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_Client -LIB = -lXEngine_BaseLib -lXClient_Socket -lopencc -LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath=./,--disable-new-dtags -LIBINCLUDE = ModuleHelp_IDCard.o ModuleHelp_Language.o ModuleHelp_P2PClient.o ModuleHelp_Locker.o ModuleHelp_QRCode.o ModuleHelp_SocketTest.o pch.o +LOADHDR = -I ./ -I /usr/include/opencv4 +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_Client +LIB = -lXEngine_BaseLib -lXClient_Socket -lopencc -llzma -lpng16 -lopencv_core -lopencv_imgcodecs -lopencv_imgproc -ltiff +LIBEX = +OBJECTS = ModuleHelp_IDCard.o ModuleHelp_Language.o ModuleHelp_P2PClient.o ModuleHelp_Locker.o ModuleHelp_QRCode.o ModuleHelp_SocketTest.o pch.o -ifeq ($(OS),Windows_NT) - PLATFORM="Windows" -else - ifeq ($(shell uname),Darwin) - PLATFORM="MacOS" - else - ifeq ($(FILECENTOS), $(wildcard $(FILECENTOS))) -# LIB += -lopencv_core -lopencv_imgcodecs -lopencv_imgproc - else -# LIB += -llzma -lpng16 -lopencv_core -lopencv_imgcodecs -lopencv_imgproc -ltiff - endif - endif -endif - -ifeq ($(shell uname),Darwin) - SHAREDLL = dylib - SHAREFLAG = -dynamiclib - LOADSO = -else - SHAREDLL = so - SHAREFLAG = -shared -endif ifeq ($(RELEASE),1) -FLAGS = -c -O2 +FLAGS = -c DEBUG = else -FLAGS = -c -DEBUG = -g +ifeq ($(PLATFORM),android) +FLAGS = -c +DEBUG = -g +else +FLAGS = -c -lc_p +DEBUG = -g -pg +endif endif ifeq ($(UNICODE),1) @@ -47,34 +32,74 @@ else UNICODE = endif +ifeq ($(PLATFORM),linux) + ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) + PLATVER = -D __CENTOS__ + PLATDIR = XEngine_Linux/Centos + else + PLATVER = -D __UBUNTU__ + PLATDIR = XEngine_Linux/Ubuntu + endif + FILEEXT = so + LIBFLAG = -shared + LIBEX = -lpthread -lrt -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),android) + NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC + PLATVER = -D __ANDROID__ + PLATDIR = XEngine_Android + FILEEXT = so + LIBFLAG = -shared + LIBEX = -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),mac) + CC += -Wno-deprecated-declarations + PLATVER = -D __MACOS__ + PLATDIR = XEngine_Mac + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +else ifeq ($(PLATFORM),ios) + SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 + PLATVER = -D __IOS__ + PLATDIR = XEngine_IOS + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +endif + -all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libXEngine_ModuleHelp.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) +all:$(OBJECTS) + $(CC) $(DEBUG) $(OBJECTS) -o libXEngine_ModuleHelp.$(FILEEXT) $(LIBFLAG) $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) ModuleHelp_IDCard.o:./ModuleHelp_IDCard/ModuleHelp_IDCard.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleHelp_IDCard/ModuleHelp_IDCard.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleHelp_IDCard/ModuleHelp_IDCard.cpp ModuleHelp_Language.o:./ModuleHelp_Language/ModuleHelp_Language.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleHelp_Language/ModuleHelp_Language.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleHelp_Language/ModuleHelp_Language.cpp ModuleHelp_P2PClient.o:./ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp ModuleHelp_Locker.o:./ModuleHelp_Locker/ModuleHelp_Locker.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleHelp_Locker/ModuleHelp_Locker.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleHelp_Locker/ModuleHelp_Locker.cpp ModuleHelp_QRCode.o:./ModuleHelp_QRCode/ModuleHelp_QRCode.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleHelp_QRCode/ModuleHelp_QRCode.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleHelp_QRCode/ModuleHelp_QRCode.cpp ModuleHelp_SocketTest.o:./ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp pch.o:./pch.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./pch.cpp InstallAll:InstallSo -InstallSo:./libXEngine_ModuleHelp.$(SHAREDLL) - cp ./libXEngine_ModuleHelp.$(SHAREDLL) ../../XEngine_Release/libXEngine_ModuleHelp.$(SHAREDLL) +InstallSo:./libXEngine_ModuleHelp.$(FILEEXT) + cp ./libXEngine_ModuleHelp.$(FILEEXT) ../../XEngine_Release/libXEngine_ModuleHelp.$(FILEEXT) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.$(SHAREDLL) \ No newline at end of file + rm *.$(FILEEXT) \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModulePlugin/Makefile b/XEngine_Source/XEngine_ModulePlugin/Makefile index c8b0890..69527ad 100644 --- a/XEngine_Source/XEngine_ModulePlugin/Makefile +++ b/XEngine_Source/XEngine_ModulePlugin/Makefile @@ -1,63 +1,100 @@ CC = g++ -Wall -std=c++17 -fPIC -SHAREFLAG = -shared -SHAREDLL = so +PLATFORM = linux +PLATVER = +PLATDIR = +FILEEXT = +LIBFLAG = RELEASE = 0 UNICODE = 0 -FILECENTOS=/etc/redhat-release -INCLUDE = -I ./ -LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -LIB = -LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath=./,--disable-new-dtags -LIBINCLUDE = ModulePlugin_LibCore.o ModulePlugin_LuaCore.o ModulePlugin_Loader.o pch.o - -ifeq ($(shell uname),Darwin) - SHAREDLL = dylib - SHAREFLAG = -dynamiclib - LIB = -lXEngine_BaseLib -llua - LOADSO = -else - SHAREDLL = so - SHAREFLAG = -shared - LIB = -lXEngine_BaseLib -llua5.3 -endif +LOADHDR = -I ./ +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib +LIB = -lXEngine_BaseLib +LIBEX = +OBJECTS = ModulePlugin_LibCore.o ModulePlugin_LuaCore.o ModulePlugin_Loader.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -O2 +FLAGS = -c DEBUG = else +ifeq ($(PLATFORM),android) FLAGS = -c -DEBUG = -g +DEBUG = -g +else +FLAGS = -c -lc_p +DEBUG = -g -pg +endif endif -ifeq ($(FILECENTOS), $(wildcard $(FILECENTOS))) - UNICODE = -D _CENTOS +ifeq ($(UNICODE),1) +UNICODE = -D _UNICODE else - UNICODE = -D _UBUNTU +UNICODE = +endif + +ifeq ($(PLATFORM),linux) + ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) + PLATVER = -D __CENTOS__ + PLATDIR = XEngine_Linux/Centos + else + PLATVER = -D __UBUNTU__ + PLATDIR = XEngine_Linux/Ubuntu + endif + FILEEXT = so + LIBFLAG = -shared + LIB += -llua5.3 + LIBEX = -lpthread -lrt -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),android) + NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC + PLATVER = -D __ANDROID__ + PLATDIR = XEngine_Android + FILEEXT = so + LIBFLAG = -shared + LIBEX = -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),mac) + CC += -Wno-deprecated-declarations + PLATVER = -D __MACOS__ + PLATDIR = XEngine_Mac + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIB += -llua + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +else ifeq ($(PLATFORM),ios) + SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 + PLATVER = -D __IOS__ + PLATDIR = XEngine_IOS + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ endif -all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libXEngine_ModulePlugin.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) +all:$(OBJECTS) + $(CC) $(DEBUG) $(OBJECTS) -o libXEngine_ModulePlugin.$(FILEEXT) $(LIBFLAG) $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) ModulePlugin_LibCore.o:./ModulePlugin_LibCore/ModulePlugin_LibCore.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModulePlugin_LibCore/ModulePlugin_LibCore.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModulePlugin_LibCore/ModulePlugin_LibCore.cpp ModulePlugin_LuaCore.o:./ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp ModulePlugin_Loader.o:./ModulePlugin_Loader/ModulePlugin_Loader.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModulePlugin_Loader/ModulePlugin_Loader.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModulePlugin_Loader/ModulePlugin_Loader.cpp pch.o:./pch.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./pch.cpp InstallAll:InstallSo -InstallSo:./libXEngine_ModulePlugin.$(SHAREDLL) - cp ./libXEngine_ModulePlugin.$(SHAREDLL) ../../XEngine_Release/libXEngine_ModulePlugin.$(SHAREDLL) +InstallSo:./libXEngine_ModulePlugin.$(FILEEXT) + cp ./libXEngine_ModulePlugin.$(FILEEXT) ../../XEngine_Release/libXEngine_ModulePlugin.$(FILEEXT) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.$(SHAREDLL) \ No newline at end of file + rm *.$(FILEEXT) \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/Makefile b/XEngine_Source/XEngine_ModuleProtocol/Makefile index ca49c60..964a607 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/Makefile +++ b/XEngine_Source/XEngine_ModuleProtocol/Makefile @@ -1,30 +1,28 @@ -CC = g++ -Wall -std=c++17 -fPIC -Wno-deprecated-declarations -SHAREFLAG = -shared -SHAREDLL = so +CC = g++ -Wall -std=c++17 -fPIC +PLATFORM = linux +PLATVER = +PLATDIR = +FILEEXT = +LIBFLAG = RELEASE = 0 UNICODE = 0 -INCLUDE = -I ./ -I ../XEngine_ThirdPart/jsoncpp -LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -ljsoncpp -LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath=./,--disable-new-dtags -LIBINCLUDE = ModuleProtocol_Packet.o ModuleProtocol_Parse.o pch.o - -ifeq ($(shell uname),Darwin) - SHAREDLL = dylib - SHAREFLAG = -dynamiclib - LOADSO = -else - SHAREDLL = so - SHAREFLAG = -shared -endif +LIBEX = +OBJECTS = ModuleProtocol_Packet.o ModuleProtocol_Parse.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -O2 +FLAGS = -c DEBUG = else -FLAGS = -c -DEBUG = -g +ifeq ($(PLATFORM),android) +FLAGS = -c +DEBUG = -g +else +FLAGS = -c -lc_p +DEBUG = -g -pg +endif endif ifeq ($(UNICODE),1) @@ -33,26 +31,66 @@ else UNICODE = endif +ifeq ($(PLATFORM),linux) + ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) + PLATVER = -D __CENTOS__ + PLATDIR = XEngine_Linux/Centos + else + PLATVER = -D __UBUNTU__ + PLATDIR = XEngine_Linux/Ubuntu + endif + FILEEXT = so + LIBFLAG = -shared + LIBEX = -lpthread -lrt -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),android) + NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC + PLATVER = -D __ANDROID__ + PLATDIR = XEngine_Android + FILEEXT = so + LIBFLAG = -shared + LIBEX = -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),mac) + CC += -Wno-deprecated-declarations + PLATVER = -D __MACOS__ + PLATDIR = XEngine_Mac + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +else ifeq ($(PLATFORM),ios) + SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 + PLATVER = -D __IOS__ + PLATDIR = XEngine_IOS + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +endif + -all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libXEngine_ModuleProtocol.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) +all:$(OBJECTS) + $(CC) $(DEBUG) $(OBJECTS) -o libXEngine_ModuleProtocol.$(FILEEXT) $(LIBFLAG) $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) ModuleProtocol_Packet.o:./ModuleProtocol_Packet/ModuleProtocol_Packet.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleProtocol_Packet/ModuleProtocol_Packet.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleProtocol_Packet/ModuleProtocol_Packet.cpp ModuleProtocol_Parse.o:./ModuleProtocol_Parse/ModuleProtocol_Parse.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleProtocol_Parse/ModuleProtocol_Parse.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleProtocol_Parse/ModuleProtocol_Parse.cpp pch.o:./pch.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./pch.cpp InstallAll:InstallSo -InstallSo:./libXEngine_ModuleProtocol.$(SHAREDLL) - cp ./libXEngine_ModuleProtocol.$(SHAREDLL) ../../XEngine_Release/libXEngine_ModuleProtocol.$(SHAREDLL) +InstallSo:./libXEngine_ModuleProtocol.$(FILEEXT) + cp ./libXEngine_ModuleProtocol.$(FILEEXT) ../../XEngine_Release/libXEngine_ModuleProtocol.$(FILEEXT) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.$(SHAREDLL) \ No newline at end of file + rm *.$(FILEEXT) \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Makefile index 2c7af32..ffa6af2 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Makefile @@ -1,30 +1,28 @@ CC = g++ -Wall -std=c++17 -fPIC -SHAREFLAG = -shared -SHAREDLL = so +PLATFORM = linux +PLATVER = +PLATDIR = +FILEEXT = +LIBFLAG = RELEASE = 0 UNICODE = 0 -INCLUDE = -I ./ -I ../../XEngine_ThirdPart/jsoncpp -LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -ljsoncpp -LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath=../,--disable-new-dtags -LIBINCLUDE = Plugin_BMIndex.o pch.o - -ifeq ($(shell uname),Darwin) - SHAREDLL = dylib - SHAREFLAG = -dynamiclib - LOADSO = -else - SHAREDLL = so - SHAREFLAG = -shared -endif +LIBEX = +OBJECTS = Plugin_BMIndex.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -O2 +FLAGS = -c DEBUG = else +ifeq ($(PLATFORM),android) FLAGS = -c DEBUG = -g +else +FLAGS = -c -lc_p +DEBUG = -g -pg +endif endif ifeq ($(UNICODE),1) @@ -33,23 +31,63 @@ else UNICODE = endif +ifeq ($(PLATFORM),linux) + ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) + PLATVER = -D __CENTOS__ + PLATDIR = XEngine_Linux/Centos + else + PLATVER = -D __UBUNTU__ + PLATDIR = XEngine_Linux/Ubuntu + endif + FILEEXT = so + LIBFLAG = -shared + LIBEX = -lpthread -lrt -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),android) + NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC + PLATVER = -D __ANDROID__ + PLATDIR = XEngine_Android + FILEEXT = so + LIBFLAG = -shared + LIBEX = -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),mac) + CC += -Wno-deprecated-declarations + PLATVER = -D __MACOS__ + PLATDIR = XEngine_Mac + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +else ifeq ($(PLATFORM),ios) + SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 + PLATVER = -D __IOS__ + PLATDIR = XEngine_IOS + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +endif + -all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libModulePlugin_BMIndex.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) +all:$(OBJECTS) + $(CC) $(DEBUG) $(OBJECTS) -o libModulePlugin_BMIndex.$(FILEEXT) $(LIBFLAG) $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) Plugin_BMIndex.o:./Plugin_BMIndex/Plugin_BMIndex.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./Plugin_BMIndex/Plugin_BMIndex.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./Plugin_BMIndex/Plugin_BMIndex.cpp pch.o:./pch.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./pch.cpp InstallAll:InstallSo -InstallSo:./libModulePlugin_BMIndex.$(SHAREDLL) - cp ./libModulePlugin_BMIndex.$(SHAREDLL) ../../../XEngine_Release/XEngine_LibPlugin/libModulePlugin_BMIndex.$(SHAREDLL) +InstallSo:./libModulePlugin_BMIndex.$(FILEEXT) + cp ./libModulePlugin_BMIndex.$(FILEEXT) ../../../XEngine_Release/XEngine_LibPlugin/libModulePlugin_BMIndex.$(FILEEXT) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.$(SHAREDLL) \ No newline at end of file + rm *.$(FILEEXT) \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/Makefile index f28a849..4499c2a 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/Makefile @@ -1,30 +1,28 @@ -CC = g++ -Wall -std=c++17 -fPIC -Wno-deprecated-declarations -SHAREFLAG = -shared -SHAREDLL = so +CC = g++ -Wall -std=c++17 -fPIC +PLATFORM = linux +PLATVER = +PLATDIR = +FILEEXT = +LIBFLAG = RELEASE = 0 UNICODE = 0 -INCLUDE = -I ./ -I ../../XEngine_ThirdPart/jsoncpp -LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -ljsoncpp -LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath=../,--disable-new-dtags -LIBINCLUDE = ModulePlugin_IPAddr.o ModulePlugin_Interface.o pch.o - -ifeq ($(shell uname),Darwin) - SHAREDLL = dylib - SHAREFLAG = -dynamiclib - LOADSO = -else - SHAREDLL = so - SHAREFLAG = -shared -endif +LIBEX = +OBJECTS = ModulePlugin_IPAddr.o ModulePlugin_Interface.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -O2 +FLAGS = -c DEBUG = else +ifeq ($(PLATFORM),android) FLAGS = -c DEBUG = -g +else +FLAGS = -c -lc_p +DEBUG = -g -pg +endif endif ifeq ($(UNICODE),1) @@ -33,25 +31,65 @@ else UNICODE = endif +ifeq ($(PLATFORM),linux) + ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) + PLATVER = -D __CENTOS__ + PLATDIR = XEngine_Linux/Centos + else + PLATVER = -D __UBUNTU__ + PLATDIR = XEngine_Linux/Ubuntu + endif + FILEEXT = so + LIBFLAG = -shared + LIBEX = -lpthread -lrt -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),android) + NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC + PLATVER = -D __ANDROID__ + PLATDIR = XEngine_Android + FILEEXT = so + LIBFLAG = -shared + LIBEX = -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),mac) + CC += -Wno-deprecated-declarations + PLATVER = -D __MACOS__ + PLATDIR = XEngine_Mac + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +else ifeq ($(PLATFORM),ios) + SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 + PLATVER = -D __IOS__ + PLATDIR = XEngine_IOS + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +endif + -all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libModulePlugin_IPAddr.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) +all:$(OBJECTS) + $(CC) $(DEBUG) $(OBJECTS) -o libModulePlugin_IPAddr.$(FILEEXT) $(LIBFLAG) $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) ModulePlugin_IPAddr.o:./ModulePlugin_IPAddr/ModulePlugin_IPAddr.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModulePlugin_IPAddr/ModulePlugin_IPAddr.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModulePlugin_IPAddr/ModulePlugin_IPAddr.cpp ModulePlugin_Interface.o:./ModulePlugin_Interface/ModulePlugin_Interface.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModulePlugin_Interface/ModulePlugin_Interface.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModulePlugin_Interface/ModulePlugin_Interface.cpp pch.o:./pch.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./pch.cpp InstallAll:InstallSo -InstallSo:./libModulePlugin_IPAddr.$(SHAREDLL) - cp ./libModulePlugin_IPAddr.$(SHAREDLL) ../../../XEngine_Release/XEngine_LibPlugin/libModulePlugin_IPAddr.$(SHAREDLL) +InstallSo:./libModulePlugin_IPAddr.$(FILEEXT) + cp ./libModulePlugin_IPAddr.$(FILEEXT) ../../../XEngine_Release/XEngine_LibPlugin/libModulePlugin_IPAddr.$(FILEEXT) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.$(SHAREDLL) \ No newline at end of file + rm *.$(FILEEXT) \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile index 1cda5c9..6f5f3d7 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile @@ -1,30 +1,28 @@ CC = g++ -Wall -std=c++17 -fPIC -SHAREFLAG = -shared -SHAREDLL = so +PLATFORM = linux +PLATVER = +PLATDIR = +FILEEXT = +LIBFLAG = RELEASE = 0 UNICODE = 0 -INCLUDE = -I ./ -I ../../XEngine_ThirdPart/jsoncpp -LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -ljsoncpp -LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath=../,--disable-new-dtags -LIBINCLUDE = Plugin_Meter.o pch.o - -ifeq ($(shell uname),Darwin) - SHAREDLL = dylib - SHAREFLAG = -dynamiclib - LOADSO = -else - SHAREDLL = so - SHAREFLAG = -shared -endif +LIBEX = +OBJECTS = Plugin_Meter.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -O2 +FLAGS = -c DEBUG = else +ifeq ($(PLATFORM),android) FLAGS = -c DEBUG = -g +else +FLAGS = -c -lc_p +DEBUG = -g -pg +endif endif ifeq ($(UNICODE),1) @@ -33,23 +31,62 @@ else UNICODE = endif +ifeq ($(PLATFORM),linux) + ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) + PLATVER = -D __CENTOS__ + PLATDIR = XEngine_Linux/Centos + else + PLATVER = -D __UBUNTU__ + PLATDIR = XEngine_Linux/Ubuntu + endif + FILEEXT = so + LIBFLAG = -shared + LIBEX = -lpthread -lrt -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),android) + NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC + PLATVER = -D __ANDROID__ + PLATDIR = XEngine_Android + FILEEXT = so + LIBFLAG = -shared + LIBEX = -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),mac) + CC += -Wno-deprecated-declarations + PLATVER = -D __MACOS__ + PLATDIR = XEngine_Mac + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +else ifeq ($(PLATFORM),ios) + SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 + PLATVER = -D __IOS__ + PLATDIR = XEngine_IOS + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +endif -all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libModulePlugin_Meter.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) -Plugin_Meter.o:./Plugin_Meter/Plugin_Meter.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./Plugin_Meter/Plugin_Meter.cpp +all:$(OBJECTS) + $(CC) $(DEBUG) $(OBJECTS) -o libModulePlugin_Meter.$(FILEEXT) $(LIBFLAG) $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) +Plugin_Meter.o:./Plugin_Meter/Plugin_Meter.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./Plugin_Meter/Plugin_Meter.cpp pch.o:./pch.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./pch.cpp InstallAll:InstallSo -InstallSo:./libModulePlugin_Meter.$(SHAREDLL) - cp ./libModulePlugin_Meter.$(SHAREDLL) ../../../XEngine_Release/XEngine_LibPlugin/libModulePlugin_Meter.$(SHAREDLL) +InstallSo:./libModulePlugin_Meter.$(FILEEXT) + cp ./libModulePlugin_Meter.$(FILEEXT) ../../../XEngine_Release/XEngine_LibPlugin/libModulePlugin_Meter.$(FILEEXT) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.$(SHAREDLL) \ No newline at end of file + rm *.$(FILEEXT) \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Makefile index c1bd76e..2bd1edc 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Makefile @@ -1,30 +1,28 @@ -CC = g++ -Wall -std=c++17 -fPIC -Wno-deprecated-declarations -SHAREFLAG = -shared -SHAREDLL = so +CC = g++ -Wall -std=c++17 -fPIC +PLATFORM = linux +PLATVER = +PLATDIR = +FILEEXT = +LIBFLAG = RELEASE = 0 UNICODE = 0 -INCLUDE = -I ./ -I ../../XEngine_ThirdPart/jsoncpp -LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -ljsoncpp -LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath=../,--disable-new-dtags -LIBINCLUDE = Plugin_Password.o pch.o - -ifeq ($(shell uname),Darwin) - SHAREDLL = dylib - SHAREFLAG = -dynamiclib - LOADSO = -else - SHAREDLL = so - SHAREFLAG = -shared -endif +LIBEX = +OBJECTS = Plugin_Password.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -O2 +FLAGS = -c DEBUG = else +ifeq ($(PLATFORM),android) FLAGS = -c DEBUG = -g +else +FLAGS = -c -lc_p +DEBUG = -g -pg +endif endif ifeq ($(UNICODE),1) @@ -33,23 +31,63 @@ else UNICODE = endif +ifeq ($(PLATFORM),linux) + ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) + PLATVER = -D __CENTOS__ + PLATDIR = XEngine_Linux/Centos + else + PLATVER = -D __UBUNTU__ + PLATDIR = XEngine_Linux/Ubuntu + endif + FILEEXT = so + LIBFLAG = -shared + LIBEX = -lpthread -lrt -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),android) + NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC + PLATVER = -D __ANDROID__ + PLATDIR = XEngine_Android + FILEEXT = so + LIBFLAG = -shared + LIBEX = -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),mac) + CC += -Wno-deprecated-declarations + PLATVER = -D __MACOS__ + PLATDIR = XEngine_Mac + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +else ifeq ($(PLATFORM),ios) + SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 + PLATVER = -D __IOS__ + PLATDIR = XEngine_IOS + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +endif + -all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libModulePlugin_Password.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) +all:$(OBJECTS) + $(CC) $(DEBUG) $(OBJECTS) -o libModulePlugin_Password.$(FILEEXT) $(LIBFLAG) $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) Plugin_Password.o:./Plugin_Password/Plugin_Password.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./Plugin_Password/Plugin_Password.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./Plugin_Password/Plugin_Password.cpp pch.o:./pch.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./pch.cpp InstallAll:InstallSo -InstallSo:./libModulePlugin_Password.$(SHAREDLL) - cp ./libModulePlugin_Password.$(SHAREDLL) ../../../XEngine_Release/XEngine_LibPlugin/libModulePlugin_Password.$(SHAREDLL) +InstallSo:./libModulePlugin_Password.$(FILEEXT) + cp ./libModulePlugin_Password.$(FILEEXT) ../../../XEngine_Release/XEngine_LibPlugin/libModulePlugin_Password.$(FILEEXT) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.$(SHAREDLL) \ No newline at end of file + rm *.$(FILEEXT) \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/Makefile index 34066e4..543fd5a 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/Makefile @@ -1,30 +1,28 @@ CC = g++ -Wall -std=c++17 -fPIC -SHAREFLAG = -shared -SHAREDLL = so +PLATFORM = linux +PLATVER = +PLATDIR = +FILEEXT = +LIBFLAG = RELEASE = 0 UNICODE = 0 -INCLUDE = -I ./ -I ../../XEngine_ThirdPart/jsoncpp -LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -ljsoncpp -LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath=../,--disable-new-dtags -LIBINCLUDE = ModulePlugin_DBPhone.o ModulePlugin_APIPhone.o pch.o - -ifeq ($(shell uname),Darwin) - SHAREDLL = dylib - SHAREFLAG = -dynamiclib - LOADSO = -else - SHAREDLL = so - SHAREFLAG = -shared -endif +LIBEX = +OBJECTS = ModulePlugin_DBPhone.o ModulePlugin_APIPhone.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -O2 +FLAGS = -c DEBUG = else +ifeq ($(PLATFORM),android) FLAGS = -c DEBUG = -g +else +FLAGS = -c -lc_p +DEBUG = -g -pg +endif endif ifeq ($(UNICODE),1) @@ -33,25 +31,65 @@ else UNICODE = endif +ifeq ($(PLATFORM),linux) + ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) + PLATVER = -D __CENTOS__ + PLATDIR = XEngine_Linux/Centos + else + PLATVER = -D __UBUNTU__ + PLATDIR = XEngine_Linux/Ubuntu + endif + FILEEXT = so + LIBFLAG = -shared + LIBEX = -lpthread -lrt -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),android) + NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC + PLATVER = -D __ANDROID__ + PLATDIR = XEngine_Android + FILEEXT = so + LIBFLAG = -shared + LIBEX = -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),mac) + CC += -Wno-deprecated-declarations + PLATVER = -D __MACOS__ + PLATDIR = XEngine_Mac + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +else ifeq ($(PLATFORM),ios) + SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 + PLATVER = -D __IOS__ + PLATDIR = XEngine_IOS + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +endif + -all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libModulePlugin_Phone.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) +all:$(OBJECTS) + $(CC) $(DEBUG) $(OBJECTS) -o libModulePlugin_Phone.$(FILEEXT) $(LIBFLAG) $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) ModulePlugin_DBPhone.o:./ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp ModulePlugin_APIPhone.o:./ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp pch.o:./pch.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./pch.cpp InstallAll:InstallSo -InstallSo:./libModulePlugin_Phone.$(SHAREDLL) - cp ./libModulePlugin_Phone.$(SHAREDLL) ../../../XEngine_Release/XEngine_LibPlugin/libModulePlugin_Phone.$(SHAREDLL) +InstallSo:./libModulePlugin_Phone.$(FILEEXT) + cp ./libModulePlugin_Phone.$(FILEEXT) ../../../XEngine_Release/XEngine_LibPlugin/libModulePlugin_Phone.$(FILEEXT) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.$(SHAREDLL) \ No newline at end of file + rm *.$(FILEEXT) \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Makefile index 456bbfb..26550df 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Makefile @@ -1,30 +1,28 @@ -CC = g++ -Wall -std=c++17 -fPIC -Wno-deprecated-declarations -SHAREFLAG = -shared -SHAREDLL = so +CC = g++ -Wall -std=c++17 -fPIC +PLATFORM = linux +PLATVER = +PLATDIR = +FILEEXT = +LIBFLAG = RELEASE = 0 UNICODE = 0 -INCLUDE = -I ./ -I ../../XEngine_ThirdPart/jsoncpp -LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -ljsoncpp -LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath=../,--disable-new-dtags -LIBINCLUDE = Plugin_Timezone.o pch.o - -ifeq ($(shell uname),Darwin) - SHAREDLL = dylib - SHAREFLAG = -dynamiclib - LOADSO = -else - SHAREDLL = so - SHAREFLAG = -shared -endif +LIBEX = +OBJECTS = Plugin_Timezone.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -O2 +FLAGS = -c DEBUG = else +ifeq ($(PLATFORM),android) FLAGS = -c DEBUG = -g +else +FLAGS = -c -lc_p +DEBUG = -g -pg +endif endif ifeq ($(UNICODE),1) @@ -33,23 +31,62 @@ else UNICODE = endif +ifeq ($(PLATFORM),linux) + ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) + PLATVER = -D __CENTOS__ + PLATDIR = XEngine_Linux/Centos + else + PLATVER = -D __UBUNTU__ + PLATDIR = XEngine_Linux/Ubuntu + endif + FILEEXT = so + LIBFLAG = -shared + LIBEX = -lpthread -lrt -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),android) + NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC + PLATVER = -D __ANDROID__ + PLATDIR = XEngine_Android + FILEEXT = so + LIBFLAG = -shared + LIBEX = -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),mac) + CC += -Wno-deprecated-declarations + PLATVER = -D __MACOS__ + PLATDIR = XEngine_Mac + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +else ifeq ($(PLATFORM),ios) + SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 + PLATVER = -D __IOS__ + PLATDIR = XEngine_IOS + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +endif -all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libModulePlugin_Timezone.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) -Plugin_Timezone.o:./Plugin_Timezone/Plugin_Timezone.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./Plugin_Timezone/Plugin_Timezone.cpp +all:$(OBJECTS) + $(CC) $(DEBUG) $(OBJECTS) -o libModulePlugin_Timezone.$(FILEEXT) $(LIBFLAG) $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) +Plugin_Timezone.o:./Plugin_Timezone/Plugin_Timezone.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./Plugin_Timezone/Plugin_Timezone.cpp pch.o:./pch.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./pch.cpp InstallAll:InstallSo -InstallSo:./libModulePlugin_Timezone.$(SHAREDLL) - cp ./libModulePlugin_Timezone.$(SHAREDLL) ../../../XEngine_Release/XEngine_LibPlugin/libModulePlugin_Timezone.$(SHAREDLL) +InstallSo:./libModulePlugin_Timezone.$(FILEEXT) + cp ./libModulePlugin_Timezone.$(FILEEXT) ../../../XEngine_Release/XEngine_LibPlugin/libModulePlugin_Timezone.$(FILEEXT) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.$(SHAREDLL) \ No newline at end of file + rm *.$(FILEEXT) \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Makefile index fe8d368..4dd3530 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Makefile @@ -1,30 +1,28 @@ CC = g++ -Wall -std=c++17 -fPIC -SHAREFLAG = -shared -SHAREDLL = so +PLATFORM = linux +PLATVER = +PLATDIR = +FILEEXT = +LIBFLAG = RELEASE = 0 UNICODE = 0 -INCLUDE = -I ./ -I ../../XEngine_ThirdPart/jsoncpp -LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp -LIB = -lXEngine_BaseLib -lXEngine_Algorithm -ljsoncpp -LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath=../,--disable-new-dtags -LIBINCLUDE = Plugin_Zodiac.o pch.o - -ifeq ($(shell uname),Darwin) - SHAREDLL = dylib - SHAREFLAG = -dynamiclib - LOADSO = -else - SHAREDLL = so - SHAREFLAG = -shared -endif +LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp +LIB = -lXEngine_BaseLib -ljsoncpp +LIBEX = +OBJECTS = Plugin_Zodiac.o pch.o ifeq ($(RELEASE),1) -FLAGS = -c -O2 +FLAGS = -c DEBUG = else -FLAGS = -c -DEBUG = -g +ifeq ($(PLATFORM),android) +FLAGS = -c +DEBUG = -g +else +FLAGS = -c -lc_p +DEBUG = -g -pg +endif endif ifeq ($(UNICODE),1) @@ -33,23 +31,63 @@ else UNICODE = endif +ifeq ($(PLATFORM),linux) + ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) + PLATVER = -D __CENTOS__ + PLATDIR = XEngine_Linux/Centos + else + PLATVER = -D __UBUNTU__ + PLATDIR = XEngine_Linux/Ubuntu + endif + FILEEXT = so + LIBFLAG = -shared + LIBEX = -lpthread -lrt -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),android) + NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC + PLATVER = -D __ANDROID__ + PLATDIR = XEngine_Android + FILEEXT = so + LIBFLAG = -shared + LIBEX = -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),mac) + CC += -Wno-deprecated-declarations + PLATVER = -D __MACOS__ + PLATDIR = XEngine_Mac + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +else ifeq ($(PLATFORM),ios) + SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 + PLATVER = -D __IOS__ + PLATDIR = XEngine_IOS + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +endif + -all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libModulePlugin_Zodiac.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) +all:$(OBJECTS) + $(CC) $(DEBUG) $(OBJECTS) -o libModulePlugin_Zodiac.$(FILEEXT) $(LIBFLAG) $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) Plugin_Zodiac.o:./Plugin_Zodiac/Plugin_Zodiac.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./Plugin_Zodiac/Plugin_Zodiac.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./Plugin_Zodiac/Plugin_Zodiac.cpp pch.o:./pch.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./pch.cpp InstallAll:InstallSo -InstallSo:./libModulePlugin_Zodiac.$(SHAREDLL) - cp ./libModulePlugin_Zodiac.$(SHAREDLL) ../../../XEngine_Release/XEngine_LibPlugin/libModulePlugin_Zodiac.$(SHAREDLL) +InstallSo:./libModulePlugin_Zodiac.$(FILEEXT) + cp ./libModulePlugin_Zodiac.$(FILEEXT) ../../../XEngine_Release/XEngine_LibPlugin/libModulePlugin_Zodiac.$(FILEEXT) CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.$(SHAREDLL) \ No newline at end of file + rm *.$(FILEEXT) \ No newline at end of file diff --git a/XEngine_Source/XEngine_ThirdPart/jsoncpp/Makefile b/XEngine_Source/XEngine_ThirdPart/jsoncpp/Makefile index 4611006..a1e5c11 100644 --- a/XEngine_Source/XEngine_ThirdPart/jsoncpp/Makefile +++ b/XEngine_Source/XEngine_ThirdPart/jsoncpp/Makefile @@ -1,52 +1,89 @@ CC = g++ -Wall -std=c++17 -fPIC -SHAREFLAG = -shared -SHAREDLL = so +PLATFORM = linux +PLATVER = +PLATDIR = +FILEEXT = +LIBFLAG = RELEASE = 0 UNICODE = 0 -INCLUDE = -I ./ -FILECENTOS = /etc/redhat-release -LOADBIN = +LOADHDR = -I ./ +LOADSO = -L LIB = -LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath= -LIBINCLUDE = json_reader.o json_value.o json_writer.o - -ifeq ($(shell uname),Darwin) - SHAREDLL = dylib - SHAREFLAG = -dynamiclib - LOADSO = -else - SHAREDLL = so - SHAREFLAG = -shared -endif +LIBEX = +OBJECTS = json_reader.o json_value.o json_writer.o ifeq ($(RELEASE),1) -FLAGS = -c -O2 -DEBUG = -else FLAGS = -c -DEBUG = -g +DEBUG = +else +ifeq ($(PLATFORM),android) +FLAGS = -c +DEBUG = -g +else +FLAGS = -c -lc_p +DEBUG = -g -pg +endif endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE else -UNICODE = +UNICODE = +endif + +ifeq ($(PLATFORM),linux) + ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) + PLATVER = -D __CENTOS__ + PLATDIR = XEngine_Linux/Centos + else + PLATVER = -D __UBUNTU__ + PLATDIR = XEngine_Linux/Ubuntu + endif + FILEEXT = so + LIBFLAG = -shared + LIBEX = -lpthread -lrt -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),android) + NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC + PLATVER = -D __ANDROID__ + PLATDIR = XEngine_Android + FILEEXT = so + LIBFLAG = -shared + LIBEX = -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),mac) + CC += -Wno-deprecated-declarations + PLATVER = -D __MACOS__ + PLATDIR = XEngine_Mac + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +else ifeq ($(PLATFORM),ios) + SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 + PLATVER = -D __IOS__ + PLATDIR = XEngine_IOS + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ endif -all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o libjsoncpp.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) +all:$(OBJECTS) + $(CC) $(DEBUG) $(OBJECTS) -o libjsoncpp.$(FILEEXT) $(LIBFLAG) $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) json_reader.o:json_reader.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) json_reader.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) json_reader.cpp json_value.o:json_value.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) json_value.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) json_value.cpp json_writer.o:json_writer.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) json_writer.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) json_writer.cpp InstallAll:InstallSo -InstallSo:./libjsoncpp.$(SHAREDLL) - cp ./libjsoncpp.$(SHAREDLL) ../../../XEngine_Release/libjsoncpp.$(SHAREDLL) +InstallSo:./libjsoncpp.$(FILEEXT) + cp ./libjsoncpp.$(FILEEXT) ../../../XEngine_Release/libjsoncpp.$(FILEEXT) @@ -54,4 +91,4 @@ CleanAll:CleanObj CleanMk CleanObj: rm *.o CleanMk: - rm *.$(SHAREDLL) + rm *.$(FILEEXT) -- Gitee From 54586f66fe020b28550f7cd1b265f6d89939539d Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 4 Apr 2023 16:22:12 +0800 Subject: [PATCH 03/26] update:exmaple code --- .../APPClient_BankExample.cpp | 4 +- .../APPClient_IDExample.cpp | 4 +- .../APPClient_IPExample.cpp | 10 +- .../APPClient_LanguageExample.cpp | 4 +- .../APPClient_LibPluginExample.cpp | 10 +- .../APPClient_LockExample.cpp | 12 +- .../APPClient_LuaPluginExample.cpp | 4 +- .../APPClient_P2PExample.cpp | 30 ++--- .../APPClient_PhoneExample.cpp | 4 +- .../APPClient_QRExample.cpp | 14 +-- .../APPClient_TestExample.cpp | 10 +- .../APPClient_TranslationExample.cpp | 4 +- .../APPClient_XLogExample.cpp | 20 +-- .../APPClient_ZIPCodeExample.cpp | 6 +- .../XEngine_HttpApp/Makefile | 115 ++++++++++++------ 15 files changed, 150 insertions(+), 101 deletions(-) diff --git a/XEngine_APPClient/APPClient_BankExample/APPClient_BankExample.cpp b/XEngine_APPClient/APPClient_BankExample/APPClient_BankExample.cpp index 214fdf1..6e4d985 100644 --- a/XEngine_APPClient/APPClient_BankExample/APPClient_BankExample.cpp +++ b/XEngine_APPClient/APPClient_BankExample/APPClient_BankExample.cpp @@ -28,8 +28,8 @@ int main() WSAStartup(MAKEWORD(2, 2), &st_WSAData); #endif int nLen = 0; - TCHAR* ptszMsgBuffer = NULL; - LPCTSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=bank¶ms1=6214111100184841¶ms2=0"); + XCHAR* ptszMsgBuffer = NULL; + LPCXSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=bank¶ms1=6214111100184841¶ms2=0"); if (!APIClient_Http_Request(_T("GET"), lpszUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { diff --git a/XEngine_APPClient/APPClient_IDExample/APPClient_IDExample.cpp b/XEngine_APPClient/APPClient_IDExample/APPClient_IDExample.cpp index 6bd40da..d9a2570 100644 --- a/XEngine_APPClient/APPClient_IDExample/APPClient_IDExample.cpp +++ b/XEngine_APPClient/APPClient_IDExample/APPClient_IDExample.cpp @@ -28,8 +28,8 @@ int main() WSAStartup(MAKEWORD(2, 2), &st_WSAData); #endif int nLen = 0; - TCHAR* ptszMsgBuffer = NULL; - LPCTSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=id¶ms1=511025191101018792¶ms2=0"); + XCHAR* ptszMsgBuffer = NULL; + LPCXSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=id¶ms1=511025191101018792¶ms2=0"); if (!APIClient_Http_Request(_T("GET"), lpszUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { diff --git a/XEngine_APPClient/APPClient_IPExample/APPClient_IPExample.cpp b/XEngine_APPClient/APPClient_IPExample/APPClient_IPExample.cpp index 1390272..71db330 100644 --- a/XEngine_APPClient/APPClient_IPExample/APPClient_IPExample.cpp +++ b/XEngine_APPClient/APPClient_IPExample/APPClient_IPExample.cpp @@ -28,15 +28,19 @@ int main() WSAStartup(MAKEWORD(2, 2), &st_WSAData); #endif int nLen = 0; - TCHAR* ptszMsgBuffer = NULL; - LPCTSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=ip¶ms1=1.29.164.255¶ms2=0"); + XCHAR* ptszMsgBuffer = NULL; + LPCXSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=ip¶ms1=1.29.164.255¶ms2=0"); if (!APIClient_Http_Request(_T("GET"), lpszUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; } - printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer); + XCHAR tszMsgBuffer[2048]; + memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); + + BaseLib_OperatorCharset_UTFToAnsi(ptszMsgBuffer, tszMsgBuffer, &nLen); + printf("接受到数据,大小:%d,内容:%s\n", nLen, tszMsgBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); #ifdef _MSC_BUILD diff --git a/XEngine_APPClient/APPClient_LanguageExample/APPClient_LanguageExample.cpp b/XEngine_APPClient/APPClient_LanguageExample/APPClient_LanguageExample.cpp index 63634ff..9bce4ac 100644 --- a/XEngine_APPClient/APPClient_LanguageExample/APPClient_LanguageExample.cpp +++ b/XEngine_APPClient/APPClient_LanguageExample/APPClient_LanguageExample.cpp @@ -28,8 +28,8 @@ int main() WSAStartup(MAKEWORD(2, 2), &st_WSAData); #endif int nLen = 0; - TCHAR* ptszMsgBuffer = NULL; - LPCTSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=language¶ms1=简体¶ms2=0¶m3=1"); + XCHAR* ptszMsgBuffer = NULL; + LPCXSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=language¶ms1=简体¶ms2=0¶m3=1"); if (!APIClient_Http_Request(_T("GET"), lpszUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { diff --git a/XEngine_APPClient/APPClient_LibPluginExample/APPClient_LibPluginExample.cpp b/XEngine_APPClient/APPClient_LibPluginExample/APPClient_LibPluginExample.cpp index 59edc92..6253227 100644 --- a/XEngine_APPClient/APPClient_LibPluginExample/APPClient_LibPluginExample.cpp +++ b/XEngine_APPClient/APPClient_LibPluginExample/APPClient_LibPluginExample.cpp @@ -28,8 +28,8 @@ int main() WSAStartup(MAKEWORD(2, 2), &st_WSAData); #endif int nLen = 0; - TCHAR* ptszMsgBuffer = NULL; - LPCTSTR lpszPassUrl = _T("http://127.0.0.1:5501/api?function=pass¶ms1=1¶ms2=4"); + XCHAR* ptszMsgBuffer = NULL; + LPCXSTR lpszPassUrl = _T("http://127.0.0.1:5501/api?function=pass¶ms1=1¶ms2=4"); if (!APIClient_Http_Request(_T("GET"), lpszPassUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); @@ -38,7 +38,7 @@ int main() printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); - LPCTSTR lpszZodiacUrl = _T("http://127.0.0.1:5501/api?function=zodiac¶ms1=19880121"); + LPCXSTR lpszZodiacUrl = _T("http://127.0.0.1:5501/api?function=zodiac¶ms1=19880121"); if (!APIClient_Http_Request(_T("GET"), lpszZodiacUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); @@ -47,7 +47,7 @@ int main() printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); - LPCTSTR lpszTimeUrl = _T("http://127.0.0.1:5501/api?function=timezone¶ms1=1¶ms2=1-20"); + LPCXSTR lpszTimeUrl = _T("http://127.0.0.1:5501/api?function=timezone¶ms1=1¶ms2=1-20"); if (!APIClient_Http_Request(_T("GET"), lpszTimeUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); @@ -56,7 +56,7 @@ int main() printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); - LPCTSTR lpszBmiUrl = _T("http://127.0.0.1:5501/api?function=bmindex¶ms1=1.78¶ms2=62"); + LPCXSTR lpszBmiUrl = _T("http://127.0.0.1:5501/api?function=bmindex¶ms1=1.78¶ms2=62"); if (!APIClient_Http_Request(_T("GET"), lpszBmiUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); diff --git a/XEngine_APPClient/APPClient_LockExample/APPClient_LockExample.cpp b/XEngine_APPClient/APPClient_LockExample/APPClient_LockExample.cpp index 4f58948..370f285 100644 --- a/XEngine_APPClient/APPClient_LockExample/APPClient_LockExample.cpp +++ b/XEngine_APPClient/APPClient_LockExample/APPClient_LockExample.cpp @@ -28,9 +28,9 @@ int main() WSAStartup(MAKEWORD(2, 2), &st_WSAData); #endif int nLen = 0; - LPCTSTR lpszOPenUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms1=1"); + LPCXSTR lpszOPenUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms1=1"); //自己创建打开 - TCHAR* ptszBuffer = NULL; + XCHAR* ptszBuffer = NULL; if (!APIClient_Http_Request(_T("GET"), lpszOPenUrl, NULL, NULL, &ptszBuffer, &nLen)) { printf("发送投递失败!\n"); @@ -39,7 +39,7 @@ int main() printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer); //打开读锁 - LPCTSTR lpszReadUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=3"); + LPCXSTR lpszReadUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=3"); if (!APIClient_Http_Request(_T("GET"), lpszReadUrl, NULL, NULL, &ptszBuffer, &nLen)) { printf("发送投递失败!\n"); @@ -48,7 +48,7 @@ int main() printf("接受到数据,大小:%d,内容:\n%s\n", nLen, ptszBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer); //打开写锁 - LPCTSTR lpszWriteUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=5"); + LPCXSTR lpszWriteUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=5"); if (!APIClient_Http_Request(_T("GET"), lpszWriteUrl, NULL, NULL, &ptszBuffer, &nLen)) { printf("发送投递失败!\n"); @@ -57,7 +57,7 @@ int main() printf("接受到数据,大小:%d,内容:\n%s\n", nLen, ptszBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer); //释放读锁 - LPCTSTR lpszUNReadUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=4"); + LPCXSTR lpszUNReadUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=4"); if (!APIClient_Http_Request(_T("GET"), lpszUNReadUrl, NULL, NULL, &ptszBuffer, &nLen)) { printf("发送投递失败!\n"); @@ -74,7 +74,7 @@ int main() printf("接受到数据,大小:%d,内容:\n%s\n", nLen, ptszBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer); //关闭 - LPCTSTR lpszCloseUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=2"); + LPCXSTR lpszCloseUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=2"); if (!APIClient_Http_Request(_T("GET"), lpszCloseUrl, NULL, NULL, &ptszBuffer, &nLen)) { printf("发送投递失败!\n"); diff --git a/XEngine_APPClient/APPClient_LuaPluginExample/APPClient_LuaPluginExample.cpp b/XEngine_APPClient/APPClient_LuaPluginExample/APPClient_LuaPluginExample.cpp index 2d296b6..c3fb727 100644 --- a/XEngine_APPClient/APPClient_LuaPluginExample/APPClient_LuaPluginExample.cpp +++ b/XEngine_APPClient/APPClient_LuaPluginExample/APPClient_LuaPluginExample.cpp @@ -28,8 +28,8 @@ int main() WSAStartup(MAKEWORD(2, 2), &st_WSAData); #endif int nLen = 0; - TCHAR* ptszMsgBuffer = NULL; - LPCTSTR lpszPassUrl = _T("http://127.0.0.1:5501/api?function=cal¶ms1=1¶ms2=2&type=0"); + XCHAR* ptszMsgBuffer = NULL; + LPCXSTR lpszPassUrl = _T("http://127.0.0.1:5501/api?function=cal¶ms1=1¶ms2=2&type=0"); if (!APIClient_Http_Request(_T("GET"), lpszPassUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); diff --git a/XEngine_APPClient/APPClient_P2PExample/APPClient_P2PExample.cpp b/XEngine_APPClient/APPClient_P2PExample/APPClient_P2PExample.cpp index e8b9e7c..98ca94f 100644 --- a/XEngine_APPClient/APPClient_P2PExample/APPClient_P2PExample.cpp +++ b/XEngine_APPClient/APPClient_P2PExample/APPClient_P2PExample.cpp @@ -26,20 +26,20 @@ //linux使用下面的命令编译 //g++ -std=c++17 -Wall -g APPClient_P2PExample.cpp -o APPClient_P2PExample.exe -I ../../XEngine_Source/XEngine_ThirdPart/jsoncpp -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_Core -L /usr/local/lib/XEngine_Release/XEngine_NetHelp -lXEngine_BaseLib -lXEngine_NetXApi -lNetHelp_APIClient -ljsoncpp -LPCTSTR lpszUserName = _T("123123aa"); -TCHAR tszPublicAddr[128]; -TCHAR tszPrivateAddr[128]; +LPCXSTR lpszUserName = _T("123123aa"); +XCHAR tszPublicAddr[128]; +XCHAR tszPrivateAddr[128]; int nPort = 5103; SOCKET m_hSocket; -BOOL APIHelp_NetWork_GetIPNet(TCHAR* ptszIPAddr) +BOOL APIHelp_NetWork_GetIPNet(XCHAR* ptszIPAddr) { //获取本地外网IP地址 int nBLen = 0; - TCHAR* ptszBody = NULL; - LPCTSTR lpszUrl = _T("http://members.3322.org/dyndns/getip"); - LPCTSTR lpszHdrBuffer = _T("Connection: close\r\nDNT: 1\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 Edg/97.0.1072.55\r\nAccept: text/html\r\nAccept-Language: zh-CN,zh\r\nAccept-Encoding: deflate\r\n"); + XCHAR* ptszBody = NULL; + LPCXSTR lpszUrl = _T("http://members.3322.org/dyndns/getip"); + LPCXSTR lpszHdrBuffer = _T("Connection: close\r\nDNT: 1\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 Edg/97.0.1072.55\r\nAccept: text/html\r\nAccept-Language: zh-CN,zh\r\nAccept-Encoding: deflate\r\n"); if (!APIClient_Http_Request(_T("GET"), lpszUrl, NULL, NULL, &ptszBody, &nBLen, lpszHdrBuffer)) { @@ -52,7 +52,7 @@ BOOL APIHelp_NetWork_GetIPNet(TCHAR* ptszIPAddr) int APPClient_P2XPLogin() { Json::Value st_JsonRoot; - LPCTSTR lpszAddr = _T("http://192.168.1.8:5501/api?function=p2p¶ms1=24577"); + LPCXSTR lpszAddr = _T("http://192.168.1.8:5501/api?function=p2p¶ms1=24577"); ENUM_XENGINE_NETXAPI_SOCKET_CONNECTTYPE dwNetType; memset(tszPublicAddr, '\0', sizeof(tszPublicAddr)); @@ -82,7 +82,7 @@ int APPClient_P2XPLogin() int nMsgLen = 0; int nHTTPCode = 0; - TCHAR* ptszMsgBuffer = NULL; + XCHAR* ptszMsgBuffer = NULL; if (!APIClient_Http_Request(_T("POST"), lpszAddr, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen)) { return -1; @@ -95,7 +95,7 @@ int APPClient_P2XPLogin() int APPClient_P2XPList() { Json::Value st_JsonRoot; - LPCTSTR lpszAddr = _T("http://192.168.1.8:5501/api?function=p2p¶ms1=24579"); + LPCXSTR lpszAddr = _T("http://192.168.1.8:5501/api?function=p2p¶ms1=24579"); st_JsonRoot["tszUserName"] = lpszUserName; st_JsonRoot["tszPrivateAddr"] = tszPrivateAddr; @@ -103,7 +103,7 @@ int APPClient_P2XPList() int nMsgLen = 0; int nHTTPCode = 0; - TCHAR* ptszMsgBuffer = NULL; + XCHAR* ptszMsgBuffer = NULL; if (!APIClient_Http_Request(_T("POST"), lpszAddr, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen)) { return -1; @@ -116,7 +116,7 @@ int APPClient_P2XPList() int APPClient_P2XPGetUser() { Json::Value st_JsonRoot; - LPCTSTR lpszAddr = _T("http://192.168.1.8:5501/api?function=p2p¶ms1=24583"); + LPCXSTR lpszAddr = _T("http://192.168.1.8:5501/api?function=p2p¶ms1=24583"); st_JsonRoot["tszUserName"] = lpszUserName; st_JsonRoot["tszPrivateAddr"] = tszPrivateAddr; @@ -124,7 +124,7 @@ int APPClient_P2XPGetUser() int nMsgLen = 0; int nHTTPCode = 0; - TCHAR* ptszMsgBuffer = NULL; + XCHAR* ptszMsgBuffer = NULL; if (!APIClient_Http_Request(_T("POST"), lpszAddr, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen)) { return -1; @@ -137,7 +137,7 @@ int APPClient_P2XPGetUser() int APPClient_P2XPConnect() { Json::Value st_JsonRoot; - LPCTSTR lpszAddr = _T("http://192.168.1.8:5501/api?function=p2p¶ms1=24581"); + LPCXSTR lpszAddr = _T("http://192.168.1.8:5501/api?function=p2p¶ms1=24581"); st_JsonRoot["tszUserName"] = lpszUserName; st_JsonRoot["tszPrivateAddr"] = tszPrivateAddr; @@ -145,7 +145,7 @@ int APPClient_P2XPConnect() int nMsgLen = 0; int nHTTPCode = 0; - TCHAR* ptszMsgBuffer = NULL; + XCHAR* ptszMsgBuffer = NULL; if (!APIClient_Http_Request(_T("POST"), lpszAddr, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen)) { return -1; diff --git a/XEngine_APPClient/APPClient_PhoneExample/APPClient_PhoneExample.cpp b/XEngine_APPClient/APPClient_PhoneExample/APPClient_PhoneExample.cpp index fb39a0c..d19a100 100644 --- a/XEngine_APPClient/APPClient_PhoneExample/APPClient_PhoneExample.cpp +++ b/XEngine_APPClient/APPClient_PhoneExample/APPClient_PhoneExample.cpp @@ -28,8 +28,8 @@ int main() WSAStartup(MAKEWORD(2, 2), &st_WSAData); #endif int nLen = 0; - TCHAR* ptszMsgBuffer = NULL; - LPCTSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=phone¶ms1=13699438888¶ms2=0"); + XCHAR* ptszMsgBuffer = NULL; + LPCXSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=phone¶ms1=13699438888¶ms2=0"); if (!APIClient_Http_Request(_T("GET"), lpszUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { diff --git a/XEngine_APPClient/APPClient_QRExample/APPClient_QRExample.cpp b/XEngine_APPClient/APPClient_QRExample/APPClient_QRExample.cpp index ac336c4..32ff1ff 100644 --- a/XEngine_APPClient/APPClient_QRExample/APPClient_QRExample.cpp +++ b/XEngine_APPClient/APPClient_QRExample/APPClient_QRExample.cpp @@ -25,19 +25,19 @@ #define QRCODE_BUFFER_SIZE 1024 * 1024 * 10 -LPCTSTR lpszFileName = _T("D:\\XEngine_APIService\\XEngine_APPClient\\x64\\Debug\\1.png"); +LPCXSTR lpszFileName = _T("D:\\XEngine_APIService\\XEngine_APPClient\\x64\\Debug\\1.png"); int test_create() { int nLen = 0; int nCode = 0; - LPCTSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=qrcode¶ms1=0"); + LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=qrcode¶ms1=0"); Json::Value st_JsonRoot; st_JsonRoot["tszMsgBuffer"] = lpszAPIUrl; st_JsonRoot["tszFmtBuffer"] = ".png"; - TCHAR* ptszMsgBuffer = NULL; + XCHAR* ptszMsgBuffer = NULL; if (!APIClient_Http_Request(_T("POST"), lpszAPIUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); @@ -57,17 +57,17 @@ int test_create() int test_parse() { int nCode = 0; - TCHAR* ptszMsgBuffer = (TCHAR*)malloc(QRCODE_BUFFER_SIZE); + XCHAR* ptszMsgBuffer = (XCHAR*)malloc(QRCODE_BUFFER_SIZE); - LPCTSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=qrcode¶ms1=1"); + LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=qrcode¶ms1=1"); FILE* pSt_File = fopen(lpszFileName, "rb"); if (NULL != pSt_File) { - LPCTSTR lpszCustomHdr = _T("Content-Type: image/png\r\n"); + LPCXSTR lpszCustomHdr = _T("Content-Type: image/png\r\n"); memset(ptszMsgBuffer, '\0', QRCODE_BUFFER_SIZE); int nRet = fread(ptszMsgBuffer, 1, QRCODE_BUFFER_SIZE, pSt_File); - TCHAR* ptszBodyBuffer = NULL; + XCHAR* ptszBodyBuffer = NULL; if (!APIClient_Http_Request(_T("POST"), lpszAPIUrl, ptszMsgBuffer, &nCode, &ptszBodyBuffer, &nRet, lpszCustomHdr)) { printf("发送投递失败!\n"); diff --git a/XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.cpp b/XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.cpp index ec72aa4..c6a6e2d 100644 --- a/XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.cpp +++ b/XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.cpp @@ -25,13 +25,13 @@ XNETHANDLE xhToken = 0; #define QRCODE_BUFFER_SIZE 1024 * 1024 * 10 -LPCTSTR lpszFileName = _T("D:\\XEngine_APIService\\XEngine_APPClient\\x64\\Debug\\1.png"); +LPCXSTR lpszFileName = _T("D:\\XEngine_APIService\\XEngine_APPClient\\x64\\Debug\\1.png"); int test_create() { int nLen = 0; int nCode = 0; - LPCTSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=test¶ms1=0"); + LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=test¶ms1=0"); Json::Value st_JsonRoot; st_JsonRoot["tszAPIUrl"] = "http://127.0.0.1:5501/api?function=report¶ms1=0"; @@ -44,7 +44,7 @@ int test_create() st_JsonRoot["nConnectTest"] = 1; st_JsonRoot["nContWaitTime"] = 1000; - TCHAR* ptszMsgBuffer = NULL; + XCHAR* ptszMsgBuffer = NULL; if (!APIClient_Http_Request(_T("POST"), lpszAPIUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); @@ -73,13 +73,13 @@ int test_delete() { int nLen = 0; int nCode = 0; - TCHAR* ptszMsgBuffer; + XCHAR* ptszMsgBuffer; Json::Value st_JsonRoot; st_JsonRoot["bTCP"] = true; st_JsonRoot["bConn"] = true; st_JsonRoot["xhToken"] = xhToken; - LPCTSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=test¶ms1=1"); + LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=test¶ms1=1"); if (!APIClient_Http_Request(_T("POST"), lpszAPIUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); diff --git a/XEngine_APPClient/APPClient_TranslationExample/APPClient_TranslationExample.cpp b/XEngine_APPClient/APPClient_TranslationExample/APPClient_TranslationExample.cpp index ed430ce..5f9a0e3 100644 --- a/XEngine_APPClient/APPClient_TranslationExample/APPClient_TranslationExample.cpp +++ b/XEngine_APPClient/APPClient_TranslationExample/APPClient_TranslationExample.cpp @@ -28,8 +28,8 @@ int main() WSAStartup(MAKEWORD(2, 2), &st_WSAData); #endif int nLen = 0; - TCHAR* ptszMsgBuffer = NULL; - LPCTSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=translation¶ms1=中国¶ms2=0¶m3=0"); + XCHAR* ptszMsgBuffer = NULL; + LPCXSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=translation¶ms1=中国¶ms2=0¶m3=0"); if (!APIClient_Http_Request(_T("GET"), lpszUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { diff --git a/XEngine_APPClient/APPClient_XLogExample/APPClient_XLogExample.cpp b/XEngine_APPClient/APPClient_XLogExample/APPClient_XLogExample.cpp index 53430df..cc23bda 100644 --- a/XEngine_APPClient/APPClient_XLogExample/APPClient_XLogExample.cpp +++ b/XEngine_APPClient/APPClient_XLogExample/APPClient_XLogExample.cpp @@ -23,18 +23,18 @@ //linux::g++ -std=c++17 -Wall -g APPClient_XLogExample.cpp -o APPClient_XLogExample.exe -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_NetHelp -lXEngine_BaseLib -lNetHelp_APIClient //macos::g++ -std=c++17 -Wall -g APPClient_XLogExample.cpp -o APPClient_XLogExample.exe -lXEngine_BaseLib -lNetHelp_APIClient -LPCTSTR lpszTableName = _T("xengine"); +LPCXSTR lpszTableName = _T("xengine"); int test_create() { int nLen = 0; int nCode = 0; - LPCTSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=log¶ms1=0"); + LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=log¶ms1=0"); Json::Value st_JsonRoot; st_JsonRoot["tszTableName"] = lpszTableName; - TCHAR* ptszMsgBuffer = NULL; + XCHAR* ptszMsgBuffer = NULL; if (!APIClient_Http_Request(_T("POST"), lpszAPIUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); @@ -49,8 +49,8 @@ int test_insert() { int nLen = 0; int nCode = 0; - LPCTSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=log¶ms1=1"); - LPCTSTR lpszMsgBuffer = _T("adwdad12d21d123d132rd213d32f23df23rf"); + LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=log¶ms1=1"); + LPCXSTR lpszMsgBuffer = _T("adwdad12d21d123d132rd213d32f23df23rf"); Json::Value st_JsonRoot; Json::StreamWriterBuilder st_JsonBuilder; @@ -66,7 +66,7 @@ int test_insert() st_JsonBuilder["emitUTF8"] = true; - TCHAR* ptszMsgBuffer = NULL; + XCHAR* ptszMsgBuffer = NULL; if (!APIClient_Http_Request(_T("POST"), lpszAPIUrl, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), &nCode, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); @@ -81,14 +81,14 @@ int test_query() { int nLen = 0; int nCode = 0; - LPCTSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=log¶ms1=2"); + LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=log¶ms1=2"); Json::Value st_JsonRoot; st_JsonRoot["tszTableName"] = lpszTableName; st_JsonRoot["tszTimeStart"] = "2023-01-13 22:10:00"; st_JsonRoot["tszTimeEnd"] = "2023-01-13 22:10:02"; - TCHAR* ptszMsgBuffer = NULL; + XCHAR* ptszMsgBuffer = NULL; if (!APIClient_Http_Request(_T("POST"), lpszAPIUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); @@ -103,12 +103,12 @@ int test_delete() { int nLen = 0; int nCode = 0; - LPCTSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=log¶ms1=3"); + LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=log¶ms1=3"); Json::Value st_JsonRoot; st_JsonRoot["tszTableName"] = lpszTableName; - TCHAR* ptszMsgBuffer = NULL; + XCHAR* ptszMsgBuffer = NULL; if (!APIClient_Http_Request(_T("POST"), lpszAPIUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); diff --git a/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.cpp b/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.cpp index d52a3be..822f5c7 100644 --- a/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.cpp +++ b/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.cpp @@ -31,15 +31,15 @@ int main() #endif int nLen = 0; int nCode = 0; - TCHAR tszMsgBuffer[1024]; - LPCTSTR lpszCreateUrl = _T("http://127.0.0.1:5501/api?function=zipcode¶ms1=0"); + XCHAR tszMsgBuffer[1024]; + LPCXSTR lpszCreateUrl = _T("http://127.0.0.1:5501/api?function=zipcode¶ms1=0"); memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); Json::Value st_JsonRoot; st_JsonRoot["nZipCode"] = 100010; - TCHAR* ptszMsgBuffer = NULL; + XCHAR* ptszMsgBuffer = NULL; if (!APIClient_Http_Request(_T("POST"), lpszCreateUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile index ed95c4f..37b53b6 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile @@ -1,28 +1,33 @@ -CC = g++ -Wall -Wno-deprecated-declarations +CC = g++ -Wall -std=c++17 -fPIC +PLATFORM = linux +PLATVER = +PLATDIR = +FILEEXT = +LIBFLAG = RELEASE = 0 -UNICODE = 0 -LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_Core -L /usr/local/lib/XEngine_Release/XEngine_HelpComponents -L /usr/local/lib/XEngine_Release/XEngine_RfcComponents -L /usr/local/lib/XEngine_Release/XEngine_NetHelp \ - -L ../../XEngine_ModuleConfigure -L ../../XEngine_ModuleDatabase -L ../../XEngine_ModuleProtocol -L ../../XEngine_ModuleHelp -L ../../XEngine_ModulePlugin \ - -L ../../XEngine_ThirdPart/jsoncpp +UNICODE = 0 +LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_Core -L /usr/local/lib/XEngine_Release/XEngine_HelpComponents -L /usr/local/lib/XEngine_Release/XEngine_RfcComponents -L /usr/local/lib/XEngine_Release/XEngine_NetHelp \ + -L ../../XEngine_ModuleConfigure -L ../../XEngine_ModuleDatabase -L ../../XEngine_ModuleProtocol -L ../../XEngine_ModuleHelp -L ../../XEngine_ModulePlugin \ + -L ../../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXEngine_OPenSsl -lHelpComponents_XLog -lRfcComponents_HttpServer -lNetHelp_APIClient \ -lXEngine_ModuleConfigure -lXEngine_ModuleDatabase -lXEngine_ModuleProtocol -lXEngine_ModuleHelp -lXEngine_ModulePlugin \ -ljsoncpp -LIBEX = -ldl -lpthread -LOADSO = -Wl,-rpath=./,--disable-new-dtags -LIBINCLUDE = XEngine_Configure.o XEngine_Network.o XEngine_HTTPTask.o XEngine_PluginTask.o XEngine_HttpApp.o \ - HTTPTask_IDCard.o HTTPTask_Bank.o HTTPTask_Language.o HTTPTask_Translation.o HTTPTask_P2PClient.o HTTPTask_OPtions.o HTTPTask_Locker.o HTTPTask_PostCode.o HTTPTask_Log.o HTTPTask_QRCode.o HTTPTask_SocketTest.o - -ifeq ($(shell uname),Darwin) - LOADSO = -endif - +LIBEX = +OBJECTS = XEngine_Configure.o XEngine_Network.o XEngine_HTTPTask.o XEngine_PluginTask.o XEngine_HttpApp.o \ + HTTPTask_IDCard.o HTTPTask_Bank.o HTTPTask_Language.o HTTPTask_Translation.o HTTPTask_P2PClient.o HTTPTask_OPtions.o HTTPTask_Locker.o HTTPTask_PostCode.o HTTPTask_Log.o HTTPTask_QRCode.o HTTPTask_SocketTest.o ifeq ($(RELEASE),1) -FLAGS = -c -O2 +FLAGS = -c DEBUG = else -FLAGS = -c -DEBUG = -g +ifeq ($(PLATFORM),android) +FLAGS = -c +DEBUG = -g +else +FLAGS = -c -lc_p +DEBUG = -g -pg +endif endif ifeq ($(UNICODE),1) @@ -31,43 +36,83 @@ else UNICODE = endif -all:$(LIBINCLUDE) - $(CC) $(DEBUG) $(LIBINCLUDE) -o XEngine_APIServiceApp $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) +ifeq ($(PLATFORM),linux) + ifeq (/etc/redhat-release,$(wildcard /etc/redhat-release)) + PLATVER = -D __CENTOS__ + PLATDIR = XEngine_Linux/Centos + else + PLATVER = -D __UBUNTU__ + PLATDIR = XEngine_Linux/Ubuntu + endif + FILEEXT = so + LIBFLAG = -shared + LIBEX = -lpthread -lrt -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),android) + NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ + CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC + PLATVER = -D __ANDROID__ + PLATDIR = XEngine_Android + FILEEXT = so + LIBFLAG = -shared + LIBEX = -ldl + LOADBIN = -Wl,-rpath=./,--disable-new-dtags +else ifeq ($(PLATFORM),mac) + CC += -Wno-deprecated-declarations + PLATVER = -D __MACOS__ + PLATDIR = XEngine_Mac + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +else ifeq ($(PLATFORM),ios) + SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk + CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 + PLATVER = -D __IOS__ + PLATDIR = XEngine_IOS + FILEEXT = dylib + LIBFLAG = -dynamiclib + LIBEX = -lpthread -ldl + LOADBIN = -Wl,-rpath,@loader_path/./ +endif + +all:$(OBJECTS) + $(CC) $(DEBUG) $(OBJECTS) -o XEngine_APIServiceApp $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) XEngine_Configure.o:./XEngine_Configure.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_Configure.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_Configure.cpp XEngine_Network.o:./XEngine_Network.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_Network.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_Network.cpp XEngine_HTTPTask.o:./XEngine_HTTPTask.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask.cpp XEngine_PluginTask.o:./XEngine_PluginTask.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_PluginTask.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_PluginTask.cpp HTTPTask_IDCard.o:./XEngine_HTTPTask/HTTPTask_IDCard.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_IDCard.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_IDCard.cpp HTTPTask_Bank.o:./XEngine_HTTPTask/HTTPTask_Bank.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_Bank.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_Bank.cpp HTTPTask_Language.o:./XEngine_HTTPTask/HTTPTask_Language.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_Language.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_Language.cpp HTTPTask_Translation.o:./XEngine_HTTPTask/HTTPTask_Translation.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_Translation.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_Translation.cpp HTTPTask_P2PClient.o:./XEngine_HTTPTask/HTTPTask_P2PClient.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_P2PClient.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_P2PClient.cpp HTTPTask_OPtions.o:./XEngine_HTTPTask/HTTPTask_OPtions.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_OPtions.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_OPtions.cpp HTTPTask_Locker.o:./XEngine_HTTPTask/HTTPTask_Locker.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_Locker.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_Locker.cpp HTTPTask_PostCode.o:./XEngine_HTTPTask/HTTPTask_PostCode.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_PostCode.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_PostCode.cpp HTTPTask_Log.o:./XEngine_HTTPTask/HTTPTask_Log.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_Log.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_Log.cpp HTTPTask_QRCode.o:./XEngine_HTTPTask/HTTPTask_QRCode.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_QRCode.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_QRCode.cpp HTTPTask_SocketTest.o:./XEngine_HTTPTask/HTTPTask_SocketTest.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_SocketTest.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_SocketTest.cpp XEngine_HttpApp.o:./XEngine_HttpApp.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HttpApp.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HttpApp.cpp InstallAll:InstallApp -- Gitee From e4289204697b60acdd35ef6c116d4a78cb969653 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 11 Apr 2023 09:54:33 +0800 Subject: [PATCH 04/26] modify:test function name to socket --- .../XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp index cd13b5a..d17ba13 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp @@ -99,7 +99,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST LPCXSTR lpszParamP2PClient = _T("p2p"); LPCXSTR lpszParamZIPCode = _T("zipcode"); LPCXSTR lpszParamXLog = _T("log"); - LPCXSTR lpszParamTest = _T("test"); + LPCXSTR lpszParamSocket = _T("socket"); memset(tszKey, '\0', MAX_PATH); memset(tszValue, '\0', MAX_PATH); @@ -201,9 +201,9 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST } XEngine_HTTPTask_QRCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } - else if (0 == _tcsnicmp(lpszParamTest, tszValue, _tcslen(lpszParamTest))) + else if (0 == _tcsnicmp(lpszParamSocket, tszValue, _tcslen(lpszParamSocket))) { - //二维码生成:http://app.xyry.org:5501/api?function=test¶ms1=0 或者 1 + //二维码生成:http://app.xyry.org:5501/api?function=socket¶ms1=0 或者 1 memset(tszKey, '\0', sizeof(tszKey)); memset(tszValue, '\0', sizeof(tszValue)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); -- Gitee From 6aebe225fbd15ffbbe2c4e6936b116bff8b2d986 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 11 Apr 2023 10:10:45 +0800 Subject: [PATCH 05/26] added:data test api interface --- .../XEngine_HttpApp/XEngine_HTTPTask.cpp | 20 +++++++++++++- .../XEngine_HTTPTask/HTTPTask_DTest.cpp | 26 +++++++++++++++++++ .../XEngine_HTTPTask/HTTPTask_DTest.h | 3 +++ .../XEngine_HttpApp/XEngine_Hdr.h | 1 + .../XEngine_HttpApp/XEngine_HttpApp.vcxproj | 2 ++ .../XEngine_HttpApp.vcxproj.filters | 6 +++++ 6 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.cpp create mode 100644 XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.h diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp index d17ba13..4147560 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp @@ -100,6 +100,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST LPCXSTR lpszParamZIPCode = _T("zipcode"); LPCXSTR lpszParamXLog = _T("log"); LPCXSTR lpszParamSocket = _T("socket"); + LPCXSTR lpszParamDTest = _T("dtest"); memset(tszKey, '\0', MAX_PATH); memset(tszValue, '\0', MAX_PATH); @@ -203,7 +204,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST } else if (0 == _tcsnicmp(lpszParamSocket, tszValue, _tcslen(lpszParamSocket))) { - //二维码生成:http://app.xyry.org:5501/api?function=socket¶ms1=0 或者 1 + //网络测试:http://app.xyry.org:5501/api?function=socket¶ms1=0 或者 1 memset(tszKey, '\0', sizeof(tszKey)); memset(tszValue, '\0', sizeof(tszValue)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); @@ -218,6 +219,23 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST } XEngine_HTTPTask_SocketTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } + else if (0 == _tcsnicmp(lpszParamDTest, tszValue, _tcslen(lpszParamDTest))) + { + //数据测试:http://app.xyry.org:5501/api?function=dtest¶ms1=0 或者 1 + memset(tszKey, '\0', sizeof(tszKey)); + memset(tszValue, '\0', sizeof(tszValue)); + BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); + if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) + { + st_HDRParam.nHttpCode = 404; + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); + BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; + } + XEngine_HTTPTask_DTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); + } else { st_HDRParam.nHttpCode = 404; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.cpp new file mode 100644 index 0000000..cf28718 --- /dev/null +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.cpp @@ -0,0 +1,26 @@ +#include "../XEngine_Hdr.h" + +XBOOL XEngine_HTTPTask_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) +{ + int nSDLen = 0; + XCHAR tszSDBuffer[4096]; + RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 + + memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); + memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); + + st_HDRParam.nHttpCode = 200; //HTTP CODE码 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + //0发什么返回什么,1 仅仅返回确认 + if (0 == nType) + { + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, lpszMsgBuffer, nMsgLen); + } + else + { + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); + } + XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求数据用例测试成功,请求的大小:%d,请求的类型:%d"), lpszClientAddr, nMsgLen, nType); + return TRUE; +} \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.h new file mode 100644 index 0000000..180bbeb --- /dev/null +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.h @@ -0,0 +1,3 @@ +#pragma once + +XBOOL XEngine_HTTPTask_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h index 0c3ad50..9dfbe05 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h @@ -69,6 +69,7 @@ using namespace std; #include "XEngine_HTTPTask/HTTPTask_Log.h" #include "XEngine_HTTPTask/HTTPTask_QRCode.h" #include "XEngine_HTTPTask/HTTPTask_SocketTest.h" +#include "XEngine_HTTPTask/HTTPTask_DTest.h" /******************************************************************** // Created: 2022/01/20 14:42:06 // File Name: D:\XEngine_ServiceApp\XEngine_Source\XEngine_ServiceApp\XEngine_HttpApp\XEngine_Hdr.h diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj index 8cfd075..2a945f0 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj @@ -157,6 +157,7 @@ + @@ -175,6 +176,7 @@ + diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters index 57ae733..aafa8e6 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters @@ -69,6 +69,9 @@ 源文件\XEngine_HTTPTask + + 源文件\XEngine_HTTPTask + @@ -119,5 +122,8 @@ 头文件\XEngine_HTTPTask + + 头文件\XEngine_HTTPTask + \ No newline at end of file -- Gitee From f7bf036f95996ede74d69bceb86f9490236ad8ad Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 11 Apr 2023 10:28:59 +0800 Subject: [PATCH 06/26] modify:The http task now distinguishes between post and get --- .../XEngine_HttpApp/XEngine_HTTPTask.cpp | 30 ++--- .../XEngine_HttpApp/XEngine_HTTPTask.h | 4 +- .../XEngine_HTTPTask/HTTPTask_DTest.h | 3 - .../XEngine_HTTPTask/HTTPTask_OPtions.h | 3 - .../XEngine_HTTPTask/HTTPTask_P2PClient.h | 4 - .../XEngine_HTTPTask/HTTPTask_SocketTest.h | 4 - .../XEngine_HttpApp/XEngine_Hdr.h | 26 ++-- .../XEngine_HttpApp/XEngine_HttpApp.cpp | 4 +- .../XEngine_HttpApp/XEngine_HttpApp.vcxproj | 48 +++---- .../XEngine_HttpApp.vcxproj.filters | 118 +++++++++--------- .../TaskGet_Bank.cpp} | 2 +- .../TaskGet_Bank.h} | 2 +- .../TaskGet_IDCard.cpp} | 2 +- .../TaskGet_IDCard.h} | 2 +- .../TaskGet_Language.cpp} | 2 +- .../TaskGet_Language.h} | 2 +- .../TaskGet_Locker.cpp} | 2 +- .../TaskGet_Locker.h} | 2 +- .../TaskGet_OPtions.cpp} | 2 +- .../XEngine_TaskGet/TaskGet_OPtions.h | 3 + .../TaskGet_Translation.cpp} | 2 +- .../TaskGet_Translation.h} | 2 +- .../TaskPost_DTest.cpp} | 2 +- .../TaskPost_DTest.h} | 2 +- .../TaskPost_Log.cpp} | 2 +- .../TaskPost_Log.h} | 2 +- .../TaskPost_P2PClient.cpp} | 4 +- .../XEngine_TaskPost/TaskPost_P2PClient.h | 4 + .../TaskPost_PostCode.cpp} | 2 +- .../XEngine_TaskPost/TaskPost_PostCode.h | 3 + .../TaskPost_QRCode.cpp} | 2 +- .../TaskPost_QRCode.h} | 2 +- .../TaskPost_SocketTest.cpp} | 8 +- .../XEngine_TaskPost/TaskPost_SocketTest.h | 4 + 34 files changed, 157 insertions(+), 149 deletions(-) delete mode 100644 XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.h delete mode 100644 XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.h delete mode 100644 XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.h delete mode 100644 XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.h rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_Bank.cpp => XEngine_TaskGet/TaskGet_Bank.cpp} (97%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_Bank.h => XEngine_TaskGet/TaskGet_Bank.h} (34%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_IDCard.cpp => XEngine_TaskGet/TaskGet_IDCard.cpp} (97%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_IDCard.h => XEngine_TaskGet/TaskGet_IDCard.h} (31%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_Language.cpp => XEngine_TaskGet/TaskGet_Language.cpp} (98%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_Language.h => XEngine_TaskGet/TaskGet_Language.h} (43%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_Locker.cpp => XEngine_TaskGet/TaskGet_Locker.cpp} (99%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_Locker.h => XEngine_TaskGet/TaskGet_Locker.h} (52%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_OPtions.cpp => XEngine_TaskGet/TaskGet_OPtions.cpp} (96%) create mode 100644 XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.h rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_Translation.cpp => XEngine_TaskGet/TaskGet_Translation.cpp} (97%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_Translation.h => XEngine_TaskGet/TaskGet_Translation.h} (45%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_DTest.cpp => XEngine_TaskPost/TaskPost_DTest.cpp} (90%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_QRCode.h => XEngine_TaskPost/TaskPost_DTest.h} (45%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_Log.cpp => XEngine_TaskPost/TaskPost_Log.cpp} (96%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_PostCode.h => XEngine_TaskPost/TaskPost_Log.h} (46%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_P2PClient.cpp => XEngine_TaskPost/TaskPost_P2PClient.cpp} (96%) create mode 100644 XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.h rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_PostCode.cpp => XEngine_TaskPost/TaskPost_PostCode.cpp} (92%) create mode 100644 XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.h rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_QRCode.cpp => XEngine_TaskPost/TaskPost_QRCode.cpp} (95%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_Log.h => XEngine_TaskPost/TaskPost_QRCode.h} (46%) rename XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/{XEngine_HTTPTask/HTTPTask_SocketTest.cpp => XEngine_TaskPost/TaskPost_SocketTest.cpp} (88%) create mode 100644 XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.h diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp index 4147560..56aacda 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp @@ -10,7 +10,7 @@ // Purpose: HTTP任务处理代码 // History: *********************************************************************/ -XHTHREAD CALLBACK XEngine_HTTPTask_Thread(XPVOID lParam) +XHTHREAD CALLBACK HTTPTask_TastPost_Thread(XPVOID lParam) { //任务池是编号1开始的. int nThreadPos = *(int*)lParam; @@ -42,7 +42,7 @@ XHTHREAD CALLBACK XEngine_HTTPTask_Thread(XPVOID lParam) if (HttpProtocol_Server_GetMemoryEx(xhHTTPPacket, ppSst_ListAddr[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &st_HTTPReqparam)) { //在另外一个函数里面处理数据 - XEngine_HTTPTask_Handle(&st_HTTPReqparam, ppSst_ListAddr[i]->tszClientAddr, ptszMsgBuffer, nMsgLen); + HTTPTask_TastPost_Handle(&st_HTTPReqparam, ppSst_ListAddr[i]->tszClientAddr, ptszMsgBuffer, nMsgLen); //释放内存 BaseLib_OperatorMemory_FreeCStyle((VOID**)&ptszMsgBuffer); } @@ -52,7 +52,7 @@ XHTHREAD CALLBACK XEngine_HTTPTask_Thread(XPVOID lParam) } return 0; } -XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen) +XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen) { int nMsgLen = 4096; LPCXSTR lpszMethodPost = _T("POST"); @@ -149,7 +149,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return FALSE; } - XEngine_HTTPTask_P2PClient(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); + HTTPTask_TastPost_P2PClient(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } else if (0 == _tcsnicmp(lpszParamZIPCode, tszValue, _tcslen(lpszParamZIPCode))) { @@ -166,7 +166,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return FALSE; } - XEngine_HTTPTask_PostCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); + HTTPTask_TastPost_PostCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } else if (0 == _tcsnicmp(lpszParamXLog, tszValue, _tcslen(lpszParamXLog))) { @@ -183,7 +183,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return FALSE; } - XEngine_HTTPTask_LogInfo(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); + HTTPTask_TastPost_LogInfo(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } else if (0 == _tcsnicmp(lpszParamQRCode, tszValue, _tcslen(lpszParamQRCode))) { @@ -200,7 +200,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return FALSE; } - XEngine_HTTPTask_QRCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); + HTTPTask_TaskPost_QRCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } else if (0 == _tcsnicmp(lpszParamSocket, tszValue, _tcslen(lpszParamSocket))) { @@ -217,7 +217,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return FALSE; } - XEngine_HTTPTask_SocketTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); + HTTPTask_TastPost_SocketTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } else if (0 == _tcsnicmp(lpszParamDTest, tszValue, _tcslen(lpszParamDTest))) { @@ -234,7 +234,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return FALSE; } - XEngine_HTTPTask_DTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); + HTTPTask_TastPost_DTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } else { @@ -249,7 +249,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST if (0 == _tcsnicmp(lpszParamOPtions, tszValue, _tcslen(lpszParamOPtions))) { //HTTP能力查询 - XEngine_HTTPTask_OPTions(lpszClientAddr); + HTTPTask_TaskGet_OPTions(lpszClientAddr); } else if (0 == _tcsnicmp(lpszParamIDCard, tszValue, _tcslen(lpszParamIDCard))) { @@ -266,7 +266,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return FALSE; } - XEngine_HTTPTask_IDCard(lpszClientAddr, tszValue); + HTTPTask_TaskGet_IDCard(lpszClientAddr, tszValue); } else if (0 == _tcsnicmp(lpszParamBank, tszValue, _tcslen(lpszParamBank))) { @@ -283,7 +283,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return FALSE; } - XEngine_HTTPTask_BankInfo(lpszClientAddr, tszValue); + HTTPTask_TaskGet_BankInfo(lpszClientAddr, tszValue); } else if (0 == _tcsnicmp(lpszParamLanguage, tszValue, _tcslen(lpszParamLanguage))) { @@ -307,7 +307,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST memset(tszKey, '\0', sizeof(tszKey)); BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszCvtType); - XEngine_HTTPTask_Language(lpszClientAddr, tszValue, _ttoi(tszCvtType)); + HTTPTask_TaskGet_Language(lpszClientAddr, tszValue, _ttoi(tszCvtType)); } else if (0 == _tcsnicmp(lpszParamTranslation, tszValue, _tcslen(lpszParamTranslation))) { @@ -331,7 +331,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST memset(tszKey, '\0', sizeof(tszKey)); BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszCvtType); - XEngine_HTTPTask_Translation(lpszClientAddr, tszValue, _ttoi(tszCvtType)); + HTTPTask_TaskGet_Translation(lpszClientAddr, tszValue, _ttoi(tszCvtType)); } else if (0 == _tcsnicmp(lpszParamLocker, tszValue, _tcslen(lpszParamLocker))) { @@ -345,7 +345,7 @@ XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszLockToken); BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszLockType); - XEngine_HTTPTask_Locker(lpszClientAddr, _ttoi64(tszLockToken), (ENUM_XENGINE_APISERVICE_LOCKER_TYPE)_ttoi(tszLockType)); + HTTPTask_TaskGet_Locker(lpszClientAddr, _ttoi64(tszLockToken), (ENUM_XENGINE_APISERVICE_LOCKER_TYPE)_ttoi(tszLockType)); } else { diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h index 0e07377..20d0559 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h @@ -11,6 +11,6 @@ // History: *********************************************************************/ //任务处理池,用来获取一个完整包 -XHTHREAD CALLBACK XEngine_HTTPTask_Thread(XPVOID lParam); +XHTHREAD CALLBACK HTTPTask_TastPost_Thread(XPVOID lParam); //任务处理相关函数,处理包的内容 -XBOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen); \ No newline at end of file +XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.h deleted file mode 100644 index 180bbeb..0000000 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -XBOOL XEngine_HTTPTask_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.h deleted file mode 100644 index f4bcae0..0000000 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -XBOOL XEngine_HTTPTask_OPTions(LPCXSTR lpszClientAddr); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.h deleted file mode 100644 index 020c1cb..0000000 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -void CALLBACK XEngine_HTTPTask_P2PCallback(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XPVOID lParam); -XBOOL XEngine_HTTPTask_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int unOperatorCode); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.h deleted file mode 100644 index 6ddb1f3..0000000 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -void CALLBACK XEngine_HTTPTask_CBSocketTest(XNETHANDLE xhToken, LPCSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, XPVOID lParam); -XBOOL XEngine_HTTPTask_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h index 9dfbe05..ddd8249 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h @@ -58,18 +58,20 @@ using namespace std; #include "XEngine_Network.h" #include "XEngine_HTTPTask.h" #include "XEngine_PluginTask.h" -#include "XEngine_HTTPTask/HTTPTask_IDCard.h" -#include "XEngine_HTTPTask/HTTPTask_Bank.h" -#include "XEngine_HTTPTask/HTTPTask_Language.h" -#include "XEngine_HTTPTask/HTTPTask_Translation.h" -#include "XEngine_HTTPTask/HTTPTask_Locker.h" -#include "XEngine_HTTPTask/HTTPTask_OPtions.h" -#include "XEngine_HTTPTask/HTTPTask_P2PClient.h" -#include "XEngine_HTTPTask/HTTPTask_PostCode.h" -#include "XEngine_HTTPTask/HTTPTask_Log.h" -#include "XEngine_HTTPTask/HTTPTask_QRCode.h" -#include "XEngine_HTTPTask/HTTPTask_SocketTest.h" -#include "XEngine_HTTPTask/HTTPTask_DTest.h" +//post +#include "XEngine_TaskPost/TaskPost_DTest.h" +#include "XEngine_TaskPost/TaskPost_Log.h" +#include "XEngine_TaskPost/TaskPost_P2PClient.h" +#include "XEngine_TaskPost/TaskPost_PostCode.h" +#include "XEngine_TaskPost/TaskPost_SocketTest.h" +#include "XEngine_TaskPost/TaskPost_QRCode.h" +//get +#include "XEngine_TaskGet/TaskGet_IDCard.h" +#include "XEngine_TaskGet/TaskGet_Bank.h" +#include "XEngine_TaskGet/TaskGet_Language.h" +#include "XEngine_TaskGet/TaskGet_Translation.h" +#include "XEngine_TaskGet/TaskGet_Locker.h" +#include "XEngine_TaskGet/TaskGet_OPtions.h" /******************************************************************** // Created: 2022/01/20 14:42:06 // File Name: D:\XEngine_ServiceApp\XEngine_Source\XEngine_ServiceApp\XEngine_HttpApp\XEngine_Hdr.h diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp index c010f36..08460e4 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp @@ -234,7 +234,7 @@ int main(int argc, char** argv) *pInt_Pos = i; ppSt_ListHTTPParam[i]->lParam = pInt_Pos; - ppSt_ListHTTPParam[i]->fpCall_ThreadsTask = XEngine_HTTPTask_Thread; + ppSt_ListHTTPParam[i]->fpCall_ThreadsTask = HTTPTask_TastPost_Thread; } xhHTTPPool = ManagePool_Thread_NQCreate(&ppSt_ListHTTPParam, st_ServiceConfig.st_XMax.nHTTPThread); if (NULL == xhHTTPPool) @@ -249,7 +249,7 @@ int main(int argc, char** argv) XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("启动服务中,HTTP消息服务没有被启用")); } //初始化P2P - if (!ModuleHelp_P2PClient_Init(st_ServiceConfig.st_XTime.nP2PTimeOut, XEngine_HTTPTask_P2PCallback)) + if (!ModuleHelp_P2PClient_Init(st_ServiceConfig.st_XTime.nP2PTimeOut, HTTPTask_TastPost_P2PCallback)) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,启动P2P客户端管理器失败,错误:%lX"), ModuleHelp_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj index 2a945f0..9d1721f 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj @@ -156,39 +156,39 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters index aafa8e6..80af76d 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters @@ -9,16 +9,22 @@ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - {9bf2e74a-551b-4d8d-ad34-ccd13e64e985} - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - + + {9bf2e74a-551b-4d8d-ad34-ccd13e64e985} + + {a205153f-6995-49dc-ae5f-cd2bc0d31549} + + {3d1f325b-4812-45f1-b04b-0056a7b2ce72} + + + {a904cf8f-7387-403f-8686-0f5c35c6b72c} + @@ -33,44 +39,44 @@ 源文件 - - 源文件\XEngine_HTTPTask + + 源文件 - - 源文件\XEngine_HTTPTask + + 源文件\XEngine_TaskPost - - 源文件\XEngine_HTTPTask + + 源文件\XEngine_TaskPost - - 源文件\XEngine_HTTPTask + + 源文件\XEngine_TaskPost - - 源文件 + + 源文件\XEngine_TaskPost - - 源文件\XEngine_HTTPTask + + 源文件\XEngine_TaskPost - - 源文件\XEngine_HTTPTask + + 源文件\XEngine_TaskGet - - 源文件\XEngine_HTTPTask + + 源文件\XEngine_TaskGet - - 源文件\XEngine_HTTPTask + + 源文件\XEngine_TaskGet - - 源文件\XEngine_HTTPTask + + 源文件\XEngine_TaskGet - - 源文件\XEngine_HTTPTask + + 源文件\XEngine_TaskGet - - 源文件\XEngine_HTTPTask + + 源文件\XEngine_TaskGet - - 源文件\XEngine_HTTPTask + + 源文件\XEngine_TaskPost @@ -86,44 +92,44 @@ 头文件 - - 头文件\XEngine_HTTPTask + + 头文件 - - 头文件\XEngine_HTTPTask + + 头文件\XEngine_TaskPost - - 头文件\XEngine_HTTPTask + + 头文件\XEngine_TaskPost - - 头文件\XEngine_HTTPTask + + 头文件\XEngine_TaskPost - - 头文件 + + 头文件\XEngine_TaskPost - - 头文件\XEngine_HTTPTask + + 头文件\XEngine_TaskPost - - 头文件\XEngine_HTTPTask + + 头文件\XEngine_TaskGet - - 头文件\XEngine_HTTPTask + + 头文件\XEngine_TaskGet - - 头文件\XEngine_HTTPTask + + 头文件\XEngine_TaskGet - - 头文件\XEngine_HTTPTask + + 头文件\XEngine_TaskGet - - 头文件\XEngine_HTTPTask + + 头文件\XEngine_TaskGet - - 头文件\XEngine_HTTPTask + + 头文件\XEngine_TaskGet - - 头文件\XEngine_HTTPTask + + 头文件\XEngine_TaskPost \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp similarity index 97% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.cpp rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp index 7dc60ca..e465d43 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp @@ -1,7 +1,7 @@ #include "../XEngine_Hdr.h" -XBOOL XEngine_HTTPTask_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber) +XBOOL HTTPTask_TaskGet_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber) { int nMsgLen = 4096; int nPktLen = 4096; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.h similarity index 34% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.h rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.h index f3c999e..d949621 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.h @@ -1,3 +1,3 @@ #pragma once -XBOOL XEngine_HTTPTask_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber); \ No newline at end of file +XBOOL HTTPTask_TaskGet_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp similarity index 97% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.cpp rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp index a38e2ff..6e6fcba 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -XBOOL XEngine_HTTPTask_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer) +XBOOL HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer) { int nMsgLen = 4096; int nPktLen = 4096; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.h similarity index 31% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.h rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.h index 8173e8f..56d7a3a 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.h @@ -1,3 +1,3 @@ #pragma once -XBOOL XEngine_HTTPTask_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer); \ No newline at end of file +XBOOL HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp similarity index 98% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.cpp rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp index df6b42b..508799e 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp @@ -1,7 +1,7 @@ #include "../XEngine_Hdr.h" -XBOOL XEngine_HTTPTask_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType) +XBOOL HTTPTask_TaskGet_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType) { int nMsgLen = 4096; int nPktLen = 4096; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.h similarity index 43% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.h rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.h index c64bd51..6ffa5f1 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.h @@ -1,3 +1,3 @@ #pragma once -XBOOL XEngine_HTTPTask_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType); \ No newline at end of file +XBOOL HTTPTask_TaskGet_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Locker.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp similarity index 99% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Locker.cpp rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp index 189e476..02a9c90 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Locker.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -XBOOL XEngine_HTTPTask_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XENGINE_APISERVICE_LOCKER_TYPE enLockType) +XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XENGINE_APISERVICE_LOCKER_TYPE enLockType) { int nSDLen = 4096; int nRVLen = 4096; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Locker.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.h similarity index 52% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Locker.h rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.h index 971c481..88240ed 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Locker.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.h @@ -1,3 +1,3 @@ #pragma once -XBOOL XEngine_HTTPTask_Locker(LPCXSTR lpszClientAddr,__int64x nToken, ENUM_XENGINE_APISERVICE_LOCKER_TYPE enLockType); \ No newline at end of file +XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr,__int64x nToken, ENUM_XENGINE_APISERVICE_LOCKER_TYPE enLockType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.cpp similarity index 96% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.cpp rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.cpp index aa73ea3..28e5b21 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_OPtions.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.cpp @@ -1,7 +1,7 @@ #include "../XEngine_Hdr.h" -XBOOL XEngine_HTTPTask_OPTions(LPCXSTR lpszClientAddr) +XBOOL HTTPTask_TaskGet_OPTions(LPCXSTR lpszClientAddr) { int nMsgLen = 4096; int nPktLen = 4096; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.h new file mode 100644 index 0000000..55cc126 --- /dev/null +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.h @@ -0,0 +1,3 @@ +#pragma once + +XBOOL HTTPTask_TaskGet_OPTions(LPCXSTR lpszClientAddr); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp similarity index 97% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.cpp rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp index 7ebd061..013b2b6 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -XBOOL XEngine_HTTPTask_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType) +XBOOL HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType) { int nMsgLen = 4096; int nPktLen = 4096; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.h similarity index 45% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.h rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.h index f6339d6..143aede 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.h @@ -1,3 +1,3 @@ #pragma once -XBOOL XEngine_HTTPTask_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType); \ No newline at end of file +XBOOL HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp similarity index 90% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.cpp rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp index cf28718..3cfcada 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_DTest.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -XBOOL XEngine_HTTPTask_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) +XBOOL HTTPTask_TastPost_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 0; XCHAR tszSDBuffer[4096]; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_QRCode.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.h similarity index 45% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_QRCode.h rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.h index 44c0a9c..3bc64aa 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_QRCode.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.h @@ -1,3 +1,3 @@ #pragma once -XBOOL XEngine_HTTPTask_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file +XBOOL HTTPTask_TastPost_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Log.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp similarity index 96% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Log.cpp rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp index 84f4867..8fb456b 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Log.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -XBOOL XEngine_HTTPTask_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) +XBOOL HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 0; int nRVLen = 0; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.h similarity index 46% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.h rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.h index 52e6bdc..fbc7df5 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.h @@ -1,3 +1,3 @@ #pragma once -XBOOL XEngine_HTTPTask_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file +XBOOL HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp similarity index 96% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.cpp rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp index 0a8b634..d2a48f8 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_P2PClient.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp @@ -1,10 +1,10 @@ #include "../XEngine_Hdr.h" -void CALLBACK XEngine_HTTPTask_P2PCallback(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XPVOID lParam) +void CALLBACK HTTPTask_TastPost_P2PCallback(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XPVOID lParam) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("HTTP客户端:公网:%s,私网:%s,连接:%s P2P离开"), pSt_P2PProtocol->tszPublicAddr, pSt_P2PProtocol->tszPrivateAddr, pSt_P2PProtocol->tszConnectAddr); } -XBOOL XEngine_HTTPTask_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int unOperatorCode) +XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int unOperatorCode) { int nSDLen = 4096; int nRVLen = 4096; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.h new file mode 100644 index 0000000..63225a0 --- /dev/null +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.h @@ -0,0 +1,4 @@ +#pragma once + +void CALLBACK HTTPTask_TastPost_P2PCallback(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XPVOID lParam); +XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int unOperatorCode); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp similarity index 92% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.cpp rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp index 5d3195d..6aa58af 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -XBOOL XEngine_HTTPTask_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) +XBOOL HTTPTask_TastPost_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 4096; int nRVLen = 4096; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.h new file mode 100644 index 0000000..aba1aa1 --- /dev/null +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.h @@ -0,0 +1,3 @@ +#pragma once + +XBOOL HTTPTask_TastPost_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_QRCode.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp similarity index 95% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_QRCode.cpp rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp index 94e3757..f596910 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_QRCode.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -XBOOL XEngine_HTTPTask_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) +XBOOL HTTPTask_TaskPost_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 0; int nRVLen = 0; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Log.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.h similarity index 46% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Log.h rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.h index 8f1e2c6..3bdc9be 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Log.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.h @@ -1,3 +1,3 @@ #pragma once -XBOOL XEngine_HTTPTask_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file +XBOOL HTTPTask_TaskPost_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp similarity index 88% rename from XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.cpp rename to XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp index 1a8475f..072e929 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_SocketTest.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -void CALLBACK XEngine_HTTPTask_CBSocketTest(XNETHANDLE xhToken, LPCSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, XPVOID lParam) +void CALLBACK HTTPTask_TastPost_CBSocketTest(XNETHANDLE xhToken, LPCSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, XPVOID lParam) { XENGINE_SOCKETTEST* pSt_SocketTest = (XENGINE_SOCKETTEST*)lParam; int nMsgLen = 0; @@ -47,7 +47,7 @@ void CALLBACK XEngine_HTTPTask_CBSocketTest(XNETHANDLE xhToken, LPCSTR lpszAddr, } } } -XBOOL XEngine_HTTPTask_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) +XBOOL HTTPTask_TastPost_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 0; int nRVLen = 0; @@ -70,12 +70,12 @@ XBOOL XEngine_HTTPTask_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, { if (pSt_SocketTest->bConn) { - ModuleHelp_SocketTest_StartConnect(&pSt_SocketTest->xhToken, &pSt_SocketTest->st_SocketConn, XEngine_HTTPTask_CBSocketTest, pSt_SocketTest); + ModuleHelp_SocketTest_StartConnect(&pSt_SocketTest->xhToken, &pSt_SocketTest->st_SocketConn, HTTPTask_TastPost_CBSocketTest, pSt_SocketTest); } else { memcpy(&pSt_SocketTest->st_SocketData.st_REConnect, &pSt_SocketTest->st_SocketConn, sizeof(MODULEHELP_SOCKETTEST_RECONNECT)); - ModuleHelp_SocketTest_StartDatas(&pSt_SocketTest->xhToken, &pSt_SocketTest->st_SocketData, XEngine_HTTPTask_CBSocketTest, pSt_SocketTest->bTCP, pSt_SocketTest); + ModuleHelp_SocketTest_StartDatas(&pSt_SocketTest->xhToken, &pSt_SocketTest->st_SocketData, HTTPTask_TastPost_CBSocketTest, pSt_SocketTest->bTCP, pSt_SocketTest); } ModuleProtocol_Packet_TestReply(tszRVBuffer, &nRVLen, pSt_SocketTest->xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.h new file mode 100644 index 0000000..c1438d1 --- /dev/null +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.h @@ -0,0 +1,4 @@ +#pragma once + +void CALLBACK HTTPTask_TastPost_CBSocketTest(XNETHANDLE xhToken, LPCSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, XPVOID lParam); +XBOOL HTTPTask_TastPost_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file -- Gitee From 1f3f31e4962117c6d5f48ba13cf4d711906e5e5b Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 11 Apr 2023 10:57:36 +0800 Subject: [PATCH 07/26] modify:mysql used to utf8 charset --- .../XEngine_ModuleDatabase/ModuleDB_Define.h | 6 +++--- .../ModuleDatabase_Bank/ModuleDatabase_Bank.cpp | 13 ++++--------- .../ModuleDatabase_IDCard.cpp | 7 +------ .../ModuleDatabase_XLog/ModuleDatabase_XLog.cpp | 15 +++++---------- .../ModuleDatabase_ZIPCode.cpp | 7 +------ .../XEngine_ModuleDatabase.vcxproj | 2 ++ .../XEngine_ModuleDatabase.vcxproj.filters | 12 ++++++++++++ 7 files changed, 28 insertions(+), 34 deletions(-) diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h index 400e1b5..70808bc 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h @@ -159,11 +159,11 @@ extern "C" XBOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo); /******************************************************************** 函数名称:ModuleDatabase_XLog_Init 函数功能:初始化SQLITE文件系统 - 参数.一:lpszSQLFile + 参数.一:pSt_DBConnector In/Out:In - 类型:常量字符指针 + 类型:数据结构指针 可空:N - 意思:输入要操作的SQL文件 + 意思:输入要操作的数据库 返回值 类型:逻辑型 意思:是否成功 diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp index 62b3ff2..212bde8 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp @@ -24,11 +24,11 @@ CModuleDatabase_Bank::~CModuleDatabase_Bank() /******************************************************************** 函数名称:ModuleDatabase_Bank_Init 函数功能:初始化SQLITE文件系统 - 参数.一:lpszSQLFile + 参数.一:pSt_DBConnector In/Out:In - 类型:常量字符指针 + 类型:数据结构指针 可空:N - 意思:输入要操作的SQL文件 + 意思:输入要操作的数据库 返回值 类型:逻辑型 意思:是否成功 @@ -44,14 +44,9 @@ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; return FALSE; } -#ifdef _MSC_BUILD - LPCXSTR lpszStrCharset = _T("gbk"); -#else - LPCXSTR lpszStrCharset = _T("utf8"); -#endif //连接数据库 _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APIInfo")); - if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector, 5, TRUE, lpszStrCharset)) + if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp index ce0ab40..720e264 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp @@ -44,14 +44,9 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTI DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; return FALSE; } -#ifdef _MSC_BUILD - LPCXSTR lpszStrCharset = _T("gbk"); -#else - LPCXSTR lpszStrCharset = _T("utf8"); -#endif //连接数据库 _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APIInfo")); - if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector, 5, TRUE, lpszStrCharset)) + if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp index 5639b4f..c2f3553 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp @@ -24,11 +24,11 @@ CModuleDatabase_XLog::~CModuleDatabase_XLog() /******************************************************************** 函数名称:ModuleDatabase_XLog_Init 函数功能:初始化SQLITE文件系统 - 参数.一:lpszSQLFile + 参数.一:pSt_DBConnector In/Out:In - 类型:常量字符指针 + 类型:数据结构指针 可空:N - 意思:输入要操作的SQL文件 + 意思:输入要操作的数据库 返回值 类型:逻辑型 意思:是否成功 @@ -44,14 +44,9 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; return FALSE; } -#ifdef _MSC_BUILD - LPCXSTR lpszStrCharset = _T("gbk"); -#else - LPCXSTR lpszStrCharset = _T("utf8"); -#endif //连接数据库 _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APILog")); - if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector, 5, TRUE, lpszStrCharset)) + if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); @@ -279,7 +274,7 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName) XCHAR tszSQLStatement[10240]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); - _stprintf(tszSQLStatement, _T("DROP TABLE IF EXISTS `%s`;"), lpszTableName); + _stprintf(tszSQLStatement, _T("DROP TABLE IF EXISTS '%s'"), lpszTableName); if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) { DBModule_IsErrorOccur = TRUE; diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp index c4eacaa..d18363b 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp @@ -44,14 +44,9 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNEC DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; return FALSE; } -#ifdef _MSC_BUILD - LPCXSTR lpszStrCharset = _T("gbk"); -#else - LPCXSTR lpszStrCharset = _T("utf8"); -#endif //连接数据库 _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APIInfo")); - if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector, 5, TRUE, lpszStrCharset)) + if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); diff --git a/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj b/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj index 399ff79..ec50035 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj +++ b/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj @@ -166,6 +166,7 @@ + @@ -176,6 +177,7 @@ + diff --git a/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj.filters b/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj.filters index 0e2456c..568540c 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj.filters +++ b/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj.filters @@ -37,6 +37,12 @@ {a88dc16d-2168-4784-9f3b-8c2e924f49f3} + + {092178a8-793e-4724-9249-09912b3e6cba} + + + {358aae26-1704-4e1e-bca3-b48c05449281} + @@ -63,6 +69,9 @@ 头文件\ModuleDatabase_XLog + + 头文件\ModuleDatabase_ShortLink + @@ -83,6 +92,9 @@ 源文件\ModuleDatabase_XLog + + 源文件\ModuleDatabase_ShortLink + -- Gitee From 7776b174420068b04b0d71e99b7daf5504d29932 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 11 Apr 2023 11:10:00 +0800 Subject: [PATCH 08/26] modify:types unify --- .../ModuleConfigure_Json.cpp | 104 +++++++------- .../XEngine_ModuleConfigure/dllmain.cpp | 2 +- .../XEngine_ModuleConfigure/pch.cpp | 2 +- .../ModuleDatabase_Bank.cpp | 32 ++--- .../ModuleDatabase_IDCard.cpp | 68 +++++----- .../ModuleDatabase_XLog.cpp | 68 +++++----- .../ModuleDatabase_ZIPCode.cpp | 80 +++++------ .../XEngine_ModuleHelp/ModuleHelp_Define.h | 2 +- .../ModuleHelp_IDCard/ModuleHelp_IDCard.cpp | 32 ++--- .../ModuleHelp_Language.cpp | 28 ++-- .../ModuleHelp_Locker/ModuleHelp_Locker.cpp | 76 +++++------ .../ModuleHelp_P2PClient.cpp | 128 +++++++++--------- .../ModuleHelp_QRCode/ModuleHelp_QRCode.cpp | 80 +++++------ .../ModuleHelp_SocketTest.cpp | 86 ++++++------ .../ModuleHelp_SocketTest.h | 2 +- XEngine_Source/XEngine_ModuleHelp/dllmain.cpp | 2 +- XEngine_Source/XEngine_ModuleHelp/pch.cpp | 2 +- .../ModulePlugin_LibCore.cpp | 74 +++++----- .../ModulePlugin_Loader.cpp | 44 +++--- .../ModulePlugin_LuaCore.cpp | 78 +++++------ .../XEngine_ModulePlugin/dllmain.cpp | 2 +- XEngine_Source/XEngine_ModulePlugin/pch.cpp | 2 +- .../ModuleProtocol_Packet.cpp | 104 +++++++------- .../ModuleProtocol_Parse.cpp | 108 +++++++-------- .../XEngine_ModuleProtocol/dllmain.cpp | 2 +- XEngine_Source/XEngine_ModuleProtocol/pch.cpp | 2 +- .../Plugin_BMIndex/Plugin_BMIndex.cpp | 18 +-- .../ModulePlugin_BMIndex/dllmain.cpp | 2 +- .../ModulePlugin_BMIndex/pch.cpp | 2 +- .../ModulePlugin_Interface.cpp | 20 +-- .../ModulePlugin_IPAddr/dllmain.cpp | 2 +- .../ModulePlugin_IPAddr/pch.cpp | 2 +- .../Plugin_Meter/Plugin_Meter.cpp | 30 ++-- .../ModulePlugin_Meter/dllmain.cpp | 2 +- .../ModulePlugin_Meter/pch.cpp | 2 +- .../Plugin_Password/Plugin_Password.cpp | 18 +-- .../ModulePlugin_Password/dllmain.cpp | 2 +- .../ModulePlugin_Password/pch.cpp | 2 +- .../ModulePlugin_APIPhone.cpp | 18 +-- .../ModulePlugin_DBPhone.cpp | 54 ++++---- .../ModulePlugin_Phone/dllmain.cpp | 2 +- .../ModulePlugin_Phone/pch.cpp | 2 +- .../Plugin_Timezone/Plugin_Timezone.cpp | 30 ++-- .../ModulePlugin_Timezone/dllmain.cpp | 2 +- .../ModulePlugin_Timezone/pch.cpp | 2 +- .../Plugin_Zodiac/Plugin_Zodiac.cpp | 22 +-- .../ModulePlugin_Zodiac/dllmain.cpp | 2 +- .../ModulePlugin_Zodiac/pch.cpp | 2 +- .../XEngine_HttpApp/XEngine_Configure.cpp | 6 +- .../XEngine_HttpApp/XEngine_HTTPTask.cpp | 32 ++--- .../XEngine_HttpApp/XEngine_HttpApp.cpp | 10 +- .../XEngine_HttpApp/XEngine_HttpApp.vcxproj | 2 + .../XEngine_HttpApp.vcxproj.filters | 6 + .../XEngine_HttpApp/XEngine_Network.cpp | 10 +- .../XEngine_HttpApp/XEngine_PluginTask.cpp | 4 +- .../XEngine_TaskGet/TaskGet_Bank.cpp | 8 +- .../XEngine_TaskGet/TaskGet_IDCard.cpp | 10 +- .../XEngine_TaskGet/TaskGet_Language.cpp | 4 +- .../XEngine_TaskGet/TaskGet_Locker.cpp | 14 +- .../XEngine_TaskGet/TaskGet_OPtions.cpp | 6 +- .../XEngine_TaskGet/TaskGet_Translation.cpp | 8 +- .../XEngine_TaskPost/TaskPost_DTest.cpp | 4 +- .../XEngine_TaskPost/TaskPost_Log.cpp | 4 +- .../XEngine_TaskPost/TaskPost_P2PClient.cpp | 14 +- .../XEngine_TaskPost/TaskPost_PostCode.cpp | 4 +- .../XEngine_TaskPost/TaskPost_QRCode.cpp | 4 +- .../XEngine_TaskPost/TaskPost_SocketTest.cpp | 4 +- XEngine_Source/XEngine_UserProtocol.h | 8 ++ 68 files changed, 813 insertions(+), 797 deletions(-) diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp index 9469210..5d10da8 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp @@ -42,13 +42,13 @@ CModuleConfigure_Json::~CModuleConfigure_Json() *********************************************************************/ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVICECONFIG* pSt_ServerConfig) { - Config_IsErrorOccur = FALSE; + Config_IsErrorOccur = XFALSE; if ((NULL == lpszConfigFile) || (NULL == pSt_ServerConfig)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -57,9 +57,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X FILE* pSt_File = _tfopen(lpszConfigFile, _T("rb")); if (NULL == pSt_File) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_OPENFILE; - return FALSE; + return XFALSE; } size_t nCount = 0; XCHAR tszMsgBuffer[4096]; @@ -77,9 +77,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARSE; - return FALSE; + return XFALSE; } _tcscpy(pSt_ServerConfig->tszIPAddr, st_JsonRoot["tszIPAddr"].asCString()); pSt_ServerConfig->bDeamon = st_JsonRoot["bDeamon"].asInt(); @@ -87,9 +87,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XMax"].empty() || (4 != st_JsonRoot["XMax"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XMAX; - return FALSE; + return XFALSE; } Json::Value st_JsonXMax = st_JsonRoot["XMax"]; pSt_ServerConfig->st_XMax.nMaxClient = st_JsonXMax["nMaxClient"].asInt(); @@ -99,9 +99,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XTime"].empty() || (3 != st_JsonRoot["XTime"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XTIME; - return FALSE; + return XFALSE; } Json::Value st_JsonXTime = st_JsonRoot["XTime"]; pSt_ServerConfig->st_XTime.nTimeCheck = st_JsonXTime["nTimeCheck"].asInt(); @@ -110,9 +110,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XLog"].empty() || (3 != st_JsonRoot["XLog"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XLOG; - return FALSE; + return XFALSE; } Json::Value st_JsonXLog = st_JsonRoot["XLog"]; pSt_ServerConfig->st_XLog.nMaxSize = st_JsonXLog["MaxSize"].asInt(); @@ -121,9 +121,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XApi"].empty() || (2 != st_JsonRoot["XApi"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XAPI; - return FALSE; + return XFALSE; } Json::Value st_JsonXApi = st_JsonRoot["XApi"]; _tcscpy(pSt_ServerConfig->st_XApi.tszBankUrl, st_JsonXApi["tszBankUrl"].asCString()); @@ -131,9 +131,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XSql"].empty() || (4 != st_JsonRoot["XSql"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XDB; - return FALSE; + return XFALSE; } Json::Value st_JsonXSql = st_JsonRoot["XSql"]; pSt_ServerConfig->st_XSql.nSQLPort = st_JsonXSql["SQLPort"].asInt(); @@ -143,9 +143,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XPlugin"].empty() || (3 != st_JsonRoot["XPlugin"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XPLUGIN; - return FALSE; + return XFALSE; } Json::Value st_JsonXPlugin = st_JsonRoot["XPlugin"]; pSt_ServerConfig->st_XPlugin.bEnable = st_JsonXPlugin["bEnable"].asBool(); @@ -154,9 +154,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XConfig"].empty() || (2 != st_JsonRoot["XConfig"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XCONFIG; - return FALSE; + return XFALSE; } Json::Value st_JsonXConfig = st_JsonRoot["XConfig"]; _tcscpy(pSt_ServerConfig->st_XConfig.tszConfigOPencc, st_JsonXConfig["tszConfigOPencc"].asCString()); @@ -164,23 +164,23 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XVer"].empty()) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XVER; - return FALSE; + return XFALSE; } pSt_ServerConfig->st_XVer.pStl_ListVer = new list; if (NULL == pSt_ServerConfig->st_XVer.pStl_ListVer) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_MALLOC; - return FALSE; + return XFALSE; } Json::Value st_JsonXVer = st_JsonRoot["XVer"]; for (unsigned int i = 0; i < st_JsonXVer.size(); i++) { pSt_ServerConfig->st_XVer.pStl_ListVer->push_back(st_JsonXVer[i].asCString()); } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleConfigure_Json_OPenccFile @@ -202,13 +202,13 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X *********************************************************************/ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE_OPENCCCONFIG* pSt_OPenccConfig) { - Config_IsErrorOccur = FALSE; + Config_IsErrorOccur = XFALSE; if ((NULL == lpszConfigFile) || (NULL == pSt_OPenccConfig)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -217,9 +217,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigF FILE* pSt_File = _tfopen(lpszConfigFile, _T("rb")); if (NULL == pSt_File) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_OPENFILE; - return FALSE; + return XFALSE; } size_t nCount = 0; XCHAR tszMsgBuffer[4096]; @@ -237,9 +237,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigF std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARSE; - return FALSE; + return XFALSE; } _tcscpy(pSt_OPenccConfig->tszFiles2t, st_JsonRoot["tszFiles2t"].asCString()); _tcscpy(pSt_OPenccConfig->tszFilet2s, st_JsonRoot["tszFilet2s"].asCString()); @@ -255,7 +255,7 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigF _tcscpy(pSt_OPenccConfig->tszFilet2jp, st_JsonRoot["tszFilet2jp"].asCString()); _tcscpy(pSt_OPenccConfig->tszFilejp2t, st_JsonRoot["tszFilejp2t"].asCString()); _tcscpy(pSt_OPenccConfig->tszFiletw2t, st_JsonRoot["tszFiletw2t"].asCString()); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleConfigure_Json_QRCodeFile @@ -277,13 +277,13 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigF *********************************************************************/ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE_QRCODECONFIG* pSt_QRCodeConfig) { - Config_IsErrorOccur = FALSE; + Config_IsErrorOccur = XFALSE; if ((NULL == lpszConfigFile) || (NULL == pSt_QRCodeConfig)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -292,9 +292,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigF FILE* pSt_File = _tfopen(lpszConfigFile, _T("rb")); if (NULL == pSt_File) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_OPENFILE; - return FALSE; + return XFALSE; } size_t nCount = 0; XCHAR tszMsgBuffer[4096]; @@ -312,15 +312,15 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigF std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARSE; - return FALSE; + return XFALSE; } _tcscpy(pSt_QRCodeConfig->tszModelDetect, st_JsonRoot["tszModelDetect"].asCString()); _tcscpy(pSt_QRCodeConfig->tszModelSr, st_JsonRoot["tszModelSr"].asCString()); _tcscpy(pSt_QRCodeConfig->tszProtoDetect, st_JsonRoot["tszProtoDetect"].asCString()); _tcscpy(pSt_QRCodeConfig->tszProtoSr, st_JsonRoot["tszProtoSr"].asCString()); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleConfigure_Json_PluginFile @@ -342,13 +342,13 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigF *********************************************************************/ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig) { - Config_IsErrorOccur = FALSE; + Config_IsErrorOccur = XFALSE; if ((NULL == lpszConfigFile) || (NULL == pSt_PluginConfig)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -357,9 +357,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigF FILE* pSt_File = _tfopen(lpszConfigFile, _T("rb")); if (NULL == pSt_File) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_OPENFILE; - return FALSE; + return XFALSE; } size_t nCount = 0; XCHAR tszMsgBuffer[4096]; @@ -377,17 +377,17 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigF std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARSE; - return FALSE; + return XFALSE; } //申请内存 pSt_PluginConfig->pStl_ListPlugin = new list; if (NULL == pSt_PluginConfig->pStl_ListPlugin) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_MALLOC; - return FALSE; + return XFALSE; } //解析列表 Json::Value st_JsonArray = st_JsonRoot["PluginArray"]; @@ -413,5 +413,5 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigF _tcscpy(st_PluginInfo.tszPluginMethod, st_JsonArray[i]["PluginMethod"].asCString()); pSt_PluginConfig->pStl_ListPlugin->push_back(st_PluginInfo); } - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp b/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp index f130bae..81c9f1a 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return XTRUE; } diff --git a/XEngine_Source/XEngine_ModuleConfigure/pch.cpp b/XEngine_Source/XEngine_ModuleConfigure/pch.cpp index 1170ca6..89f5445 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/pch.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出函数实现 // History: *********************************************************************/ -XBOOL Config_IsErrorOccur = FALSE; +XBOOL Config_IsErrorOccur = XFALSE; DWORD Config_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////// CModuleConfigure_Json m_ConfigJson; diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp index 212bde8..dedeb98 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp @@ -36,23 +36,23 @@ CModuleDatabase_Bank::~CModuleDatabase_Bank() *********************************************************************/ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if (NULL == pSt_DBConnector) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } //连接数据库 _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APIInfo")); if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_Bank_Destory @@ -64,10 +64,10 @@ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* *********************************************************************/ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Destory() { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; DataBase_MySQL_Close(xhDBSQL); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_Bank_Query @@ -84,13 +84,13 @@ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Destory() *********************************************************************/ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_BankInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if (NULL == pSt_BankInfo) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } //查询 __int64u nLine = 0; @@ -102,19 +102,19 @@ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_Bank _stprintf(tszSQLStatement, _T("SELECT * FROM `BankList` WHERE tszBankAbridge = '%s'"), pSt_BankInfo->tszBankAbridge); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return XFALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); _tcscpy(pSt_BankInfo->tszBankName, pptszResult[2]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp index 720e264..a5b0ace 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp @@ -36,23 +36,23 @@ CModuleDatabase_IDCard::~CModuleDatabase_IDCard() *********************************************************************/ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if (NULL == pSt_DBConnector) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } //连接数据库 _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APIInfo")); if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_Destory @@ -64,10 +64,10 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTI *********************************************************************/ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Destory() { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; DataBase_MySQL_Close(xhDBSQL); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_QueryRegion @@ -89,12 +89,12 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Destory() *********************************************************************/ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; ModuleDatabase_IDCard_QueryProvincer(pSt_IDRegion, pSt_IDInfo); ModuleDatabase_IDCard_QueryCity(pSt_IDRegion, pSt_IDInfo); ModuleDatabase_IDCard_QueryCounty(pSt_IDRegion, pSt_IDInfo); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_QueryProvincer @@ -116,13 +116,13 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION *********************************************************************/ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if ((NULL == pSt_IDRegion) || (NULL == pSt_IDInfo)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } //查询 __int64u nLine = 0; @@ -134,21 +134,21 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREG _stprintf(tszSQLStatement, _T("SELECT * FROM `RegionID` WHERE code = '%02d0000'"), pSt_IDInfo->nIDProvince); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return XFALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); _tcscpy(pSt_IDRegion->tszProvincer, pptszResult[1]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_QueryCity @@ -170,13 +170,13 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREG *********************************************************************/ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if ((NULL == pSt_IDRegion) || (NULL == pSt_IDInfo)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } //查询 __int64u nLine = 0; @@ -188,21 +188,21 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* _stprintf(tszSQLStatement, _T("SELECT * FROM `RegionID` WHERE code = '%02d%02d00'"), pSt_IDInfo->nIDProvince, pSt_IDInfo->nIDCity); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return XFALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); _tcscpy(pSt_IDRegion->tszCity, pptszResult[1]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_QueryCounty @@ -224,13 +224,13 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* *********************************************************************/ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if ((NULL == pSt_IDRegion) || (NULL == pSt_IDInfo)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } //查询 __int64u nLine = 0; @@ -242,19 +242,19 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION _stprintf(tszSQLStatement, _T("SELECT * FROM `RegionID` WHERE code = '%02d%02d%02d'"), pSt_IDInfo->nIDProvince, pSt_IDInfo->nIDCity, pSt_IDInfo->nIDCounty); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return XFALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); _tcscpy(pSt_IDRegion->tszCounty, pptszResult[1]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp index c2f3553..5b141eb 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp @@ -36,23 +36,23 @@ CModuleDatabase_XLog::~CModuleDatabase_XLog() *********************************************************************/ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if (NULL == pSt_DBConnector) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } //连接数据库 _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APILog")); if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Destory @@ -64,10 +64,10 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* *********************************************************************/ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Destory() { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; DataBase_MySQL_Close(xhDBSQL); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Create @@ -84,13 +84,13 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Destory() *********************************************************************/ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Create(LPCXSTR lpszTableName) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if (NULL == lpszTableName) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } XCHAR tszSQLStatement[10240]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); @@ -108,11 +108,11 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Create(LPCXSTR lpszTableName) if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Insert @@ -129,13 +129,13 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Create(LPCXSTR lpszTableName) *********************************************************************/ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if (NULL == pSt_XLogInfo) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } XCHAR tszSQLStatement[11240]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); @@ -143,11 +143,11 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLo _stprintf(tszSQLStatement, _T("INSERT INTO `%s` (tszFileName,tszFuncName,nLogLine,nLogLevel,tszLogBuffer,tszLogTime) VALUES('%s','%s',%d,%d,'%s','%s')"), pSt_XLogInfo->tszTableName, pSt_XLogInfo->st_ProtocolLog.tszFileName, pSt_XLogInfo->st_ProtocolLog.tszFuncName, pSt_XLogInfo->st_ProtocolLog.nLogLine, pSt_XLogInfo->st_ProtocolLog.nLogLevel, pSt_XLogInfo->tszLogBuffer, pSt_XLogInfo->st_ProtocolLog.tszLogTimer); if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Query @@ -184,13 +184,13 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLo *********************************************************************/ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, int* pInt_ListCount, LPCXSTR lpszTableName, LPCXSTR lpszTimeStart, LPCXSTR lpszTimeEnd) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if ((NULL == lpszTableName) || (NULL == lpszTimeStart) || (NULL == lpszTimeEnd)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } //查询 XNETHANDLE xhTable = 0; @@ -203,15 +203,15 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_ _stprintf_s(tszSQLStatement, _T("SELECT * FROM `%s` WHERE tszLogTime BETWEEN '%s' AND '%s'"), lpszTableName, lpszTimeStart, lpszTimeEnd); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nllLine, &nllRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } if (nllLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return XFALSE; } *pInt_ListCount = (int)nllLine; BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_XLogInfo, (int)nllLine, sizeof(XENGINE_XLOGINFO)); @@ -246,7 +246,7 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_ } } DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Delete @@ -263,13 +263,13 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_ *********************************************************************/ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if (NULL == lpszTableName) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } XCHAR tszSQLStatement[10240]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); @@ -277,9 +277,9 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName) _stprintf(tszSQLStatement, _T("DROP TABLE IF EXISTS '%s'"), lpszTableName); if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp index d18363b..22a24f5 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp @@ -36,23 +36,23 @@ CModuleDatabase_ZIPCode::~CModuleDatabase_ZIPCode() *********************************************************************/ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if (NULL == pSt_DBConnector) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } //连接数据库 _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APIInfo")); if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_Destory @@ -64,10 +64,10 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNEC *********************************************************************/ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Destory() { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; DataBase_MySQL_Close(xhDBSQL); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_QueryZIPCode @@ -84,7 +84,7 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Destory() *********************************************************************/ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; //查询 __int64u nLine = 0; @@ -96,15 +96,15 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPIN _stprintf(tszSQLStatement, _T("SELECT * FROM `AdministrativeArea` WHERE zip_code = %d"), pSt_ZIPInfo->nZipCode); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return XFALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); //三个级别 省->市->区/县 @@ -132,7 +132,7 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPIN } DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_QueryName @@ -149,13 +149,13 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPIN *********************************************************************/ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if (NULL == pSt_ZIPInfo) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } //查询 __int64u nLine = 0; @@ -184,22 +184,22 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* } else { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTSET; - return FALSE; + return XFALSE; } //查询内容 if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return XFALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); pSt_ZIPInfo->nLevel = _ttoi(pptszResult[5]); @@ -210,7 +210,7 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* _tcscpy(pSt_ZIPInfo->tszPinYin, pptszResult[6]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return XTRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 @@ -240,13 +240,13 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* *********************************************************************/ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParentID, XCHAR* ptszParentStr, int* pInt_ParentID /* = NULL */) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if (NULL == ptszParentStr) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } //查询 __int64u nLine = 0; @@ -258,15 +258,15 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParen _stprintf(tszSQLStatement, _T("SELECT * FROM `AdministrativeArea` WHERE id = %d"), nParentID); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return XFALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); @@ -277,7 +277,7 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParen _tcscpy(ptszParentStr, pptszResult[3]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_QueryParentByName @@ -299,13 +299,13 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParen *********************************************************************/ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByName(LPCXSTR lpszName, int* pInt_ParentID /* = NULL */) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = XFALSE; if (NULL == lpszName) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return XFALSE; } //查询 __int64u nLine = 0; @@ -317,15 +317,15 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByName(LPCXSTR _stprintf(tszSQLStatement, _T("SELECT * FROM `AdministrativeArea` WHERE name = '%s'"), lpszName); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return XFALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = XTRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return XFALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); if (NULL != pInt_ParentID) @@ -333,5 +333,5 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByName(LPCXSTR *pInt_ParentID = _ttoi(pptszResult[1]); } DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h index e5ea0ed..76efe19 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h @@ -617,7 +617,7 @@ extern "C" XBOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP = TRUE, XPVOID lParam = NULL); +extern "C" XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP = XTRUE, XPVOID lParam = NULL); /******************************************************************** 函数名称:ModuleHelp_SocketTest_GetDatas 函数功能:获取是否在处理中 diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp index 9b4fb69..df055cd 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp @@ -36,33 +36,33 @@ CModuleHelp_IDCard::~CModuleHelp_IDCard() *********************************************************************/ XBOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO *pSt_IDInfo) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if (NULL == pSt_IDInfo) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_PARAMENT; - return FALSE; + return XFALSE; } if (pSt_IDInfo->nBirthYear < 1949 || pSt_IDInfo->nBirthYear > 2999) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_FMT; - return FALSE; + return XFALSE; } if (pSt_IDInfo->nBirthMonth < 1 || pSt_IDInfo->nBirthMonth > 12) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_FMT; - return FALSE; + return XFALSE; } if (pSt_IDInfo->nBirthDay < 1 || pSt_IDInfo->nBirthDay > 31) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_FMT; - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_IDCard_CheckBirth @@ -79,13 +79,13 @@ XBOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO *pSt_I *********************************************************************/ XBOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if (NULL == pSt_IDInfo) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_PARAMENT; - return FALSE; + return XFALSE; } int nCheck = 0; int nIDArray[18]; @@ -103,9 +103,9 @@ XBOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDI } if ((nIDArray[17] != nTable[nCheck % 11]) && (pSt_IDInfo->nCheck != 'x' || nTable[nCheck % 11] != 2)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_SUM; - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp index 10f92ce..63d968f 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp @@ -46,30 +46,30 @@ CModuleHelp_Language::~CModuleHelp_Language() *********************************************************************/ XBOOL CModuleHelp_Language::ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lpszSourceStr, XCHAR* ptszDestStr) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if ((NULL == lpszJsonFile) || (NULL == lpszSourceStr) || (NULL == ptszDestStr)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_PARAMENT; - return FALSE; + return XFALSE; } opencc_t m_OPencc = opencc_open(lpszJsonFile); if ((opencc_t)-1 == m_OPencc) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_FAILED; - return FALSE; + return XFALSE; } if ((size_t)-1 == opencc_convert_utf8_to_buffer(m_OPencc, lpszSourceStr, strlen(lpszSourceStr), ptszDestStr)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_NOTSUPPORT; - return FALSE; + return XFALSE; } opencc_close(m_OPencc); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_Translation_Convert @@ -91,13 +91,13 @@ XBOOL CModuleHelp_Language::ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, *********************************************************************/ XBOOL CModuleHelp_Language::ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, XCHAR* ptszTranslationType) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if (NULL == ptszTranslationType) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_PARAMENT; - return FALSE; + return XFALSE; } //转换为服务需要的类型 if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_AUTO == enTranslationType) @@ -154,9 +154,9 @@ XBOOL CModuleHelp_Language::ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVI } else { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_NOTSUPPORT; - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp index c0cc4f5..b076563 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp @@ -36,20 +36,20 @@ CModuleHelp_Locker::~CModuleHelp_Locker() *********************************************************************/ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Create(XNETHANDLE* pxhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if (NULL == pxhToken) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_PARAMENT; - return FALSE; + return XFALSE; } MODULEHELP_LOCKINFO *pSt_LockInfo = new MODULEHELP_LOCKINFO; if (NULL == pSt_LockInfo) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_MALLOC; - return FALSE; + return XFALSE; } pSt_LockInfo->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_NOTUSED; @@ -58,7 +58,7 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Create(XNETHANDLE* pxhToken) st_Locker.lock(); stl_MapLocker.insert(make_pair(*pxhToken, pSt_LockInfo)); st_Locker.unlock(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_Locker_OPen @@ -75,33 +75,33 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Create(XNETHANDLE* pxhToken) *********************************************************************/ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_OPen(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator != stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_EXIST; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } st_Locker.unlock_shared(); //不存在插入 MODULEHELP_LOCKINFO* pSt_LockInfo = new MODULEHELP_LOCKINFO; if (NULL == pSt_LockInfo) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_MALLOC; - return FALSE; + return XFALSE; } pSt_LockInfo->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_NOTUSED; st_Locker.lock(); stl_MapLocker.insert(make_pair(xhToken, pSt_LockInfo)); st_Locker.unlock(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_Locker_ReadLock @@ -118,31 +118,31 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_OPen(XNETHANDLE xhToken) *********************************************************************/ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator == stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } //判断锁状态,如果是写,返回错误 if (ENUM_MODULEHELP_LOCKSTATUS_WRITE == stl_MapIterator->second->enLockStatus) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_LOCKED; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } //没有加锁,开始加锁 stl_MapIterator->second->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_READ; st_Locker.unlock_shared(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_Locker_ReadUNLock @@ -159,30 +159,30 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken) *********************************************************************/ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator == stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } //是不是READ锁定,不是返回错误 if (ENUM_MODULEHELP_LOCKSTATUS_READ != stl_MapIterator->second->enLockStatus) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_STATUS; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } stl_MapIterator->second->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_NOTUSED; st_Locker.unlock_shared(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_Locker_WriteLock @@ -199,30 +199,30 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken) *********************************************************************/ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator == stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } //有没有锁定状态 if ((ENUM_MODULEHELP_LOCKSTATUS_READ == stl_MapIterator->second->enLockStatus) || (ENUM_MODULEHELP_LOCKSTATUS_WRITE == stl_MapIterator->second->enLockStatus)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_LOCKED; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } stl_MapIterator->second->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_WRITE; st_Locker.unlock_shared(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_Locker_WriteUNLock @@ -239,30 +239,30 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken) *********************************************************************/ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator == stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } //有没有锁定状态 if (ENUM_MODULEHELP_LOCKSTATUS_WRITE == stl_MapIterator->second->enLockStatus) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_STATUS; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } stl_MapIterator->second->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_NOTUSED; st_Locker.unlock_shared(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_Locker_Close @@ -279,7 +279,7 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken) *********************************************************************/ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Close(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; //看看存在不存在 st_Locker.lock(); @@ -291,5 +291,5 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Close(XNETHANDLE xhToken) stl_MapLocker.erase(stl_MapIterator); } st_Locker.unlock(); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp index 04ea097..524a0d2 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp @@ -45,9 +45,9 @@ CModuleHelp_P2PClient::~CModuleHelp_P2PClient() *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, XPVOID lParam /* = NULL */) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; - m_bIsRun = TRUE; + m_bIsRun = XTRUE; m_nTimeout = nTimeout; m_lParam = lParam; lpCall_P2PClient = fpCall_P2PClient; @@ -55,11 +55,11 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_AP pSTDThread = make_shared(ModuleHelp_P2PClient_Thread, this); if (NULL == pSTDThread) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_THREAD; - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Destory @@ -71,17 +71,17 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_AP *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Destory() { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if (m_bIsRun) { - m_bIsRun = FALSE; + m_bIsRun = XFALSE; if (pSTDThread->joinable()) { pSTDThread->join(); } } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Add @@ -98,7 +98,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Destory() *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt_PeerInfo) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; st_Locker.lock(); unordered_map > >::iterator stl_MapIteratorAddr = stl_MapClients.find(pSt_PeerInfo->st_PeerAddr.tszPublicAddr); @@ -116,9 +116,9 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt if (!BaseLib_OperatorIPAddr_IsIPV4Addr(pSt_PeerInfo->st_PeerAddr.tszPrivateAddr, &st_LibAddr)) { //没有内网地址不加入. - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = BaseLib_GetLastError(); - return FALSE; + return XFALSE; } _stprintf_s(tszPrivateAddr, _T("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); //然后加入到私网地址 @@ -139,9 +139,9 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt if (!BaseLib_OperatorIPAddr_IsIPV4Addr(pSt_PeerInfo->st_PeerAddr.tszPrivateAddr, &st_LibAddr)) { //没有内网地址不加入. - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = BaseLib_GetLastError(); - return FALSE; + return XFALSE; } //内网地址192.168.1.2 内网出口192.168.1.1 链接地址10.0.1.0:13444 _stprintf_s(tszPrivateAddr, _T("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); @@ -166,7 +166,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt } } st_Locker.unlock(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Get @@ -188,23 +188,23 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL *pSt_P2PProtocol, XENGINE_P2XP_PEERINFO* pSt_PeerInfo /* = NULL */) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if (NULL == pSt_P2PProtocol) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return FALSE; + return XFALSE; } //查找元素 st_Locker.lock_shared(); unordered_map > >::const_iterator stl_MapPubIterator = stl_MapClients.find(pSt_P2PProtocol->tszPublicAddr); if (stl_MapPubIterator == stl_MapClients.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } //转换地址 XENGINE_LIBADDR st_LibAddr; @@ -219,18 +219,18 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL unordered_map >::const_iterator stl_MapPriIterator = stl_MapPubIterator->second.find(tszPrivateAddr); if (stl_MapPriIterator == stl_MapPubIterator->second.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } unordered_map::const_iterator stl_MapConnIterator = stl_MapPriIterator->second.find(pSt_P2PProtocol->tszConnectAddr); if (stl_MapConnIterator == stl_MapPriIterator->second.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } //判断是否导出节点信息 if (NULL != pSt_PeerInfo) @@ -238,7 +238,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL *pSt_PeerInfo = stl_MapConnIterator->second; } st_Locker.unlock_shared(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetLan @@ -265,23 +265,23 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL*** pppSt_P2XPClient, int* pInt_ListCount) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if ((NULL == pSt_P2PProtocol) || (NULL == pppSt_P2XPClient) || (NULL == pInt_ListCount)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return FALSE; + return XFALSE; } //查找公网IP地址 st_Locker.lock_shared(); unordered_map > >::const_iterator stl_MapPubIterator = stl_MapClients.find(pSt_P2PProtocol->tszPublicAddr); if (stl_MapPubIterator == stl_MapClients.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTPUBADDRR; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } XENGINE_LIBADDR st_LibAddr; XCHAR tszPrivateAddr[64]; @@ -295,17 +295,17 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOC unordered_map >::const_iterator stl_MapPriIterator = stl_MapPubIterator->second.find(tszPrivateAddr); if (stl_MapPriIterator == stl_MapPubIterator->second.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTPRIADDR; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } if (stl_MapPriIterator->second.empty()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOLIST; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_P2XPClient, stl_MapPriIterator->second.size(), sizeof(XENGINE_P2XPPEER_PROTOCOL)); unordered_map::const_iterator stl_MapConnIterator = stl_MapPriIterator->second.begin(); @@ -320,17 +320,17 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOC unordered_map >::const_iterator stl_MapPriIterator = stl_MapPubIterator->second.find(pSt_P2PProtocol->tszPrivateAddr); if (stl_MapPriIterator == stl_MapPubIterator->second.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTPRIADDR; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } if (stl_MapPriIterator->second.empty()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOLIST; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_P2XPClient, stl_MapPriIterator->second.size(), sizeof(XENGINE_P2XPPEER_PROTOCOL)); unordered_map::const_iterator stl_MapConnIterator = stl_MapPriIterator->second.begin(); @@ -341,7 +341,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOC *pInt_ListCount = stl_MapPriIterator->second.size(); } st_Locker.unlock_shared(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetLList @@ -368,22 +368,22 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOC *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR*** pppszP2XPClient, int* pInt_ListCount) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if ((NULL == lpszPubAddr) || (NULL == pppszP2XPClient) || (NULL == pInt_ListCount)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return FALSE; + return XFALSE; } st_Locker.lock_shared(); unordered_map > >::const_iterator stl_MapPubIterator = stl_MapClients.find(lpszPubAddr); if (stl_MapPubIterator == stl_MapClients.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } BaseLib_OperatorMemory_Malloc((XPPPMEM)pppszP2XPClient, stl_MapPubIterator->second.size(), 128); unordered_map >::const_iterator stl_MapPriIterator = stl_MapPubIterator->second.begin(); @@ -393,7 +393,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, } *pInt_ListCount = stl_MapPubIterator->second.size(); st_Locker.unlock_shared(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetWList @@ -415,19 +415,19 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetWList(XCHAR*** pppszP2XPClient, int* pInt_ListCount) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if ((NULL == pppszP2XPClient) || (NULL == pInt_ListCount)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return FALSE; + return XFALSE; } if (stl_MapClients.size() <= 0) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; - return FALSE; + return XFALSE; } BaseLib_OperatorMemory_Malloc((XPPPMEM)pppszP2XPClient, stl_MapClients.size(), 128); @@ -439,7 +439,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetWList(XCHAR*** pppszP2XPCli } *pInt_ListCount = stl_MapClients.size(); st_Locker.unlock_shared(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Delete @@ -456,7 +456,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetWList(XCHAR*** pppszP2XPCli *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; //查找公网地址 unordered_map > >::iterator stl_MapPubIteartor = stl_MapClients.find(pSt_P2PProtocol->tszPublicAddr); if (stl_MapPubIteartor != stl_MapClients.end()) @@ -492,7 +492,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOC stl_MapClients.erase(stl_MapPubIteartor); //如果这个公有网络IP地址列表为空,那么就删除他. } } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_DelAll @@ -504,13 +504,13 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOC *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_DelAll() { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; st_Locker.lock(); stl_MapClients.clear(); st_Locker.unlock(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Heart @@ -527,23 +527,23 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_DelAll() *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if (NULL == pSt_P2PProtocol) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return FALSE; + return XFALSE; } //查找元素 st_Locker.lock_shared(); unordered_map > >::iterator stl_MapPubIterator = stl_MapClients.find(pSt_P2PProtocol->tszPublicAddr); if (stl_MapPubIterator == stl_MapClients.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } //转换地址 XENGINE_LIBADDR st_LibAddr; @@ -558,22 +558,22 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCO unordered_map >::iterator stl_MapPriIterator = stl_MapPubIterator->second.find(tszPrivateAddr); if (stl_MapPriIterator == stl_MapPubIterator->second.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } unordered_map::iterator stl_MapConnIterator = stl_MapPriIterator->second.find(pSt_P2PProtocol->tszConnectAddr); if (stl_MapConnIterator == stl_MapPriIterator->second.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } stl_MapConnIterator->second.st_PeerTimer.dwUserTime = time(NULL); st_Locker.unlock_shared(); - return TRUE; + return XTRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp index 4099d82..4b5cdde 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp @@ -43,13 +43,13 @@ CModuleHelp_QRCode::~CModuleHelp_QRCode() *********************************************************************/ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if ((NULL == lpszFileName) || (NULL == lpszMsgBuffer)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_PARAMENT; - return FALSE; + return XFALSE; } #ifdef _MSC_BUILD //使用qrencode进行字符串编码 @@ -61,9 +61,9 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, #endif if (NULL == pSt_QRCodec) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_FAILED; - return FALSE; + return XFALSE; } cv::Mat m_SrcFrame; //转换数据 @@ -86,16 +86,16 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, if (!cv::imwrite(lpszFileName, m_SrcFrame)) #endif { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_WRITE; - return FALSE; + return XFALSE; } #else - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTSUPPORT; - return FALSE; + return XFALSE; #endif - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_QRCode_QREncodecMemory @@ -127,13 +127,13 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, *********************************************************************/ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if ((NULL == lpszMsgBuffer) || (NULL == ptszMsgBuffer)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_PARAMENT; - return FALSE; + return XFALSE; } #ifdef _MSC_BUILD //使用qrencode进行字符串编码 @@ -145,9 +145,9 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffe #endif if (NULL == pSt_QRCodec) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_FAILED; - return FALSE; + return XFALSE; } cv::Mat m_SrcFrame; vector stl_VecImg; @@ -167,9 +167,9 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffe //是否成功 if (!cv::imencode(lpszFmt, m_SrcFrame, stl_VecImg)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_FAILED; - return FALSE; + return XFALSE; } *pInt_MsgLen = stl_VecImg.size(); for (int i = 0; i < (*pInt_MsgLen); i++) @@ -177,11 +177,11 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffe ptszMsgBuffer[i] = stl_VecImg[i]; } #else - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTSUPPORT; - return FALSE; + return XFALSE; #endif - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_QRCode_QRDecodecFile @@ -223,13 +223,13 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffe *********************************************************************/ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if ((NULL == lpszFileName) || (NULL == ptszMsgBuffer)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_PARAMENT; - return FALSE; + return XFALSE; } #ifdef _MSC_BUILD cv::Mat m_Frame; @@ -245,9 +245,9 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, //是否成功 if (m_Frame.empty()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_EMPTY; - return FALSE; + return XFALSE; } #ifdef _UNICODE m_QRDetector = cv::makePtr(W2A(lpszDetectProto), W2A(lpszDetectModel), W2A(lpszSrProto), W2A(lpszSrModel)); @@ -258,9 +258,9 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, if (stl_VectorQRList.empty()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTQR; - return FALSE; + return XFALSE; } #ifdef _UNICODE wcscpy(ptszMsgBuffer, A2W(stl_VectorQRList[0].c_str())); @@ -268,11 +268,11 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, strcpy(ptszMsgBuffer, stl_VectorQRList[0].c_str()); #endif #else - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTSUPPORT; - return FALSE; + return XFALSE; #endif - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_QRCode_QRDecodecMemory @@ -319,13 +319,13 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, *********************************************************************/ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if ((NULL == lpszMsgBuffer) || (NULL == ptszMsgBuffer)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_PARAMENT; - return FALSE; + return XFALSE; } #ifdef _MSC_BUILD cv::Mat m_Frame; @@ -337,9 +337,9 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer //是否成功 if (m_Frame.empty()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_EMPTY; - return FALSE; + return XFALSE; } #ifdef _UNICODE USES_CONVERSION; @@ -351,9 +351,9 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer if (stl_VectorQRList.empty()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTQR; - return FALSE; + return XFALSE; } #ifdef _UNICODE wcscpy(ptszMsgBuffer, A2W(stl_VectorQRList[0].c_str())); @@ -361,9 +361,9 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer strcpy(ptszMsgBuffer, stl_VectorQRList[0].c_str()); #endif #else - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTSUPPORT; - return FALSE; + return XFALSE; #endif - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp index 9523398..2c9a3fb 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp @@ -50,24 +50,24 @@ CModuleHelp_SocketTest::~CModuleHelp_SocketTest() *********************************************************************/ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_RECONNECT* pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, XPVOID lParam /* = NULL */) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if ((NULL == pSt_ReConnect) || (NULL == fpCall_ReConnect)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_PARAMRT; - return FALSE; + return XFALSE; } MODULEHELP_SOCKETTEST_CONNINFO* pSt_ConnSocket = new MODULEHELP_SOCKETTEST_CONNINFO; if (NULL == pSt_ConnSocket) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_MALLOC; - return FALSE; + return XFALSE; } memset(pSt_ConnSocket, '\0', sizeof(MODULEHELP_SOCKETTEST_CONNINFO)); //结构体赋值 - pSt_ConnSocket->bIsRun = TRUE; + pSt_ConnSocket->bIsRun = XTRUE; pSt_ConnSocket->lParam = lParam; pSt_ConnSocket->lpCall_ReConnect = fpCall_ReConnect; BaseLib_OperatorHandle_Create(&pSt_ConnSocket->xhToken); @@ -76,15 +76,15 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxh pSt_ConnSocket->pSTDThread = make_shared(ModuleHelp_SocketTest_ThreadConn, pSt_ConnSocket); if (NULL == pSt_ConnSocket->pSTDThread) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_THREAD; - return FALSE; + return XFALSE; } *pxhToken = pSt_ConnSocket->xhToken; st_LockConn.lock(); stl_MapConnTest.insert(make_pair(pSt_ConnSocket->xhToken, pSt_ConnSocket)); st_LockConn.unlock(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_SocketTest_GetConnect @@ -106,20 +106,20 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxh *********************************************************************/ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, XBOOL* pbRun) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; st_LockConn.lock_shared(); unordered_map::iterator stl_MapIterator = stl_MapConnTest.find(xhToken); if (stl_MapIterator == stl_MapConnTest.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_NOTFOUND; st_LockConn.unlock_shared(); - return FALSE; + return XFALSE; } *pbRun = stl_MapIterator->second->bIsRun; st_LockConn.unlock_shared(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_SocketTest_StopConnect @@ -136,13 +136,13 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToke *********************************************************************/ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; st_LockConn.lock(); unordered_map::iterator stl_MapIterator = stl_MapConnTest.find(xhToken); if (stl_MapIterator != stl_MapConnTest.end()) { - stl_MapIterator->second->bIsRun = FALSE; + stl_MapIterator->second->bIsRun = XFALSE; stl_MapIterator->second->pSTDThread->join(); if (NULL != stl_MapIterator->second->lParam) @@ -157,7 +157,7 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhTok stl_MapConnTest.erase(stl_MapIterator); } st_LockConn.unlock(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_SocketTest_StartDatas @@ -187,24 +187,24 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhTok 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP /* = TRUE */, XPVOID lParam /* = NULL */) +XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP /* = XTRUE */, XPVOID lParam /* = NULL */) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; if ((NULL == pSt_SocketDatas) || (NULL == fpCall_DataTest)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_PARAMRT; - return FALSE; + return XFALSE; } MODULEHELP_SOCKETTEST_DATAINFO *pSt_DataSocket = new MODULEHELP_SOCKETTEST_DATAINFO; if (NULL == pSt_DataSocket) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_MALLOC; - return FALSE; + return XFALSE; } - pSt_DataSocket->bIsRun = TRUE; + pSt_DataSocket->bIsRun = XTRUE; pSt_DataSocket->bIsTCP = bTCP; pSt_DataSocket->lParam = lParam; pSt_DataSocket->lpCall_TestDatas = fpCall_DataTest; @@ -215,33 +215,33 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhTo { if (!XClient_TCPSelect_Create(&pSt_DataSocket->hSocket, pSt_SocketDatas->st_REConnect.tszAddr, pSt_SocketDatas->st_REConnect.nPort)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = XClient_GetLastError(); - return FALSE; + return XFALSE; } } else { if (!XClient_UDPSelect_Create(&pSt_DataSocket->hSocket)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = XClient_GetLastError(); - return FALSE; + return XFALSE; } } //创建线程 pSt_DataSocket->pSTDThread = make_shared(ModuleHelp_SocketTest_ThreadData, pSt_DataSocket); if (!pSt_DataSocket->pSTDThread->joinable()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_THREAD; - return FALSE; + return XFALSE; } *pxhToken = pSt_DataSocket->xhToken; st_LockData.lock(); stl_MapDataTest.insert(make_pair(pSt_DataSocket->xhToken, pSt_DataSocket)); st_LockData.unlock(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleHelp_SocketTest_GetDatas @@ -263,20 +263,20 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhTo *********************************************************************/ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, XBOOL* pbRun) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; st_LockData.lock_shared(); unordered_map::iterator stl_MapIterator = stl_MapDataTest.find(xhToken); if (stl_MapIterator == stl_MapDataTest.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = XTRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_NOTFOUND; st_LockData.unlock_shared(); - return FALSE; + return XFALSE; } *pbRun = stl_MapIterator->second->bIsRun; st_LockData.unlock_shared(); - return TRUE; + return XTRUE; } /************************************************************************ 函数名称:ModuleHelp_SocketTest_DatasStop @@ -293,14 +293,14 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, ************************************************************************/ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = XFALSE; st_LockData.unlock(); unordered_map::iterator stl_MapIterator = stl_MapDataTest.find(xhToken); if (stl_MapIterator != stl_MapDataTest.end()) { //关闭客户端 - stl_MapIterator->second->bIsRun = FALSE; + stl_MapIterator->second->bIsRun = XFALSE; stl_MapIterator->second->pSTDThread->join(); XClient_TCPSelect_Close(stl_MapIterator->second->hSocket); @@ -316,7 +316,7 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken stl_MapDataTest.erase(stl_MapIterator); } st_LockData.unlock(); - return TRUE; + return XTRUE; } ////////////////////////////////////////////////////////////////////////// // 线程函数 @@ -328,7 +328,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadConn(XPVOID lParam) __int64x nSucess = 0; __int64x nNumber = 0; - while (TRUE) + while (XTRUE) { if ((nNumber >= pSt_ReConnect->st_SocketConn.nConnectTest) && (-1 != pSt_ReConnect->st_SocketConn.nConnectTest)) { @@ -355,7 +355,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadConn(XPVOID lParam) std::this_thread::sleep_for(std::chrono::milliseconds(pSt_ReConnect->st_SocketConn.nCloseWaitContTime)); } pSt_ReConnect->lpCall_ReConnect(pSt_ReConnect->xhToken, pSt_ReConnect->st_SocketConn.tszAddr, pSt_ReConnect->st_SocketConn.nPort, nNumber, nFailed, nSucess, 2, pSt_ReConnect->lParam); - pSt_ReConnect->bIsRun = FALSE; + pSt_ReConnect->bIsRun = XFALSE; return 0; } XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) @@ -365,7 +365,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) __int64x nSucess = 0; __int64x nNumber = 0; - while (TRUE) + while (XTRUE) { if ((nNumber >= pSt_DataSocket->st_SocketData.st_REConnect.nConnectTest) && (-1 != pSt_DataSocket->st_SocketData.st_REConnect.nConnectTest)) { @@ -376,7 +376,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) break; } //发送数据 - XBOOL bRet = FALSE; + XBOOL bRet = XFALSE; if (pSt_DataSocket->bIsTCP) { bRet = XClient_TCPSelect_SendMsg(pSt_DataSocket->hSocket, pSt_DataSocket->st_SocketData.tszSDBuffer, pSt_DataSocket->st_SocketData.nSDLen); @@ -391,7 +391,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) if (pSt_DataSocket->st_SocketData.nRVLen > 0) { //是否需要可读判断 - if (XClient_OPTSocket_IOSelect(pSt_DataSocket->hSocket, TRUE, pSt_DataSocket->st_SocketData.st_REConnect.nContWaitTime)) + if (XClient_OPTSocket_IOSelect(pSt_DataSocket->hSocket, XTRUE, pSt_DataSocket->st_SocketData.st_REConnect.nContWaitTime)) { //接受数据 int nMsgLen = pSt_DataSocket->st_SocketData.nRVLen; @@ -429,6 +429,6 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) std::this_thread::sleep_for(std::chrono::milliseconds(pSt_DataSocket->st_SocketData.st_REConnect.nCloseWaitContTime)); } pSt_DataSocket->lpCall_TestDatas(pSt_DataSocket->xhToken, pSt_DataSocket->st_SocketData.st_REConnect.tszAddr, pSt_DataSocket->st_SocketData.st_REConnect.nPort, nNumber, nFailed, nSucess, 2, pSt_DataSocket->lParam); - pSt_DataSocket->bIsRun = FALSE; + pSt_DataSocket->bIsRun = XFALSE; return 0; } diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h index 88b51e5..ea30654 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h @@ -45,7 +45,7 @@ public: XBOOL ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, XBOOL* pbRun); XBOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken); //数据包压力测试 - XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP = TRUE, XPVOID lParam = NULL); + XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP = XTRUE, XPVOID lParam = NULL); XBOOL ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, XBOOL* pbRun); XBOOL ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken); protected: diff --git a/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp b/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp index f130bae..81c9f1a 100644 --- a/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return XTRUE; } diff --git a/XEngine_Source/XEngine_ModuleHelp/pch.cpp b/XEngine_Source/XEngine_ModuleHelp/pch.cpp index de58592..8e5bbad 100644 --- a/XEngine_Source/XEngine_ModuleHelp/pch.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/pch.cpp @@ -16,7 +16,7 @@ // Purpose: 导出函数实现 // History: *********************************************************************/ -XBOOL ModuleHelp_IsErrorOccur = FALSE; +XBOOL ModuleHelp_IsErrorOccur = XFALSE; DWORD ModuleHelp_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleHelp_IDCard m_IDCard; diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp index 19f0b17..8767fea 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp @@ -13,7 +13,7 @@ *********************************************************************/ CModulePlugin_LibCore::CModulePlugin_LibCore() { - bIsInit = FALSE; + bIsInit = XFALSE; } CModulePlugin_LibCore::~CModulePlugin_LibCore() { @@ -31,17 +31,17 @@ CModulePlugin_LibCore::~CModulePlugin_LibCore() *********************************************************************/ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Init() { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = XFALSE; //判断是否初始化 if (bIsInit) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_ISINITED; - return FALSE; + return XFALSE; } //启动线程 - bIsInit = TRUE; - return TRUE; + bIsInit = XTRUE; + return XTRUE; } /******************************************************************** 函数名称:ModulePlugin_LibCore_Push @@ -68,19 +68,19 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Init() *********************************************************************/ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = XFALSE; if (!BaseLib_OperatorHandle_Create(pxhModule)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = BaseLib_GetLastError(); - return FALSE; + return XFALSE; } if (!ModulePlugin_LibCore_Add(*pxhModule, lpszPluginFile, lParam)) { - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModulePlugin_LibCore_Exec @@ -132,28 +132,28 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Push(XNETHANDLE* pxhModule, LP *********************************************************************/ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer /* = NULL */, int nMsgLen /* = 0 */) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = XFALSE; st_csStl.lock_shared(); //执行指定插件函数 unordered_map::const_iterator stl_MapIterator = stl_MapFrameWork.find(xhModule); if (stl_MapIterator == stl_MapFrameWork.end()) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_NOTFOUND; st_csStl.unlock_shared(); - return FALSE; + return XFALSE; } if (!stl_MapIterator->second.fpCall_PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBufer, nMsgLen)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = stl_MapIterator->second.fpCall_PluginCore_GetLastError(); st_csStl.unlock_shared(); - return FALSE; + return XFALSE; } st_csStl.unlock_shared(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModulePlugin_LibCore_Destroy @@ -165,14 +165,14 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHA *********************************************************************/ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Destroy() { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = XFALSE; //判断是否初始化 if (!bIsInit) { - return TRUE; + return XTRUE; } - bIsInit = FALSE; + bIsInit = XFALSE; //清理STL元素空间 st_csStl.lock(); unordered_map::iterator stl_MapIterator = stl_MapFrameWork.begin(); @@ -187,7 +187,7 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Destroy() } stl_MapFrameWork.clear(); st_csStl.unlock(); - return TRUE; + return XTRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 @@ -217,13 +217,13 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Destroy() *********************************************************************/ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = XFALSE; if (NULL == lpszPluginFile) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return FALSE; + return XFALSE; } PLUGINCORE_FRAMEWORK st_FrameWork; st_FrameWork.mhFile = 0; @@ -236,9 +236,9 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #endif if (NULL == st_FrameWork.mhFile) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_OPENDL; - return FALSE; + return XFALSE; } //开始查找模块中的函数 #ifdef _MSC_BUILD @@ -253,9 +253,9 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPINIT; - return FALSE; + return XFALSE; } #ifdef _MSC_BUILD st_FrameWork.fpCall_PluginCore_UnInit = (FPCall_PluginCore_UnInit)GetProcAddress(st_FrameWork.mhFile, "PluginCore_UnInit"); @@ -269,9 +269,9 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPUNINIT; - return FALSE; + return XFALSE; } #ifdef _MSC_BUILD st_FrameWork.fpCall_PluginCore_Call = (FPCall_PluginCore_Call)GetProcAddress(st_FrameWork.mhFile, "PluginCore_Call"); @@ -285,9 +285,9 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPCALL; - return FALSE; + return XFALSE; } #ifdef _MSC_BUILD st_FrameWork.fpCall_PluginCore_GetLastError = (FPCall_PluginCore_GetLastError)GetProcAddress(st_FrameWork.mhFile, _T("PluginCore_GetLastError")); @@ -301,9 +301,9 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPERROR; - return FALSE; + return XFALSE; } //初始化内部模块 if (!st_FrameWork.fpCall_PluginCore_Init(lParam)) @@ -313,9 +313,9 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_INIT; - return FALSE; + return XFALSE; } _tcscpy(st_FrameWork.tszModuleFile, lpszPluginFile); @@ -323,5 +323,5 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR st_csStl.lock(); stl_MapFrameWork.insert(make_pair(xhNet, st_FrameWork)); st_csStl.unlock(); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp index e1aee12..8676b36 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp @@ -45,13 +45,13 @@ CModulePlugin_Loader::~CModulePlugin_Loader() *********************************************************************/ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lpszModuleName, int nType /* = 0 */) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = XFALSE; if ((NULL == lpszModuleMethod) || (NULL == lpszModuleName)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return FALSE; + return XFALSE; } PLUGINCORE_LOADER st_PluginLoader; memset(&st_PluginLoader, '\0', sizeof(PLUGINCORE_LOADER)); @@ -64,21 +64,21 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, { if (!ModulePlugin_LibCore_Push(&st_PluginLoader.xhToken, lpszModuleName)) { - return FALSE; + return XFALSE; } } else { if (!ModulePlugin_LuaCore_Push(&st_PluginLoader.xhToken, lpszModuleName)) { - return FALSE; + return XFALSE; } } st_Locker.lock(); stl_MapLoader.insert(make_pair(lpszModuleMethod, st_PluginLoader)); st_Locker.unlock(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModulePlugin_Loader_Find @@ -100,29 +100,29 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, *********************************************************************/ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = XFALSE; if (NULL == lpszMethodName) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return FALSE; + return XFALSE; } st_Locker.lock_shared(); unordered_map::const_iterator stl_MapIterator = stl_MapLoader.find(lpszMethodName); if (stl_MapIterator == stl_MapLoader.end()) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } if (NULL != pInt_Type) { *pInt_Type = stl_MapIterator->second.nType; } st_Locker.unlock_shared(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModulePlugin_Loader_Exec @@ -164,22 +164,22 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int *********************************************************************/ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = XFALSE; if (NULL == lpszMethodName) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return FALSE; + return XFALSE; } st_Locker.lock_shared(); unordered_map::const_iterator stl_MapIterator = stl_MapLoader.find(lpszMethodName); if (stl_MapIterator == stl_MapLoader.end()) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } if (0 == stl_MapIterator->second.nType) @@ -187,7 +187,7 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCH if (!ModulePlugin_LibCore_Exec(stl_MapIterator->second.xhToken, pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen)) { st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } } else @@ -195,11 +195,11 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCH if (!ModulePlugin_LuaCore_Exec(stl_MapIterator->second.xhToken, pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen)) { st_Locker.unlock_shared(); - return FALSE; + return XFALSE; } } st_Locker.unlock_shared(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModulePlugin_Loader_Destory @@ -211,10 +211,10 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCH *********************************************************************/ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Destory() { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = XFALSE; st_Locker.lock(); stl_MapLoader.clear(); st_Locker.unlock_shared(); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp index 50bdd16..276adeb 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp @@ -13,7 +13,7 @@ *********************************************************************/ CModulePlugin_LuaCore::CModulePlugin_LuaCore() { - bIsInit = FALSE; + bIsInit = XFALSE; } CModulePlugin_LuaCore::~CModulePlugin_LuaCore() { @@ -31,17 +31,17 @@ CModulePlugin_LuaCore::~CModulePlugin_LuaCore() *********************************************************************/ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Init() { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = XFALSE; //判断是否初始化 if (bIsInit) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_ISINITED; - return FALSE; + return XFALSE; } //启动线程 - bIsInit = TRUE; - return TRUE; + bIsInit = XTRUE; + return XTRUE; } /******************************************************************** 函数名称:ModulePlugin_LuaCore_Push @@ -68,19 +68,19 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Init() *********************************************************************/ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = XFALSE; if (!BaseLib_OperatorHandle_Create(pxhModule)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = BaseLib_GetLastError(); - return FALSE; + return XFALSE; } if (!ModulePlugin_LuaCore_Add(*pxhModule, lpszPluginFile, lParam)) { - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModulePlugin_LuaCore_Exec @@ -132,24 +132,24 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LP *********************************************************************/ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer /* = NULL */, int nMsgLen /* = 0 */) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = XFALSE; st_csStl.lock_shared(); //执行指定插件函数 unordered_map::const_iterator stl_MapIterator = stl_MapFrameWork.find(xhModule); if (stl_MapIterator == stl_MapFrameWork.end()) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_NOTFOUND; st_csStl.unlock_shared(); - return FALSE; + return XFALSE; } if (0 == lua_getglobal(stl_MapIterator->second.pSt_LuaState, "PluginCore_Call")) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPCALL; st_csStl.unlock_shared(); - return FALSE; + return XFALSE; } XCHAR tszURLParam[MAX_PATH]; memset(tszURLParam, '\0', MAX_PATH); @@ -168,10 +168,10 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHA lua_pushinteger(stl_MapIterator->second.pSt_LuaState, nMsgLen); if (LUA_OK != lua_pcall(stl_MapIterator->second.pSt_LuaState, 4, 1, 0)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_EXECTION; st_csStl.unlock_shared(); - return FALSE; + return XFALSE; } lua_getglobal(stl_MapIterator->second.pSt_LuaState, "PInt_HTTPCode"); *pInt_HTTPCode = (int)lua_tonumber(stl_MapIterator->second.pSt_LuaState, -1); @@ -187,7 +187,7 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHA st_csStl.unlock_shared(); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModulePlugin_LuaCore_Destroy @@ -199,14 +199,14 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHA *********************************************************************/ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Destroy() { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = XFALSE; //判断是否初始化 if (!bIsInit) { - return TRUE; + return XTRUE; } - bIsInit = FALSE; + bIsInit = XFALSE; //清理STL元素空间 st_csStl.lock(); unordered_map::iterator stl_MapIterator = stl_MapFrameWork.begin(); @@ -220,7 +220,7 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Destroy() stl_MapFrameWork.clear(); st_csStl.unlock(); - return TRUE; + return XTRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 @@ -250,13 +250,13 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Destroy() *********************************************************************/ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = XFALSE; if (NULL == lpszPluginFile) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return FALSE; + return XFALSE; } PLUGINCORE_LUAFRAMEWORK st_LuaCore; memset(&st_LuaCore, '\0', sizeof(PLUGINCORE_LUAFRAMEWORK)); @@ -266,48 +266,48 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Add(XNETHANDLE xhNet, LPCXSTR if (NULL == st_LuaCore.pSt_LuaState) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_MALLOC; - return FALSE; + return XFALSE; } luaL_openlibs(st_LuaCore.pSt_LuaState); if (LUA_OK != luaL_loadfile(st_LuaCore.pSt_LuaState, lpszPluginFile)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_OPENDL; - return FALSE; + return XFALSE; } if (LUA_OK != lua_pcall(st_LuaCore.pSt_LuaState, 0, 0, 0)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_EXECTION; - return FALSE; + return XFALSE; } if (0 == lua_getglobal(st_LuaCore.pSt_LuaState, "PluginCore_Init")) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPINIT; - return FALSE; + return XFALSE; } if (LUA_OK != lua_pcall(st_LuaCore.pSt_LuaState, 0, 1, 0)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_EXECTION; - return FALSE; + return XFALSE; } if (!lua_toboolean(st_LuaCore.pSt_LuaState, -1)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = XTRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_EXECTION; - return FALSE; + return XFALSE; } lua_pop(st_LuaCore.pSt_LuaState, -1); st_csStl.lock(); stl_MapFrameWork.insert(make_pair(xhNet, st_LuaCore)); st_csStl.unlock(); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp b/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp index f130bae..81c9f1a 100644 --- a/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return XTRUE; } diff --git a/XEngine_Source/XEngine_ModulePlugin/pch.cpp b/XEngine_Source/XEngine_ModulePlugin/pch.cpp index c00a4ed..aa63494 100644 --- a/XEngine_Source/XEngine_ModulePlugin/pch.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/pch.cpp @@ -13,7 +13,7 @@ // Purpose: 插件核心导出函数实现 // History: *********************************************************************/ -XBOOL ModulePlugin_IsErrorOccur = FALSE; +XBOOL ModulePlugin_IsErrorOccur = XFALSE; DWORD ModulePlugin_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_LibCore m_PluginLib; diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp index 2716b2a..54cafe9 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp @@ -51,13 +51,13 @@ CModuleProtocol_Packet::~CModuleProtocol_Packet() *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Common(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; @@ -68,7 +68,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Common(XCHAR* ptszMsgBuffer, } *pInt_MsgLen = st_JsonRoot.toStyledString().length(); memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_IDQuery @@ -110,13 +110,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Common(XCHAR* ptszMsgBuffer, *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -170,7 +170,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_BankQuery @@ -207,13 +207,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -251,7 +251,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuff *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_LanguageQuery @@ -288,13 +288,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuff *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -321,7 +321,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsg *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_Locker @@ -358,13 +358,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsg *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCXSTR lpszMsgBuffer) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -386,7 +386,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_ZIPCode @@ -423,13 +423,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -462,7 +462,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_Log @@ -494,13 +494,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; Json::Value st_JsonArray; @@ -528,7 +528,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, in *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_TestReport @@ -584,13 +584,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, in *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -611,7 +611,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuf *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_TestReply @@ -638,13 +638,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuf *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -659,7 +659,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuff *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PLan @@ -691,13 +691,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuff *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == pppSt_ListClients) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; Json::Value st_JsonArray; @@ -715,7 +715,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, *pInt_MsgLen = st_JsonRoot.toStyledString().length(); memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PWLan @@ -742,13 +742,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == pStl_ListClients) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return XFALSE; } unordered_map> stl_MapClient; //首先处理公网下的局域网网段列表 @@ -808,7 +808,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer *pInt_MsgLen = st_JsonRoot.toStyledString().length(); memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PUser @@ -835,13 +835,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == pSt_PeerInfo) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; Json::Value st_JsonAddr; @@ -859,7 +859,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer st_JsonBuilder["emitUTF8"] = true; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PConnect @@ -891,13 +891,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; @@ -909,5 +909,5 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuf *pInt_MsgLen = st_JsonRoot.toStyledString().length(); memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp index 861a4aa..53bd1fe 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp @@ -41,19 +41,19 @@ CModuleProtocol_Parse::~CModuleProtocol_Parse() *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCARDINFO* pSt_IDInfo) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == lpszMsgBuffer) || (NULL == pSt_IDInfo)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return XFALSE; } if (_tcslen(lpszMsgBuffer) != 18) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_LEN; - return FALSE; + return XFALSE; } int nPos = 0; XCHAR tszTmpBuffer[16]; @@ -62,9 +62,9 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, { if (!isdigit(lpszMsgBuffer[i])) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_FMT; - return FALSE; + return XFALSE; } } _tcscpy(pSt_IDInfo->tszIDNumber, lpszMsgBuffer); @@ -113,7 +113,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, memcpy(tszTmpBuffer, lpszMsgBuffer + nPos, 1); pSt_IDInfo->nCheck = _ttoi(tszTmpBuffer); nPos += 1; - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_Bank @@ -140,13 +140,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO* pSt_BankInfo) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == lpszMsgBuffer) || (0 == nMsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -155,17 +155,17 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, in std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_JSON; - return FALSE; + return XFALSE; } //{"messages":[{"errorCodes":"CARD_BIN_NOT_MATCH","name":"cardNo"}],"validated":false,"stat":"ok","key":"62215546546546"} //{"cardType":"DC","bank":"CMB","key":"62215546546546"messages":[],"validated":true,"stat":"ok"} if (!st_JsonRoot["validated"].asBool()) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_VALIDATE; - return FALSE; + return XFALSE; } LPCXSTR lpszTypeDC = _T("DC"); LPCXSTR lpszTypeCC = _T("CC"); @@ -182,7 +182,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, in pSt_BankInfo->enBankType = ENUM_XENGINE_APISERVICE_BANK_TYPE_BC; } _tcscpy(pSt_BankInfo->tszBankAbridge, st_JsonRoot["bank"].asCString()); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_Translation @@ -209,13 +209,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, in *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == lpszMsgBuffer) || (0 == nMsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -224,22 +224,22 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuf std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_JSON; - return FALSE; + return XFALSE; } //{"type":"ZH_CN2EN","errorCode":0,"elapsedTime":1,"translateResult":[[{"src":"计算","tgt":"To calculate"}]]} if (0 != st_JsonRoot["errorCode"].asInt()) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_VALIDATE; - return FALSE; + return XFALSE; } Json::Value st_JsonTranslation = st_JsonRoot["translateResult"]; _tcscpy(pSt_LanguageInfo->tszSourceStr, st_JsonTranslation[0][0]["src"].asCString()); _tcscpy(pSt_LanguageInfo->tszDestStr, st_JsonTranslation[0][0]["tgt"].asCString()); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_P2PClient @@ -266,13 +266,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuf *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_P2XPPeer) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == lpszMsgBuffer) || (NULL == pSt_P2XPPeer)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; Json::CharReaderBuilder st_JsonBuild; @@ -282,9 +282,9 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffe //解析JSON if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_JSON; - return FALSE; + return XFALSE; } delete pSt_JsonReader; pSt_JsonReader = NULL; @@ -309,7 +309,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffe { pSt_P2XPPeer->dwPeerType = st_JsonRoot["dwPeerType"].asInt(); } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_ZIPCode @@ -336,13 +336,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffe *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == lpszMsgBuffer) || (NULL == pSt_ZIPInfo)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -351,9 +351,9 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return XFALSE; } if (!st_JsonRoot["tszProvincer"].isNull()) @@ -373,7 +373,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, { pSt_ZIPInfo->nZipCode = st_JsonRoot["nZipCode"].asInt(); } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_XLog @@ -400,13 +400,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == lpszMsgBuffer) || (NULL == pSt_XLogInfo)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -415,9 +415,9 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, in std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return XFALSE; } if (!st_JsonRoot["tszTableName"].isNull()) @@ -460,7 +460,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, in { pSt_XLogInfo->st_ProtocolLog.nLogLevel = st_JsonRoot["nLogLevel"].asInt(); } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_QRCode @@ -487,13 +487,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, in *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == lpszMsgBuffer) || (NULL == pSt_QRCode)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -502,9 +502,9 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return XFALSE; } if (!st_JsonRoot["tszMsgBuffer"].isNull()) @@ -515,7 +515,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, { _tcscpy(pSt_QRCode->tszFmtBuffer, st_JsonRoot["tszFmtBuffer"].asCString()); } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_SocketTest @@ -542,13 +542,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = XFALSE; if ((NULL == lpszMsgBuffer) || (NULL == pSt_SocketTest)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return XFALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -557,9 +557,9 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuff std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = XTRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return XFALSE; } if (!st_JsonRoot["tszAPIUrl"].isNull()) @@ -620,5 +620,5 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuff { pSt_SocketTest->st_SocketData.nSDLen = st_JsonRoot["nSDLen"].asInt(); } - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp b/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp index f130bae..81c9f1a 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return XTRUE; } diff --git a/XEngine_Source/XEngine_ModuleProtocol/pch.cpp b/XEngine_Source/XEngine_ModuleProtocol/pch.cpp index f52d528..592a39b 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/pch.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/pch.cpp @@ -12,7 +12,7 @@ // Purpose: 导出协议模块实现 // History: *********************************************************************/ -XBOOL ModuleProtocol_IsErrorOccur = FALSE; +XBOOL ModuleProtocol_IsErrorOccur = XFALSE; DWORD ModuleProtocol_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleProtocol_Packet m_ProtocolPacket; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp index 2164e30..d304c73 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp @@ -35,9 +35,9 @@ CPlugin_BMIndex::~CPlugin_BMIndex() *********************************************************************/ XBOOL CPlugin_BMIndex::PluginCore_Init(XPVOID lParam) { - BMIndex_IsErrorOccur = FALSE; + BMIndex_IsErrorOccur = XFALSE; - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -49,7 +49,7 @@ XBOOL CPlugin_BMIndex::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_BMIndex::PluginCore_UnInit() { - BMIndex_IsErrorOccur = FALSE; + BMIndex_IsErrorOccur = XFALSE; } /******************************************************************** 函数名称:PluginCore_Call @@ -61,13 +61,13 @@ void CPlugin_BMIndex::PluginCore_UnInit() *********************************************************************/ XBOOL CPlugin_BMIndex::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - BMIndex_IsErrorOccur = FALSE; + BMIndex_IsErrorOccur = XFALSE; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - BMIndex_IsErrorOccur = TRUE; + BMIndex_IsErrorOccur = XTRUE; BMIndex_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_BMINDEX_PARAMENT; - return FALSE; + return XFALSE; } XCHAR tszKeyName[128]; XCHAR tszParamHigh[128]; @@ -82,14 +82,14 @@ XBOOL CPlugin_BMIndex::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* Plugin_Timezone_BMIndex(tszParamHigh, tszParamWeight, ptszMsgBuffer, pInt_MsgLen); *pInt_HTTPCode = 200; - return TRUE; + return XTRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// XBOOL CPlugin_BMIndex::Plugin_Timezone_BMIndex(LPCXSTR lpszHigh, LPCXSTR lpszWeight, XCHAR* ptszMsgBufer, int* pInt_Len) { - BMIndex_IsErrorOccur = FALSE; + BMIndex_IsErrorOccur = XFALSE; Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -133,5 +133,5 @@ XBOOL CPlugin_BMIndex::Plugin_Timezone_BMIndex(LPCXSTR lpszHigh, LPCXSTR lpszWei *pInt_Len = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp index f130bae..81c9f1a 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return XTRUE; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp index eb2ea11..08371cb 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL BMIndex_IsErrorOccur = FALSE; +XBOOL BMIndex_IsErrorOccur = XFALSE; DWORD BMIndex_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_BMIndex m_PluginBMIndex; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp index 8f0428a..af2d2a7 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp @@ -35,7 +35,7 @@ CModulePlugin_Interface::~CModulePlugin_Interface() *********************************************************************/ XBOOL CModulePlugin_Interface::PluginCore_Init(XPVOID lParam) { - IPAddr_IsErrorOccur = FALSE; + IPAddr_IsErrorOccur = XFALSE; const char* db_path = "./XEngine_DBFile/ip2region.xdb"; // 1、从 db_path 初始化 xdb 查询对象 @@ -43,9 +43,9 @@ XBOOL CModulePlugin_Interface::PluginCore_Init(XPVOID lParam) if (err != 0) { printf("failed to create xdb searcher from `%s` with errno=%d\n", db_path, err); - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -57,7 +57,7 @@ XBOOL CModulePlugin_Interface::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CModulePlugin_Interface::PluginCore_UnInit() { - IPAddr_IsErrorOccur = FALSE; + IPAddr_IsErrorOccur = XFALSE; xdb_close(&st_DBSearch); } /******************************************************************** @@ -70,13 +70,13 @@ void CModulePlugin_Interface::PluginCore_UnInit() *********************************************************************/ XBOOL CModulePlugin_Interface::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - IPAddr_IsErrorOccur = FALSE; + IPAddr_IsErrorOccur = XFALSE; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - IPAddr_IsErrorOccur = TRUE; + IPAddr_IsErrorOccur = XTRUE; IPAddr_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_IPADDR_PARAMENT; - return FALSE; + return XFALSE; } XCHAR tszKeyName[128]; XCHAR tszMsgBuffer[128]; @@ -92,9 +92,9 @@ XBOOL CModulePlugin_Interface::PluginCore_Call(XCHAR*** pppHDRList, int nListCou BaseLib_OperatorString_GetKeyValue((*pppHDRList)[1], "=", tszKeyName, st_IPAddr.tszIPAddr); if (0 != xdb_search_by_string(&st_DBSearch, st_IPAddr.tszIPAddr, tszMsgBuffer, sizeof(tszMsgBuffer))) { - IPAddr_IsErrorOccur = TRUE; + IPAddr_IsErrorOccur = XTRUE; IPAddr_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_IPADDR_NOTFOUND; - return FALSE; + return XFALSE; } //中国|0|内蒙古|通辽市|联通 _stscanf(tszMsgBuffer, _T("%[^|]|%[^|]|%[^|]|%[^|]|%[^|]"), st_IPAddr.tszIPCountry, st_IPAddr.tszIPCounty, st_IPAddr.tszIPProvince, st_IPAddr.tszIPCity, st_IPAddr.tszIPISP); @@ -114,5 +114,5 @@ XBOOL CModulePlugin_Interface::PluginCore_Call(XCHAR*** pppHDRList, int nListCou *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp index 16e8e32..b3df321 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp @@ -14,5 +14,5 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp index ada1c9b..b569a76 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL IPAddr_IsErrorOccur = FALSE; +XBOOL IPAddr_IsErrorOccur = XFALSE; DWORD IPAddr_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_Interface m_PluginIPAddr; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp index 897e9b8..76e05d7 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp @@ -35,9 +35,9 @@ CPlugin_Meter::~CPlugin_Meter() *********************************************************************/ XBOOL CPlugin_Meter::PluginCore_Init(XPVOID lParam) { - Meter_IsErrorOccur = FALSE; + Meter_IsErrorOccur = XFALSE; - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -49,7 +49,7 @@ XBOOL CPlugin_Meter::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_Meter::PluginCore_UnInit() { - Meter_IsErrorOccur = FALSE; + Meter_IsErrorOccur = XFALSE; } /******************************************************************** 函数名称:PluginCore_Call @@ -61,13 +61,13 @@ void CPlugin_Meter::PluginCore_UnInit() *********************************************************************/ XBOOL CPlugin_Meter::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Meter_IsErrorOccur = FALSE; + Meter_IsErrorOccur = XFALSE; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Meter_IsErrorOccur = TRUE; + Meter_IsErrorOccur = XTRUE; Meter_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_METER_PARAMENT; - return FALSE; + return XFALSE; } XCHAR tszKeyName[128]; XCHAR tszParamType[128]; @@ -117,14 +117,14 @@ XBOOL CPlugin_Meter::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* p *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// XBOOL CPlugin_Meter::Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Json::Value *pSt_JsonObject) { - Meter_IsErrorOccur = FALSE; + Meter_IsErrorOccur = XFALSE; Json::Value st_JsonObejct; if (ENUM_APISERVICE_PLUGIN_METER_LENGTH_KILOMETRE == nSource) @@ -191,11 +191,11 @@ XBOOL CPlugin_Meter::Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Js st_JsonObejct["foot"] = double(nValue * 0.32808399); } (*pSt_JsonObject)["Length"] = st_JsonObejct; - return TRUE; + return XTRUE; } XBOOL CPlugin_Meter::Plugin_Meter_TemperatureConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) { - Meter_IsErrorOccur = FALSE; + Meter_IsErrorOccur = XFALSE; Json::Value st_JsonObejct; if (ENUM_APISERVICE_PLUGIN_METER_TEMPERATURE_C == nSource) @@ -206,11 +206,11 @@ XBOOL CPlugin_Meter::Plugin_Meter_TemperatureConvert(int nSource, __int64x nValu st_JsonObejct["degree"] = double(nValue * 0.8); } (*pSt_JsonObject)["Temperature"] = st_JsonObejct; - return TRUE; + return XTRUE; } XBOOL CPlugin_Meter::Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) { - Meter_IsErrorOccur = FALSE; + Meter_IsErrorOccur = XFALSE; Json::Value st_JsonObejct; if (ENUM_APISERVICE_PLUGIN_METER_POWER_W == nSource) @@ -220,11 +220,11 @@ XBOOL CPlugin_Meter::Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Jso st_JsonObejct["ps"] = double(nValue * 0.00136); } (*pSt_JsonObject)["Power"] = st_JsonObejct; - return TRUE; + return XTRUE; } XBOOL CPlugin_Meter::Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) { - Meter_IsErrorOccur = FALSE; + Meter_IsErrorOccur = XFALSE; Json::Value st_JsonObejct; if (ENUM_APISERVICE_PLUGIN_METER_SPEED_KNOT == nSource) @@ -243,5 +243,5 @@ XBOOL CPlugin_Meter::Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Jso st_JsonObejct["kilometer"] = double(nValue * 00.621); } (*pSt_JsonObject)["Power"] = st_JsonObejct; - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp index f130bae..81c9f1a 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return XTRUE; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp index 8659fc7..ac24b19 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Meter_IsErrorOccur = FALSE; +XBOOL Meter_IsErrorOccur = XFALSE; DWORD Meter_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Meter m_PluginMeter; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp index 9f02475..acf0f11 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp @@ -35,9 +35,9 @@ CPlugin_Password::~CPlugin_Password() *********************************************************************/ XBOOL CPlugin_Password::PluginCore_Init(XPVOID lParam) { - Pass_IsErrorOccur = FALSE; + Pass_IsErrorOccur = XFALSE; - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -49,7 +49,7 @@ XBOOL CPlugin_Password::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_Password::PluginCore_UnInit() { - Pass_IsErrorOccur = FALSE; + Pass_IsErrorOccur = XFALSE; } /******************************************************************** 函数名称:PluginCore_Call @@ -61,13 +61,13 @@ void CPlugin_Password::PluginCore_UnInit() *********************************************************************/ XBOOL CPlugin_Password::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Pass_IsErrorOccur = FALSE; + Pass_IsErrorOccur = XFALSE; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Pass_IsErrorOccur = TRUE; + Pass_IsErrorOccur = XTRUE; Pass_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PASS_PARAMENT; - return FALSE; + return XFALSE; } XCHAR tszKeyName[128]; XCHAR tszParamType[128]; @@ -97,14 +97,14 @@ XBOOL CPlugin_Password::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// XBOOL CPlugin_Password::Plugin_Password_Creator(LPCXSTR lpszPassType, LPCXSTR lpszLength, XCHAR* ptszPassStr) { - Pass_IsErrorOccur = FALSE; + Pass_IsErrorOccur = XFALSE; int nType = _ttoi(lpszPassType); int nLen = _ttoi(lpszLength); @@ -129,5 +129,5 @@ XBOOL CPlugin_Password::Plugin_Password_Creator(LPCXSTR lpszPassType, LPCXSTR lp _stprintf(&tszPassBuffer[i], _T("%c"), (rand() % 26) + 65); } } - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp index f130bae..81c9f1a 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return XTRUE; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp index c053353..a7d10e6 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Pass_IsErrorOccur = FALSE; +XBOOL Pass_IsErrorOccur = XFALSE; DWORD Pass_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Password m_PluginPass; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp index 6da719f..0d4396e 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp @@ -35,13 +35,13 @@ CModulePlugin_APIPhone::~CModulePlugin_APIPhone() *********************************************************************/ XBOOL CModulePlugin_APIPhone::PluginCore_Init(XPVOID lParam) { - Phone_IsErrorOccur = FALSE; + Phone_IsErrorOccur = XFALSE; if (!m_DBPhone.ModuleDatabase_Phone_Init(_T("./XEngine_DBFile/phone.dat"))) { - return FALSE; + return XFALSE; } - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -53,7 +53,7 @@ XBOOL CModulePlugin_APIPhone::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CModulePlugin_APIPhone::PluginCore_UnInit() { - Phone_IsErrorOccur = FALSE; + Phone_IsErrorOccur = XFALSE; m_DBPhone.ModuleDatabase_Phone_Destory(); } @@ -67,13 +67,13 @@ void CModulePlugin_APIPhone::PluginCore_UnInit() *********************************************************************/ XBOOL CModulePlugin_APIPhone::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Phone_IsErrorOccur = FALSE; + Phone_IsErrorOccur = XFALSE; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = XTRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_PARAMENT; - return FALSE; + return XFALSE; } XCHAR tszKeyName[128]; XCHAR tszKeyValue[128]; @@ -91,7 +91,7 @@ XBOOL CModulePlugin_APIPhone::PluginCore_Call(XCHAR*** pppHDRList, int nListCoun st_PhoneInfo.nPhoneNumber = _ttoi64(tszKeyValue); if (!m_DBPhone.ModuleDatabase_Phone_Query(tszKeyValue, &st_PhoneInfo)) { - return FALSE; + return XFALSE; } st_JsonObject["nPhoneNumber"] = (Json::Value::Int64)st_PhoneInfo.nPhoneNumber; st_JsonObject["tszProvincer"] = st_PhoneInfo.tszProvincer; @@ -107,5 +107,5 @@ XBOOL CModulePlugin_APIPhone::PluginCore_Call(XCHAR*** pppHDRList, int nListCoun *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp index a0e1c04..a711ca4 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp @@ -36,33 +36,33 @@ CModulePlugin_DBPhone::~CModulePlugin_DBPhone() *********************************************************************/ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Init(LPCXSTR lpszSQLFile) { - Phone_IsErrorOccur = FALSE; + Phone_IsErrorOccur = XFALSE; if (NULL == lpszSQLFile) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = XTRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_PARAMENT; - return FALSE; + return XFALSE; } //打开数据库 FILE* pSt_File = _tfopen(lpszSQLFile, _T("rb")); if (NULL == pSt_File) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = XTRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return FALSE; + return XFALSE; } //申请内存 ptszMsgBuffer = (XCHAR*)malloc(XENGINE_APISERVICE_DATABASE_PHONE_BUFFER_SIZE); if (NULL == ptszMsgBuffer) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = XTRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_MALLOC; - return FALSE; + return XFALSE; } memset(ptszMsgBuffer, '\0', XENGINE_APISERVICE_DATABASE_PHONE_BUFFER_SIZE); //读取内容 - while (TRUE) + while (XTRUE) { int nRet = fread(ptszMsgBuffer + nFLen, 1, 2048, pSt_File); if (nRet <= 0) @@ -74,7 +74,7 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Init(LPCXSTR lpszSQLFile) fclose(pSt_File); memcpy(&st_PhoneHdr, ptszMsgBuffer, sizeof(XENGINE_DBPHONEHDR)); nCount = (nFLen - st_PhoneHdr.nOffset) / XENGINE_APISERVICE_DATABASE_PHONE_INDEX_LEN; - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_Phone_Destory @@ -86,11 +86,11 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Init(LPCXSTR lpszSQLFile) *********************************************************************/ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Destory() { - Phone_IsErrorOccur = FALSE; + Phone_IsErrorOccur = XFALSE; free(ptszMsgBuffer); ptszMsgBuffer = NULL; - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:ModuleDatabase_Phone_Query @@ -112,13 +112,13 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Destory() *********************************************************************/ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, XENGINE_PHONEINFO* pSt_PhoneInfo) { - Phone_IsErrorOccur = FALSE; + Phone_IsErrorOccur = XFALSE; if ((NULL == lpszPhoneNumber) || (NULL == pSt_PhoneInfo)) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = XTRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_PARAMENT; - return FALSE; + return XFALSE; } size_t nPLen = _tcslen(lpszPhoneNumber); size_t nPhone = 0; @@ -162,7 +162,7 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, else { int i = 0; - while (TRUE) + while (XTRUE) { if (ptszMsgBuffer[i + st_DBRecord.nOffset] == '\0') { @@ -174,12 +174,12 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, //转换数据 if (!ModuleDatabase_Phone_Convert(ptszMsgBuffer + st_DBRecord.nOffset, i, pSt_PhoneInfo)) { - return FALSE; + return XFALSE; } break; } } - return TRUE; + return XTRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 @@ -209,7 +209,7 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, *********************************************************************/ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Convert(LPCXSTR lpszPhoneInfo, int nMsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo) { - Phone_IsErrorOccur = FALSE; + Phone_IsErrorOccur = XFALSE; XCHAR tszMsgBuffer[128]; memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); @@ -218,38 +218,38 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Convert(LPCXSTR lpszPhoneInfo, XCHAR* ptszTokStr = _tcstok(tszMsgBuffer, _T("|")); if (NULL == ptszTokStr) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = XTRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return FALSE; + return XFALSE; } _tcscpy(pSt_PhoneInfo->tszProvincer, ptszTokStr); //市区 ptszTokStr = _tcstok(NULL, _T("|")); if (NULL == ptszTokStr) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = XTRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return FALSE; + return XFALSE; } _tcscpy(pSt_PhoneInfo->tszCity, ptszTokStr); //邮编 ptszTokStr = _tcstok(NULL, _T("|")); if (NULL == ptszTokStr) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = XTRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return FALSE; + return XFALSE; } pSt_PhoneInfo->nZipCode = _ttoi(ptszTokStr); //区号 ptszTokStr = _tcstok(NULL, _T("|")); if (NULL == ptszTokStr) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = XTRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return FALSE; + return XFALSE; } pSt_PhoneInfo->nAreaCode = _ttoi(ptszTokStr); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp index f130bae..81c9f1a 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return XTRUE; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp index 4683cb3..4382b28 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Phone_IsErrorOccur = FALSE; +XBOOL Phone_IsErrorOccur = XFALSE; DWORD Phone_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_APIPhone m_PluginPhone; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp index d9586f5..a9dc680 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp @@ -35,7 +35,7 @@ CPlugin_Timezone::~CPlugin_Timezone() *********************************************************************/ XBOOL CPlugin_Timezone::PluginCore_Init(XPVOID lParam) { - Timezone_IsErrorOccur = FALSE; + Timezone_IsErrorOccur = XFALSE; MODULEPLUGIN_TIMEZONE st_TimeZone; memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); @@ -497,7 +497,7 @@ XBOOL CPlugin_Timezone::PluginCore_Init(XPVOID lParam) st_TimeZone.st_TimeZone.wHour = 14; _tcscpy(st_TimeZone.tszTimeCountry, _T("基里巴斯线岛时间")); stl_MapTimezone.insert(make_pair(_T("KLT"), st_TimeZone)); - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -509,7 +509,7 @@ XBOOL CPlugin_Timezone::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_Timezone::PluginCore_UnInit() { - Timezone_IsErrorOccur = FALSE; + Timezone_IsErrorOccur = XFALSE; stl_MapTimezone.clear(); } @@ -523,13 +523,13 @@ void CPlugin_Timezone::PluginCore_UnInit() *********************************************************************/ XBOOL CPlugin_Timezone::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Timezone_IsErrorOccur = FALSE; + Timezone_IsErrorOccur = XFALSE; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Timezone_IsErrorOccur = TRUE; + Timezone_IsErrorOccur = XTRUE; Timezone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_TIMEZONE_PARAMENT; - return FALSE; + return XFALSE; } XCHAR tszKeyName[128]; XCHAR tszParamType[128]; @@ -561,19 +561,19 @@ XBOOL CPlugin_Timezone::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int if (!Plugin_Timezone_Convert(tszParamCvt, tszParamTime, ptszMsgBuffer, pInt_MsgLen)) { *pInt_HTTPCode = 404; - return FALSE; + return XFALSE; } } *pInt_HTTPCode = 200; - return TRUE; + return XTRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// XBOOL CPlugin_Timezone::Plugin_Timezone_Count(XCHAR* ptszMsgBufer, int* pInt_Len) { - Timezone_IsErrorOccur = FALSE; + Timezone_IsErrorOccur = XFALSE; Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -587,11 +587,11 @@ XBOOL CPlugin_Timezone::Plugin_Timezone_Count(XCHAR* ptszMsgBufer, int* pInt_Len *pInt_Len = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len); - return TRUE; + return XTRUE; } XBOOL CPlugin_Timezone::Plugin_Timezone_List(LPCXSTR lpszConvert, XCHAR* ptszMsgBufer, int* pInt_Len) { - Timezone_IsErrorOccur = FALSE; + Timezone_IsErrorOccur = XFALSE; int nPosStart = 0; int nPosEnd = 0; @@ -622,11 +622,11 @@ XBOOL CPlugin_Timezone::Plugin_Timezone_List(LPCXSTR lpszConvert, XCHAR* ptszMsg *pInt_Len = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len); - return TRUE; + return XTRUE; } XBOOL CPlugin_Timezone::Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lpszTimeStr, XCHAR* ptszMsgBufer, int* pInt_Len) { - Timezone_IsErrorOccur = FALSE; + Timezone_IsErrorOccur = XFALSE; Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -635,7 +635,7 @@ XBOOL CPlugin_Timezone::Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lps unordered_map::const_iterator stl_MapIterator = stl_MapTimezone.find(lpszConvert); if (stl_MapIterator == stl_MapTimezone.end()) { - return FALSE; + return XFALSE; } XCHAR tszTimeStr[64]; XENGINE_LIBTIMER st_TimeStart; @@ -661,5 +661,5 @@ XBOOL CPlugin_Timezone::Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lps *pInt_Len = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp index f130bae..81c9f1a 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return XTRUE; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp index be2c061..1b86d39 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Timezone_IsErrorOccur = FALSE; +XBOOL Timezone_IsErrorOccur = XFALSE; DWORD Timezone_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Timezone m_PluginTimes; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp index 610e669..7d396a3 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp @@ -47,9 +47,9 @@ CPlugin_Zodiac::~CPlugin_Zodiac() *********************************************************************/ XBOOL CPlugin_Zodiac::PluginCore_Init(XPVOID lParam) { - Zodiac_IsErrorOccur = FALSE; + Zodiac_IsErrorOccur = XFALSE; - return TRUE; + return XTRUE; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -61,7 +61,7 @@ XBOOL CPlugin_Zodiac::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_Zodiac::PluginCore_UnInit() { - Zodiac_IsErrorOccur = FALSE; + Zodiac_IsErrorOccur = XFALSE; } /******************************************************************** 函数名称:PluginCore_Call @@ -73,13 +73,13 @@ void CPlugin_Zodiac::PluginCore_UnInit() *********************************************************************/ XBOOL CPlugin_Zodiac::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Zodiac_IsErrorOccur = FALSE; + Zodiac_IsErrorOccur = XFALSE; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Zodiac_IsErrorOccur = TRUE; + Zodiac_IsErrorOccur = XTRUE; Zodiac_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_ZODIAC_PARAMENT; - return FALSE; + return XFALSE; } XCHAR tszKeyName[128]; XCHAR tszValueName[128]; @@ -109,25 +109,25 @@ XBOOL CPlugin_Zodiac::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return XTRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// XBOOL CPlugin_Zodiac::Plugin_Zodiac_Chinese(LPCXSTR lpszDate, XCHAR* ptszCZodiac) { - Zodiac_IsErrorOccur = FALSE; + Zodiac_IsErrorOccur = XFALSE; int nDate = _ttoi(lpszDate); int nYear = nDate / 10000; nYear = nYear % 12; _tcscpy(ptszCZodiac, m_StrChinese[nYear].c_str()); - return TRUE; + return XTRUE; } XBOOL CPlugin_Zodiac::Plugin_Zodiac_English(LPCXSTR lpszDate, XCHAR* ptszEZodiac) { - Zodiac_IsErrorOccur = FALSE; + Zodiac_IsErrorOccur = XFALSE; int nMonth = 0; int nDay = 0; @@ -155,5 +155,5 @@ XBOOL CPlugin_Zodiac::Plugin_Zodiac_English(LPCXSTR lpszDate, XCHAR* ptszEZodiac 为0就表示一个月中的前一个星座,否则为后一个星座, 比如生日为5月6号,则对应输出 constells[4][0] 对应金牛座*/ _tcscpy(ptszEZodiac, m_StrEnglish[nMonth - 1][nDay / nConstell[nMonth]].c_str()); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp index f130bae..81c9f1a 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return XTRUE; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp index 90efc25..97fe2dd 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Zodiac_IsErrorOccur = FALSE; +XBOOL Zodiac_IsErrorOccur = XFALSE; DWORD Zodiac_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Zodiac m_PluginZodiac; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp index b6fb053..e7c25d4 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp @@ -17,7 +17,7 @@ XBOOL XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* p if (!ModuleConfigure_Json_File(lpszConfigFile, pSt_Configure)) { printf("解析配置文件失败,ModuleConfigure_Json_File:%lX\n", ModuleConfigure_GetLastError()); - return FALSE; + return XFALSE; } for (int i = 0; i < argc; i++) @@ -25,7 +25,7 @@ XBOOL XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* p if ((0 == _tcscmp("-h", argv[i])) || (0 == _tcscmp("-H", argv[i]))) { XEngine_Configure_Help(); - return FALSE; + return XFALSE; } else if (0 == _tcscmp("-d", argv[i])) { @@ -33,7 +33,7 @@ XBOOL XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* p } } - return TRUE; + return XTRUE; } void XEngine_Configure_Help() diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp index 56aacda..78e7c73 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp @@ -64,7 +64,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 XCHAR** pptszList; XCHAR tszUrlName[128]; @@ -80,7 +80,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return XFALSE; } XCHAR tszKey[MAX_PATH]; XCHAR tszValue[MAX_PATH]; @@ -112,7 +112,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return XFALSE; } //获得函数名 BaseLib_OperatorString_GetKeyValue(pptszList[0], "=", tszKey, tszValue); @@ -123,14 +123,14 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return XFALSE; } //首先处理插件 int nPluginType = 0; if (ModulePlugin_Loader_Find(tszValue, &nPluginType)) { XEngine_PluginTask_Handle(tszValue, lpszClientAddr, lpszRVBuffer, nRVLen, &pptszList, nListCount, nPluginType); - return TRUE; + return XTRUE; } if (0 == _tcsnicmp(lpszMethodPost, pSt_HTTPParam->tszHttpMethod, _tcslen(lpszMethodPost))) { @@ -147,7 +147,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return XFALSE; } HTTPTask_TastPost_P2PClient(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } @@ -164,7 +164,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return XFALSE; } HTTPTask_TastPost_PostCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } @@ -181,7 +181,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return XFALSE; } HTTPTask_TastPost_LogInfo(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } @@ -198,7 +198,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return XFALSE; } HTTPTask_TaskPost_QRCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } @@ -215,7 +215,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return XFALSE; } HTTPTask_TastPost_SocketTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } @@ -232,7 +232,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return XFALSE; } HTTPTask_TastPost_DTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } @@ -264,7 +264,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return XFALSE; } HTTPTask_TaskGet_IDCard(lpszClientAddr, tszValue); } @@ -281,7 +281,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return XFALSE; } HTTPTask_TaskGet_BankInfo(lpszClientAddr, tszValue); } @@ -302,7 +302,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return XFALSE; } memset(tszKey, '\0', sizeof(tszKey)); @@ -326,7 +326,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return XFALSE; } memset(tszKey, '\0', sizeof(tszKey)); @@ -360,5 +360,5 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("HTTP客户端:%s,协议错误"), lpszClientAddr); } BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp index 08460e4..b20acf4 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp @@ -10,7 +10,7 @@ // Purpose: 主要入口函数 // History: *********************************************************************/ -XBOOL bIsRun = FALSE; +XBOOL bIsRun = XFALSE; XHANDLE xhLog = NULL; //HTTP服务器 XHANDLE xhHTTPSocket = NULL; @@ -29,7 +29,7 @@ void ServiceApp_Stop(int signo) if (bIsRun) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("服务器退出...")); - bIsRun = FALSE; + bIsRun = XFALSE; //销毁HTTP资源 NetCore_TCPXCore_DestroyEx(xhHTTPSocket); SocketOpt_HeartBeat_DestoryEx(xhHTTPHeart); @@ -89,7 +89,7 @@ int main(int argc, char** argv) WSADATA st_WSAData; WSAStartup(MAKEWORD(2, 2), &st_WSAData); #endif - bIsRun = TRUE; + bIsRun = XTRUE; LPCXSTR lpszHTTPMime = _T("./XEngine_Config/HttpMime.types"); LPCXSTR lpszHTTPCode = _T("./XEngine_Config/HttpCode.types"); LPCXSTR lpszLogFile = _T("./XEngine_Log/XEngine_HttpApp.Log"); @@ -316,7 +316,7 @@ int main(int argc, char** argv) XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,加载的Lib插件:%d 个,Lua插件:%d 个"), st_PluginLibConfig.pStl_ListPlugin->size(), st_PluginLuaConfig.pStl_ListPlugin->size()); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("所有服务成功启动,服务运行中,XEngine版本:%s,发行版本次数:%d,当前版本:%s。。。"), BaseLib_OperatorVer_XGetStr(), st_ServiceConfig.st_XVer.pStl_ListVer->size(), st_ServiceConfig.st_XVer.pStl_ListVer->front().c_str()); - while (TRUE) + while (XTRUE) { std::this_thread::sleep_for(std::chrono::seconds(1)); } @@ -325,7 +325,7 @@ XENGINE_SERVICEAPP_EXIT: if (bIsRun) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("有服务启动失败,服务器退出...")); - bIsRun = FALSE; + bIsRun = XFALSE; //销毁HTTP资源 NetCore_TCPXCore_DestroyEx(xhHTTPSocket); SocketOpt_HeartBeat_DestoryEx(xhHTTPHeart); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj index 9d1721f..dcdbe8b 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj @@ -163,6 +163,7 @@ + @@ -177,6 +178,7 @@ + diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters index 80af76d..c4583d2 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters @@ -78,6 +78,9 @@ 源文件\XEngine_TaskPost + + 源文件\XEngine_TaskGet + @@ -131,5 +134,8 @@ 头文件\XEngine_TaskPost + + 头文件\XEngine_TaskGet + \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp index f4c2469..7f76302 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp @@ -16,7 +16,7 @@ XBOOL CALLBACK Network_Callback_HTTPLogin(LPCXSTR lpszClientAddr, XSOCKET hSocke SocketOpt_HeartBeat_InsertAddrEx(xhHTTPHeart, lpszClientAddr); HttpProtocol_Server_CreateClientEx(xhHTTPPacket, lpszClientAddr, 0); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,连接到服务器"), lpszClientAddr); - return TRUE; + return XTRUE; } void CALLBACK Network_Callback_HTTPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam) { @@ -30,11 +30,11 @@ void CALLBACK Network_Callback_HTTPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, } void CALLBACK Network_Callback_HTTPLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { - XEngine_Network_Close(lpszClientAddr, FALSE); + XEngine_Network_Close(lpszClientAddr, XFALSE); } void CALLBACK Network_Callback_HTTPHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam) { - XEngine_Network_Close(lpszClientAddr, TRUE); + XEngine_Network_Close(lpszClientAddr, XTRUE); } //////////////////////////////////////////////////////////////////////////网络IO关闭操作 void XEngine_Network_Close(LPCXSTR lpszClientAddr, XBOOL bHeart) @@ -57,9 +57,9 @@ XBOOL XEngine_Network_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nM if (!NetCore_TCPXCore_SendEx(xhHTTPSocket, lpszClientAddr, lpszMsgBuffer, nMsgLen)) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送数据失败,错误:%lX"), lpszClientAddr, NetCore_GetLastError()); - return FALSE; + return XFALSE; } //发送成功激活一次心跳 SocketOpt_HeartBeat_ActiveAddrEx(xhHTTPHeart, lpszClientAddr); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp index 25767b2..531b44a 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp @@ -22,7 +22,7 @@ XBOOL XEngine_PluginTask_Handle(LPCXSTR lpszMethodName, LPCXSTR lpszClientAddr, memset(tszPktBuffer, '\0', sizeof(tszPktBuffer)); memset(&st_HDRParament, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); - st_HDRParament.bIsClose = TRUE; + st_HDRParament.bIsClose = XTRUE; st_HDRParament.nHttpCode = 200; _tcscpy(st_HDRParament.tszMimeType, "json"); @@ -38,5 +38,5 @@ XBOOL XEngine_PluginTask_Handle(LPCXSTR lpszMethodName, LPCXSTR lpszClientAddr, XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的方法:%s,由%s插件模块处理失败,错误:%lX"), lpszClientAddr, lpszMethodName, 0 == nPluginType ? "Lib" : "Lua", ModulePlugin_GetLastError()); } XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp index e465d43..1e0fb2f 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp @@ -20,7 +20,7 @@ XBOOL HTTPTask_TaskGet_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber) memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 _tcscpy(st_BankInfo.tszBankNumber, lpszBankNumber); _stprintf(tszUrlBuffer, st_ServiceConfig.st_XApi.tszBankUrl, lpszBankNumber); @@ -33,7 +33,7 @@ XBOOL HTTPTask_TaskGet_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber) HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的银行卡号码错误:%s"), lpszClientAddr, lpszBankNumber); - return FALSE; + return XFALSE; } BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); //查询对应名称 @@ -43,12 +43,12 @@ XBOOL HTTPTask_TaskGet_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber) HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的银行卡信息没有找到:%s"), lpszClientAddr, lpszBankNumber); - return FALSE; + return XFALSE; } //打包发送 ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, &st_BankInfo); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,发送银行卡信息获取请求给服务器,查询号码:%s"), lpszClientAddr, lpszBankNumber); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp index 6e6fcba..bbca1bb 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp @@ -17,7 +17,7 @@ XBOOL HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer) memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 if (!ModuleProtocol_Parse_IDCard(lpszMsgBuffer, &st_IDCardInfo)) { @@ -25,7 +25,7 @@ XBOOL HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer) HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的身份证编号不正确:%s"), lpszClientAddr, lpszMsgBuffer); - return FALSE; + return XFALSE; } //验证身份证是否正确 if (!ModuleHelp_IDCard_CheckBirth(&st_IDCardInfo)) @@ -34,7 +34,7 @@ XBOOL HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer) HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的身份证验证生日失败:%s"), lpszClientAddr, lpszMsgBuffer); - return FALSE; + return XFALSE; } if (!ModuleHelp_IDCard_CheckSum(&st_IDCardInfo)) { @@ -42,12 +42,12 @@ XBOOL HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer) HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的身份证验证校验码失败:%s"), lpszClientAddr, lpszMsgBuffer); - return FALSE; + return XFALSE; } ModuleDatabase_IDCard_QueryRegion(&st_IDRegion, &st_IDCardInfo); ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, &st_IDCardInfo, &st_IDRegion); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求身份证号码验证与信息查询成功,号码:%s"), lpszClientAddr, lpszMsgBuffer); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp index 508799e..d8485fc 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp @@ -16,7 +16,7 @@ XBOOL HTTPTask_TaskGet_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 st_LanguageInfo.enType = nConvertType; OPenSsl_Codec_UrlDeCodec(lpszMsgBuffer, _tcslen(lpszMsgBuffer), st_LanguageInfo.tszSourceStr); @@ -81,5 +81,5 @@ XBOOL HTTPTask_TaskGet_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求语言转换成功,原始语言:%s,目标语言:%s"), lpszClientAddr, st_LanguageInfo.tszSourceStr, st_LanguageInfo.tszDestStr); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp index 02a9c90..ec0a133 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp @@ -13,7 +13,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_CREATE == enLockType) { //创建 @@ -34,7 +34,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求打开锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return FALSE; + return XFALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); @@ -58,7 +58,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求读加锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return FALSE; + return XFALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); @@ -74,7 +74,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求读解锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return FALSE; + return XFALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); @@ -90,7 +90,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求写加锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return FALSE; + return XFALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); @@ -106,7 +106,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求写解锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return FALSE; + return XFALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); @@ -120,5 +120,5 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求了一条未知的子协议:%d"), lpszClientAddr, enLockType); } - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.cpp index 28e5b21..be1d2f4 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.cpp @@ -14,7 +14,7 @@ XBOOL HTTPTask_TaskGet_OPTions(LPCXSTR lpszClientAddr) memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 //解析能力配置 XENGINE_OPTIONLIST st_OPtionList; LPCXSTR lpszOPFile = _T("./XEngine_Config/XEngine_OPtionConfig.json"); @@ -25,7 +25,7 @@ XBOOL HTTPTask_TaskGet_OPTions(LPCXSTR lpszClientAddr) HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,查询服务器能力失败,没有找到配置文件"), lpszClientAddr); - return FALSE; + return XFALSE; } nPktLen = fread(tszPktBuffer, 1, nPktLen, pSt_File); fclose(pSt_File); @@ -33,5 +33,5 @@ XBOOL HTTPTask_TaskGet_OPTions(LPCXSTR lpszClientAddr) HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,查询服务器能力成功"), lpszClientAddr); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp index 013b2b6..5ef5796 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp @@ -21,7 +21,7 @@ XBOOL HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 st_LanguageInfo.enType = nConvertType; //转换类型 @@ -32,7 +32,7 @@ XBOOL HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的翻译类型不正确:%d,原始字符串:%s"), lpszClientAddr, nConvertType, lpszMsgBuffer); - return FALSE; + return XFALSE; } _stprintf(tszUrlBuffer, st_ServiceConfig.st_XApi.tszTranslationUrl, tszTypeBuffer, lpszMsgBuffer); APIClient_Http_Request(_T("GET"), tszUrlBuffer, NULL, NULL, &ptszBodyBuffer, &nBLen); @@ -44,7 +44,7 @@ XBOOL HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的翻译失败,类型:%d,原始字符串:%s"), lpszClientAddr, nConvertType, lpszMsgBuffer); - return FALSE; + return XFALSE; } //打包发送 ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, &st_LanguageInfo); @@ -52,5 +52,5 @@ XBOOL HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求语言翻译成功,原始语言:%s,目标语言:%s"), lpszClientAddr, st_LanguageInfo.tszSourceStr, st_LanguageInfo.tszDestStr); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp index 3cfcada..df900c9 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp @@ -10,7 +10,7 @@ XBOOL HTTPTask_TastPost_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 //0发什么返回什么,1 仅仅返回确认 if (0 == nType) { @@ -22,5 +22,5 @@ XBOOL HTTPTask_TastPost_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int } XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求数据用例测试成功,请求的大小:%d,请求的类型:%d"), lpszClientAddr, nMsgLen, nType); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp index 8fb456b..dde33bd 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp @@ -15,7 +15,7 @@ XBOOL HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 ModuleProtocol_Parse_XLog(lpszMsgBuffer, nMsgLen, &st_XLogInfo); if (0 == nType) @@ -52,5 +52,5 @@ XBOOL HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求日志删除成功,删除的表:%s"), lpszClientAddr, st_XLogInfo.tszTableName); } - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp index d2a48f8..44974f3 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp @@ -17,7 +17,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_P2XP_REQLOGIN == unOperatorCode) { XENGINE_P2XP_PEERINFO st_ClientPeer; @@ -29,7 +29,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,处理登录错误,解析协议失败,错误码:%lX"), lpszClientAddr, ModuleProtocol_GetLastError()); - return FALSE; + return XFALSE; } //如果没有填充公用地址,用他的连接地址代替,外网服务器都可以这样做 if (_tcslen(st_ClientPeer.st_PeerAddr.tszPublicAddr) <= 0) @@ -42,7 +42,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, st_ClientPeer.st_PeerTimer.dwUserTime = time(NULL); st_ClientPeer.st_PeerTimer.dwKeepAlive = time(NULL); - st_ClientPeer.bIsLogin = TRUE; + st_ClientPeer.bIsLogin = XTRUE; _tcscpy(st_ClientPeer.st_PeerAddr.tszConnectAddr, lpszClientAddr); if (!ModuleHelp_P2PClient_Add(&st_ClientPeer)) { @@ -50,7 +50,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,处理登录错误,设置用户信息失败,错误码:%lX"), lpszClientAddr, ModuleHelp_GetLastError()); - return FALSE; + return XFALSE; } ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); @@ -68,7 +68,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,列表请求失败,协议解析错误,错误码:%lX"), lpszClientAddr, ModuleProtocol_GetLastError()); - return FALSE; + return XFALSE; } //请求同步列表 if (_tcslen(st_P2PProtocol.tszPrivateAddr) > 0) @@ -81,7 +81,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,列表请求失败,请求同步局域网列表失败,公有地址:%s,私有地址:%s,错误码:%lX"), lpszClientAddr, st_P2PProtocol.tszPublicAddr, st_P2PProtocol.tszPrivateAddr, ModuleHelp_GetLastError()); - return FALSE; + return XFALSE; } ModuleProtocol_Packet_P2PLan(tszRVBuffer, &nRVLen, &ppSt_ListClients, nListCount); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); @@ -129,5 +129,5 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求了一条未知的子协议:%lX"), lpszClientAddr, unOperatorCode); } - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp index 6aa58af..1c3a951 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp @@ -15,7 +15,7 @@ XBOOL HTTPTask_TastPost_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 ModuleProtocol_Parse_ZIPCode(lpszMsgBuffer, nMsgLen, &st_ZIPInfo); if (0 == nType) @@ -31,5 +31,5 @@ XBOOL HTTPTask_TastPost_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求查询邮政编码地址信息查询成功,查询邮编;%d,查询地址:%s"), lpszClientAddr, st_ZIPInfo.nZipCode, st_ZIPInfo.tszCounty); - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp index f596910..c033347 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp @@ -15,7 +15,7 @@ XBOOL HTTPTask_TaskPost_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 //0创建,1解析 if (0 == nType) { @@ -38,5 +38,5 @@ XBOOL HTTPTask_TaskPost_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in free(ptszSDBuffer); ptszRVBuffer = NULL; ptszSDBuffer = NULL; - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp index 072e929..785818c 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp @@ -62,7 +62,7 @@ XBOOL HTTPTask_TastPost_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 ModuleProtocol_Parse_SocketTest(lpszMsgBuffer, nMsgLen, pSt_SocketTest); //0创建,1删除 @@ -99,5 +99,5 @@ XBOOL HTTPTask_TastPost_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer delete pSt_SocketTest; pSt_SocketTest = NULL; } - return TRUE; + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_UserProtocol.h b/XEngine_Source/XEngine_UserProtocol.h index 9dbe72a..608b887 100644 --- a/XEngine_Source/XEngine_UserProtocol.h +++ b/XEngine_Source/XEngine_UserProtocol.h @@ -206,4 +206,12 @@ typedef struct bool bTCP; bool bConn; }XENGINE_SOCKETTEST; +//短连接 +typedef struct +{ + XCHAR tszFullUrl[MAX_PATH]; + XCHAR tszShotUrl[MAX_PATH]; + XCHAR tszKeyUrl[MAX_PATH]; + XCHAR tszCreateTime[128]; +}XENGINE_SHORTLINK; #pragma pack(pop) \ No newline at end of file -- Gitee From 9697081a0e1ba4ee8438e3ad6775fd06cd4a5f75 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 11 Apr 2023 13:56:02 +0800 Subject: [PATCH 09/26] added:short link database supported --- .../XEngine_ModuleDatabase/Makefile | 28 +-- .../XEngine_ModuleDatabase/ModuleDB_Define.h | 70 +++++- .../ModuleDatabase_ShortLink.cpp | 225 ++++++++++++++++++ .../ModuleDatabase_ShortLink.h | 29 +++ .../XEngine_ModuleDatabase.def | 8 +- .../XEngine_ModuleDatabase/dllmain.cpp | 2 +- XEngine_Source/XEngine_ModuleDatabase/pch.cpp | 27 ++- 7 files changed, 360 insertions(+), 29 deletions(-) create mode 100644 XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp create mode 100644 XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.h diff --git a/XEngine_Source/XEngine_ModuleDatabase/Makefile b/XEngine_Source/XEngine_ModuleDatabase/Makefile index 36acd5c..dfdd3b7 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/Makefile +++ b/XEngine_Source/XEngine_ModuleDatabase/Makefile @@ -10,20 +10,15 @@ LOADHDR = -I ./ LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_HelpComponents LIB = -lXEngine_BaseLib -lHelpComponents_DataBase LIBEX = -OBJECTS = ModuleDatabase_IDCard.o ModuleDatabase_Bank.o ModuleDatabase_ZIPCode.o ModuleDatabase_XLog.o pch.o +OBJECTS = ModuleDatabase_IDCard.o ModuleDatabase_Bank.o ModuleDatabase_ZIPCode.o ModuleDatabase_XLog.o ModuleDatabase_ShortLink.o pch.o ifeq ($(RELEASE),1) FLAGS = -c DEBUG = else -ifeq ($(PLATFORM),android) -FLAGS = -c -DEBUG = -g -else FLAGS = -c -lc_p DEBUG = -g -pg endif -endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE @@ -43,15 +38,6 @@ ifeq ($(PLATFORM),linux) LIBFLAG = -shared LIBEX = -lpthread -lrt -ldl LOADBIN = -Wl,-rpath=./,--disable-new-dtags -else ifeq ($(PLATFORM),android) - NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC - PLATVER = -D __ANDROID__ - PLATDIR = XEngine_Android - FILEEXT = so - LIBFLAG = -shared - LIBEX = -ldl - LOADBIN = -Wl,-rpath=./,--disable-new-dtags else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ @@ -60,16 +46,6 @@ else ifeq ($(PLATFORM),mac) LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ -else ifeq ($(PLATFORM),ios) - SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk - CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 - PLATVER = -D __IOS__ - PLATDIR = XEngine_IOS - FILEEXT = dylib - LIBFLAG = -dynamiclib - LIBEX = -lpthread -ldl - LOADBIN = -Wl,-rpath,@loader_path/./ -endif all:$(OBJECTS) @@ -83,6 +59,8 @@ ModuleDatabase_ZIPCode.o:./ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp ModuleDatabase_XLog.o:./ModuleDatabase_XLog/ModuleDatabase_XLog.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleDatabase_XLog/ModuleDatabase_XLog.cpp +ModuleDatabase_ShortLink.o:./ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp pch.o:./pch.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./pch.cpp diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h index 70808bc..1642e70 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h @@ -254,4 +254,72 @@ extern "C" XBOOL ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, i 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName); \ No newline at end of file +extern "C" XBOOL ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName); +/************************************************************************/ +/* 导出的短连接数据库函数 */ +/************************************************************************/ +/******************************************************************** +函数名称:ModuleDatabase_ShortLink_Init +函数功能:初始化SQLITE文件系统 + 参数.一:pSt_DBConnector + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:数据数据库信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" XBOOL ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); +/******************************************************************** +函数名称:ModuleDatabase_ShortLink_Destory +函数功能:销毁 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" XBOOL ModuleDatabase_ShortLink_Destory(); +/******************************************************************** +函数名称:ModuleDatabase_ShortLink_Insert +函数功能:插入一个短连接到数据库中 + 参数.一:pSt_SLinkInfo + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要插入的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" XBOOL ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLINK* pSt_SLinkInfo); +/******************************************************************** +函数名称:ModuleDatabase_ShortLink_Query +函数功能:查询短连接 + 参数.一:pSt_SLinkInfo + In/Out:In/Out + 类型:数据结构指针 + 可空:N + 意思:输入查询的短连接,输出完整的连接 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" XBOOL ModuleDatabase_ShortLink_Query(XENGINE_SHORTLINK* pSt_SLinkInfo); +/******************************************************************** +函数名称:ModuleDatabase_ShortLink_Delete +函数功能:删除短连接 + 参数.一:pSt_SLinkInfo + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要删除的短连接 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" XBOOL ModuleDatabase_ShortLink_Delete(XENGINE_SHORTLINK* pSt_SLinkInfo); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp new file mode 100644 index 0000000..4d7ee2b --- /dev/null +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp @@ -0,0 +1,225 @@ +#include "pch.h" +#include "ModuleDatabase_ShortLink.h" +/******************************************************************** +// Created: 2023/04/11 10:36:45 +// File Name: D:\XEngine_APIService\XEngine_Source\XEngine_ModuleDatabase\ModuleDatabase_ShortLink\ModuleDatabase_ShortLink.cpp +// File Path: D:\XEngine_APIService\XEngine_Source\XEngine_ModuleDatabase\ModuleDatabase_ShortLink +// File Base: ModuleDatabase_ShortLink +// File Ext: cpp +// Project: XEngine(网络通信引擎) +// Author: qyt +// Purpose: 短连接数据库管理器 +// History: +*********************************************************************/ +CModuleDatabase_ShortLink::CModuleDatabase_ShortLink() +{ +} +CModuleDatabase_ShortLink::~CModuleDatabase_ShortLink() +{ + +} +////////////////////////////////////////////////////////////////////////// +// 公有函数 +////////////////////////////////////////////////////////////////////////// +/******************************************************************** +函数名称:ModuleDatabase_ShortLink_Init +函数功能:初始化SQLITE文件系统 + 参数.一:pSt_DBConnector + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:数据数据库信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) +{ + DBModule_IsErrorOccur = XFALSE; + + if (NULL == pSt_DBConnector) + { + DBModule_IsErrorOccur = XTRUE; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; + return XFALSE; + } + //连接数据库 + _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APISLink")); + if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) + { + DBModule_IsErrorOccur = XTRUE; + DBModule_dwErrorCode = DataBase_GetLastError(); + return XFALSE; + } + return XTRUE; +} +/******************************************************************** +函数名称:ModuleDatabase_ShortLink_Destory +函数功能:销毁 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Destory() +{ + DBModule_IsErrorOccur = XFALSE; + + DataBase_MySQL_Close(xhDBSQL); + return XTRUE; +} +/******************************************************************** +函数名称:ModuleDatabase_ShortLink_Insert +函数功能:插入一个短连接到数据库中 + 参数.一:pSt_SLinkInfo + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要插入的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLINK* pSt_SLinkInfo) +{ + DBModule_IsErrorOccur = XFALSE; + + if (NULL == pSt_SLinkInfo) + { + DBModule_IsErrorOccur = XTRUE; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; + return XFALSE; + } + XCHAR tszSQLStatement[1024]; + memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); + + _stprintf(tszSQLStatement, _T("INSERT INTO `XEngine_ShortLink` (tszFullUrl,tszShortUrl,tszKeyUrl,tszMapUrl,tszCreateTime) VALUES('%s','%s','%s','%s','%s')"), pSt_SLinkInfo->tszFullUrl, pSt_SLinkInfo->tszShotUrl, pSt_SLinkInfo->tszKeyUrl, pSt_SLinkInfo->tszMapUrl, pSt_SLinkInfo->tszCreateTime); + if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) + { + DBModule_IsErrorOccur = XTRUE; + DBModule_dwErrorCode = DataBase_GetLastError(); + return XFALSE; + } + return XTRUE; +} +/******************************************************************** +函数名称:ModuleDatabase_ShortLink_Query +函数功能:查询短连接 + 参数.一:pSt_SLinkInfo + In/Out:In/Out + 类型:数据结构指针 + 可空:N + 意思:输入查询的短连接,输出完整的连接 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Query(XENGINE_SHORTLINK* pSt_SLinkInfo) +{ + DBModule_IsErrorOccur = XFALSE; + + if ((NULL == pSt_SLinkInfo)) + { + DBModule_IsErrorOccur = XTRUE; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; + return XFALSE; + } + //查询 + XNETHANDLE xhTable = 0; + __int64u nllLine = 0; + __int64u nllRow = 0; + + XCHAR tszSQLStatement[1024]; + memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); + //名称为,消息名为必填 + _stprintf_s(tszSQLStatement, _T("SELECT * FROM `XEngine_ShortLink` WHERE tszMapUrl = '%s'"), pSt_SLinkInfo->tszMapUrl); + if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nllLine, &nllRow)) + { + DBModule_IsErrorOccur = XTRUE; + DBModule_dwErrorCode = DataBase_GetLastError(); + return XFALSE; + } + if (nllLine <= 0) + { + DBModule_IsErrorOccur = XTRUE; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; + return XFALSE; + } + for (__int64u i = 0; i < nllLine; i++) + { + XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); + + if (NULL != pptszResult[0]) + { + pSt_SLinkInfo->nID = _ttoi(pptszResult[0]); + } + if (NULL != pptszResult[1]) + { + _tcscpy(pSt_SLinkInfo->tszFullUrl, pptszResult[1]); + } + if (NULL != pptszResult[2]) + { + _tcscpy(pSt_SLinkInfo->tszShotUrl, pptszResult[2]); + } + if (NULL != pptszResult[3]) + { + _tcscpy(pSt_SLinkInfo->tszKeyUrl, pptszResult[3]); + } + if (NULL != pptszResult[4]) + { + _tcscpy(pSt_SLinkInfo->tszMapUrl, pptszResult[4]); + } + if (NULL != pptszResult[5]) + { + _tcscpy(pSt_SLinkInfo->tszCreateTime, pptszResult[5]); + } + } + DataBase_MySQL_FreeResult(xhDBSQL, xhTable); + return XTRUE; +} +/******************************************************************** +函数名称:ModuleDatabase_ShortLink_Delete +函数功能:删除短连接 + 参数.一:pSt_SLinkInfo + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要删除的短连接 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Delete(XENGINE_SHORTLINK* pSt_SLinkInfo) +{ + DBModule_IsErrorOccur = XFALSE; + + if (NULL == pSt_SLinkInfo) + { + DBModule_IsErrorOccur = XTRUE; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; + return XFALSE; + } + XCHAR tszSQLStatement[1024]; + memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); + + if (_tcslen(pSt_SLinkInfo->tszFullUrl) > 0) + { + _stprintf(tszSQLStatement, _T("DELETE FROM `XEngine_ShortLink` WHERE tszFullUrl = '%s'"), pSt_SLinkInfo->tszFullUrl); + } + else + { + _stprintf(tszSQLStatement, _T("DELETE FROM `XEngine_ShortLink` WHERE tszMapUrl = '%s'"), pSt_SLinkInfo->tszMapUrl); + } + + if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) + { + DBModule_IsErrorOccur = XTRUE; + DBModule_dwErrorCode = DataBase_GetLastError(); + return XFALSE; + } + return XTRUE; +} \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.h new file mode 100644 index 0000000..c48bf57 --- /dev/null +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.h @@ -0,0 +1,29 @@ +#pragma once +/******************************************************************** +// Created: 2023/04/11 10:36:06 +// File Name: D:\XEngine_APIService\XEngine_Source\XEngine_ModuleDatabase\ModuleDatabase_ShortLink\ModuleDatabase_ShortLink.h +// File Path: D:\XEngine_APIService\XEngine_Source\XEngine_ModuleDatabase\ModuleDatabase_ShortLink +// File Base: ModuleDatabase_ShortLink +// File Ext: h +// Project: XEngine(网络通信引擎) +// Author: qyt +// Purpose: 短连接数据库管理器 +// History: +*********************************************************************/ + + +class CModuleDatabase_ShortLink +{ +public: + CModuleDatabase_ShortLink(); + ~CModuleDatabase_ShortLink(); +public: + XBOOL ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); + XBOOL ModuleDatabase_ShortLink_Destory(); + XBOOL ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLINK* pSt_SLinkInfo); + XBOOL ModuleDatabase_ShortLink_Query(XENGINE_SHORTLINK* pSt_SLinkInfo); + XBOOL ModuleDatabase_ShortLink_Delete(XENGINE_SHORTLINK* pSt_SLinkInfo); +protected: +private: + XNETHANDLE xhDBSQL; +}; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.def b/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.def index 63e7773..65e6cdb 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.def +++ b/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.def @@ -21,4 +21,10 @@ EXPORTS ModuleDatabase_XLog_Create ModuleDatabase_XLog_Insert ModuleDatabase_XLog_Query - ModuleDatabase_XLog_Delete \ No newline at end of file + ModuleDatabase_XLog_Delete + + ModuleDatabase_ShortLink_Init + ModuleDatabase_ShortLink_Destory + ModuleDatabase_ShortLink_Insert + ModuleDatabase_ShortLink_Query + ModuleDatabase_ShortLink_Delete \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp b/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp index f130bae..81c9f1a 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return XTRUE; } diff --git a/XEngine_Source/XEngine_ModuleDatabase/pch.cpp b/XEngine_Source/XEngine_ModuleDatabase/pch.cpp index 9ae8a8e..5cd7415 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/pch.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/pch.cpp @@ -3,6 +3,7 @@ #include "ModuleDatabase_Bank/ModuleDatabase_Bank.h" #include "ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.h" #include "ModuleDatabase_XLog/ModuleDatabase_XLog.h" +#include "ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.h" /******************************************************************** // Created: 2022/02/28 13:26:15 // File Name: D:\XEngine_IPInfo\XEngine_Source\XEngine_ModuleDatabase\pch.cpp @@ -14,13 +15,14 @@ // Purpose: 导出函数实现 // History: *********************************************************************/ -DWORD DBModule_IsErrorOccur = FALSE; +DWORD DBModule_IsErrorOccur = XFALSE; XBOOL DBModule_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleDatabase_IDCard m_IDCard; CModuleDatabase_Bank m_Bank; CModuleDatabase_ZIPCode m_ZIPCode; CModuleDatabase_XLog m_XLog; +CModuleDatabase_ShortLink m_ShortLink; ////////////////////////////////////////////////////////////////////////// /// 导出的函数 ////////////////////////////////////////////////////////////////////////// @@ -107,4 +109,27 @@ extern "C" XBOOL ModuleDatabase_XLog_Query(XENGINE_XLOGINFO * **pppSt_XLogInfo, extern "C" XBOOL ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName) { return m_XLog.ModuleDatabase_XLog_Delete(lpszTableName); +} +/************************************************************************/ +/* 导出的短连接数据库函数 */ +/************************************************************************/ +extern "C" XBOOL ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) +{ + return m_ShortLink.ModuleDatabase_ShortLink_Init(pSt_DBConnector); +} +extern "C" XBOOL ModuleDatabase_ShortLink_Destory() +{ + return m_ShortLink.ModuleDatabase_ShortLink_Destory(); +} +extern "C" XBOOL ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLINK * pSt_SLinkInfo) +{ + return m_ShortLink.ModuleDatabase_ShortLink_Insert(pSt_SLinkInfo); +} +extern "C" XBOOL ModuleDatabase_ShortLink_Query(XENGINE_SHORTLINK * pSt_SLinkInfo) +{ + return m_ShortLink.ModuleDatabase_ShortLink_Query(pSt_SLinkInfo); +} +extern "C" XBOOL ModuleDatabase_ShortLink_Delete(XENGINE_SHORTLINK * pSt_SLinkInfo) +{ + return m_ShortLink.ModuleDatabase_ShortLink_Delete(pSt_SLinkInfo); } \ No newline at end of file -- Gitee From 6684a8037675c7a01a487adbd669e271805697ec Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 11 Apr 2023 13:56:23 +0800 Subject: [PATCH 10/26] added:short link protocol parse and packet support --- .../ModuleProtocol_Define.h | 50 ++++++++++++- .../ModuleProtocol_Packet.cpp | 53 +++++++++++++ .../ModuleProtocol_Packet.h | 1 + .../ModuleProtocol_Parse.cpp | 75 +++++++++++++++++++ .../ModuleProtocol_Parse.h | 1 + .../XEngine_ModuleProtocol.def | 4 +- XEngine_Source/XEngine_ModuleProtocol/pch.cpp | 8 ++ 7 files changed, 190 insertions(+), 2 deletions(-) diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h index e1b3f57..c6ebceb 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h @@ -433,6 +433,30 @@ extern "C" XBOOL ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuffer, int* pIn 备注: *********************************************************************/ extern "C" XBOOL ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount); +/******************************************************************** +函数名称:ModuleProtocol_Packet_ShortLink +函数功能:短连接生成协议打包函数 + 参数.一:ptszMsgBuffer + In/Out:Out + 类型:字符指针 + 可空:N + 意思:输出打包的数据信息 + 参数.二:pInt_MsgLen + In/Out:Out + 类型:整数型指针 + 可空:N + 意思:输出打包大小 + 参数.三:pSt_ShortLink + In/Out:In + 类型:数据结构 + 可空:N + 意思:输入要打包的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" XBOOL ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_SHORTLINK* pSt_ShortLink); /************************************************************************/ /* 导出的协议解析函数 */ /************************************************************************/ @@ -622,4 +646,28 @@ extern "C" XBOOL ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest); \ No newline at end of file +extern "C" XBOOL ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest); +/******************************************************************** +函数名称:ModuleProtocol_Parse_ShortLink +函数功能:短连接协议解析 + 参数.一:lpszMsgBuffer + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:输入要解析的数据 + 参数.二:nMsgLen + In/Out:In + 类型:整数型 + 可空:N + 意思:pSt_SocketTest + 参数.三:pSt_ShortLink + In/Out:Out + 类型:数据结构指针 + 可空:N + 意思:输出解析好的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" XBOOL ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SHORTLINK* pSt_ShortLink); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp index 54cafe9..13a973f 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp @@ -662,6 +662,59 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuff return XTRUE; } /******************************************************************** +函数名称:ModuleProtocol_Packet_ShortLink +函数功能:短连接生成协议打包函数 + 参数.一:ptszMsgBuffer + In/Out:Out + 类型:字符指针 + 可空:N + 意思:输出打包的数据信息 + 参数.二:pInt_MsgLen + In/Out:Out + 类型:整数型指针 + 可空:N + 意思:输出打包大小 + 参数.三:pSt_ShortLink + In/Out:In + 类型:数据结构 + 可空:N + 意思:输入要打包的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_SHORTLINK* pSt_ShortLink) +{ + ModuleProtocol_IsErrorOccur = XFALSE; + + if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) + { + ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; + return XFALSE; + } + Json::Value st_JsonRoot; + Json::Value st_JsonObject; + Json::StreamWriterBuilder st_JsonBuilder; + + st_JsonObject["tszFullUrl"] = pSt_ShortLink->tszFullUrl; + st_JsonObject["tszShotUrl"] = pSt_ShortLink->tszShotUrl; + st_JsonObject["tszKeyUrl"] = pSt_ShortLink->tszKeyUrl; + st_JsonObject["tszMapUrl"] = pSt_ShortLink->tszMapUrl; + st_JsonObject["tszCvtUrl"] = pSt_ShortLink->tszCvtUrl; + st_JsonObject["tszCreateTime"] = pSt_ShortLink->tszCreateTime; + + st_JsonRoot["code"] = 0; + st_JsonRoot["msg"] = "success"; + st_JsonRoot["data"] = st_JsonObject; + st_JsonBuilder["emitUTF8"] = true; + + *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); + memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); + return XTRUE; +} +/******************************************************************** 函数名称:ModuleProtocol_Packet_P2PLan 函数功能:响应同步局域网地址列表 参数.一:ptszMsgBuffer diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h index 6caa287..6762799 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h @@ -31,6 +31,7 @@ public: XBOOL ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount); XBOOL ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus); XBOOL ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken); + XBOOL ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_SHORTLINK* pSt_ShortLink); public: XBOOL ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount); XBOOL ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients); diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp index 53bd1fe..723340f 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp @@ -621,4 +621,79 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuff pSt_SocketTest->st_SocketData.nSDLen = st_JsonRoot["nSDLen"].asInt(); } return XTRUE; +} +/******************************************************************** +函数名称:ModuleProtocol_Parse_ShortLink +函数功能:短连接协议解析 + 参数.一:lpszMsgBuffer + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:输入要解析的数据 + 参数.二:nMsgLen + In/Out:In + 类型:整数型 + 可空:N + 意思:pSt_SocketTest + 参数.三:pSt_ShortLink + In/Out:Out + 类型:数据结构指针 + 可空:N + 意思:输出解析好的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SHORTLINK* pSt_ShortLink) +{ + ModuleProtocol_IsErrorOccur = XFALSE; + + if ((NULL == lpszMsgBuffer) || (NULL == pSt_ShortLink)) + { + ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; + return XFALSE; + } + Json::Value st_JsonRoot; + JSONCPP_STRING st_JsonError; + Json::CharReaderBuilder st_ReaderBuilder; + //解析JSON + std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); + if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) + { + ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; + return XFALSE; + } + + if (!st_JsonRoot["tszFullUrl"].isNull()) + { + _tcscpy(pSt_ShortLink->tszFullUrl, st_JsonRoot["tszFullUrl"].asCString()); + } + if (!st_JsonRoot["tszShotUrl"].isNull()) + { + _tcscpy(pSt_ShortLink->tszShotUrl, st_JsonRoot["tszShotUrl"].asCString()); + } + if (!st_JsonRoot["tszKeyUrl"].isNull()) + { + _tcscpy(pSt_ShortLink->tszKeyUrl, st_JsonRoot["tszKeyUrl"].asCString()); + } + if (!st_JsonRoot["tszMapUrl"].isNull()) + { + _tcscpy(pSt_ShortLink->tszMapUrl, st_JsonRoot["tszMapUrl"].asCString()); + } + if (!st_JsonRoot["tszCvtUrl"].isNull()) + { + _tcscpy(pSt_ShortLink->tszCvtUrl, st_JsonRoot["tszCvtUrl"].asCString()); + } + if (!st_JsonRoot["tszCreateTime"].isNull()) + { + _tcscpy(pSt_ShortLink->tszCreateTime, st_JsonRoot["tszCreateTime"].asCString()); + } + if (!st_JsonRoot["nLength"].isNull()) + { + pSt_ShortLink->nLength = st_JsonRoot["nLength"].asInt(); + } + return XTRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h index 684c129..cbb205c 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h @@ -26,5 +26,6 @@ public: XBOOL ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo); XBOOL ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode); XBOOL ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest); + XBOOL ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SHORTLINK* pSt_ShortLink); private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/XEngine_ModuleProtocol.def b/XEngine_Source/XEngine_ModuleProtocol/XEngine_ModuleProtocol.def index c7f4517..cfd7093 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/XEngine_ModuleProtocol.def +++ b/XEngine_Source/XEngine_ModuleProtocol/XEngine_ModuleProtocol.def @@ -12,6 +12,7 @@ EXPORTS ModuleProtocol_Packet_Log ModuleProtocol_Packet_TestReport ModuleProtocol_Packet_TestReply + ModuleProtocol_Packet_ShortLink ModuleProtocol_Packet_P2PLan ModuleProtocol_Packet_P2PWLan ModuleProtocol_Packet_P2PUser @@ -24,4 +25,5 @@ EXPORTS ModuleProtocol_Parse_ZIPCode ModuleProtocol_Parse_XLog ModuleProtocol_Parse_QRCode - ModuleProtocol_Parse_SocketTest \ No newline at end of file + ModuleProtocol_Parse_SocketTest + ModuleProtocol_Parse_ShortLink \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/pch.cpp b/XEngine_Source/XEngine_ModuleProtocol/pch.cpp index 592a39b..342fd4c 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/pch.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/pch.cpp @@ -67,6 +67,10 @@ extern "C" XBOOL ModuleProtocol_Packet_TestReply(XCHAR * ptszMsgBuffer, int* pIn { return m_ProtocolPacket.ModuleProtocol_Packet_TestReply(ptszMsgBuffer, pInt_MsgLen, xhToken); } +extern "C" XBOOL ModuleProtocol_Packet_ShortLink(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_SHORTLINK * pSt_ShortLink) +{ + return m_ProtocolPacket.ModuleProtocol_Packet_ShortLink(ptszMsgBuffer, pInt_MsgLen, pSt_ShortLink); +} extern "C" XBOOL ModuleProtocol_Packet_P2PLan(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL * **pppSt_ListClients, int nListCount) { return m_ProtocolPacket.ModuleProtocol_Packet_P2PLan(ptszMsgBuffer, pInt_MsgLen, pppSt_ListClients, nListCount); @@ -117,4 +121,8 @@ extern "C" XBOOL ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, extern "C" XBOOL ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST * pSt_SocketTest) { return m_ProtocolParse.ModuleProtocol_Parse_SocketTest(lpszMsgBuffer, nMsgLen, pSt_SocketTest); +} +extern "C" XBOOL ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SHORTLINK * pSt_ShortLink) +{ + return m_ProtocolParse.ModuleProtocol_Parse_ShortLink(lpszMsgBuffer, nMsgLen, pSt_ShortLink); } \ No newline at end of file -- Gitee From bdbdd8cd7086e35161ed9e8029fed1722ba279d8 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 11 Apr 2023 13:56:53 +0800 Subject: [PATCH 11/26] added:short link api support --- .../XEngine_HttpApp/XEngine_HTTPTask.cpp | 12 +++- .../XEngine_HttpApp/XEngine_Hdr.h | 1 + .../XEngine_HttpApp/XEngine_HttpApp.cpp | 8 +++ .../XEngine_HttpApp/XEngine_HttpApp.vcxproj | 4 +- .../XEngine_HttpApp.vcxproj.filters | 8 +-- .../XEngine_TaskPost/TaskPost_ShortLink.cpp | 70 +++++++++++++++++++ .../XEngine_TaskPost/TaskPost_ShortLink.h | 3 + XEngine_Source/XEngine_UserProtocol.h | 4 ++ 8 files changed, 103 insertions(+), 7 deletions(-) create mode 100644 XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp create mode 100644 XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.h diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp index 78e7c73..603724a 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp @@ -94,13 +94,14 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS LPCXSTR lpszParamLanguage = _T("language"); LPCXSTR lpszParamTranslation = _T("translation"); LPCXSTR lpszParamLocker = _T("lock"); - LPCXSTR lpszParamQRCode = _T("qrcode"); //post LPCXSTR lpszParamP2PClient = _T("p2p"); LPCXSTR lpszParamZIPCode = _T("zipcode"); LPCXSTR lpszParamXLog = _T("log"); + LPCXSTR lpszParamQRCode = _T("qrcode"); LPCXSTR lpszParamSocket = _T("socket"); LPCXSTR lpszParamDTest = _T("dtest"); + LPCXSTR lpszParamShortLink = _T("slink"); memset(tszKey, '\0', MAX_PATH); memset(tszValue, '\0', MAX_PATH); @@ -236,6 +237,15 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS } HTTPTask_TastPost_DTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); } + else if (0 == _tcsnicmp(lpszParamShortLink, tszValue, _tcslen(lpszParamShortLink))) + { + //短连接:http://app.xyry.org:5501/api?function=slink¶ms1=0 + XCHAR tszType[64]; + memset(tszType, '\0', sizeof(tszType)); + + BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszType); + HTTPTask_TaskPost_ShortLink(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszType)); + } else { st_HDRParam.nHttpCode = 404; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h index ddd8249..7c9e8cd 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h @@ -65,6 +65,7 @@ using namespace std; #include "XEngine_TaskPost/TaskPost_PostCode.h" #include "XEngine_TaskPost/TaskPost_SocketTest.h" #include "XEngine_TaskPost/TaskPost_QRCode.h" +#include "XEngine_TaskPost/TaskPost_ShortLink.h" //get #include "XEngine_TaskGet/TaskGet_IDCard.h" #include "XEngine_TaskGet/TaskGet_Bank.h" diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp index b20acf4..473c59e 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp @@ -40,6 +40,7 @@ void ServiceApp_Stop(int signo) ModuleDatabase_Bank_Destory(); ModuleDatabase_ZIPCode_Destory(); ModuleDatabase_XLog_Destory(); + ModuleDatabase_ShortLink_Destory(); //销毁其他 ModulePlugin_LibCore_Destroy(); ModulePlugin_LuaCore_Destroy(); @@ -190,6 +191,12 @@ int main(int argc, char** argv) goto XENGINE_SERVICEAPP_EXIT; } XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化日志信息数据库成功")); + if (!ModuleDatabase_ShortLink_Init((DATABASE_MYSQL_CONNECTINFO*)&st_ServiceConfig.st_XSql)) + { + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化短连接数据库失败,错误:%lX"), ModuleDB_GetLastError()); + goto XENGINE_SERVICEAPP_EXIT; + } + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化短连接数据库成功")); //启动HTTP服务相关代码 if (st_ServiceConfig.nHttpPort > 0) { @@ -336,6 +343,7 @@ XENGINE_SERVICEAPP_EXIT: ModuleDatabase_Bank_Destory(); ModuleDatabase_ZIPCode_Destory(); ModuleDatabase_XLog_Destory(); + ModuleDatabase_ShortLink_Destory(); //销毁其他 ModulePlugin_LibCore_Destroy(); ModulePlugin_LuaCore_Destroy(); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj index dcdbe8b..fad7fc0 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj @@ -163,13 +163,13 @@ - + @@ -178,13 +178,13 @@ - + diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters index c4583d2..b756c10 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters @@ -78,8 +78,8 @@ 源文件\XEngine_TaskPost - - 源文件\XEngine_TaskGet + + 源文件\XEngine_TaskPost @@ -134,8 +134,8 @@ 头文件\XEngine_TaskPost - - 头文件\XEngine_TaskGet + + 头文件\XEngine_TaskPost \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp new file mode 100644 index 0000000..a304a92 --- /dev/null +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp @@ -0,0 +1,70 @@ +#include "../XEngine_Hdr.h" + +XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) +{ + int nSDLen = 0; + int nRVLen = 0; + XCHAR tszSDBuffer[4096]; + XCHAR tszRVBuffer[4096]; + XENGINE_SHORTLINK st_ShortLink; + RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 + + memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); + memset(tszRVBuffer, '\0', sizeof(tszRVBuffer)); + memset(&st_ShortLink, '\0', sizeof(XENGINE_SHORTLINK)); + memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); + + st_HDRParam.nHttpCode = 200; //HTTP CODE码 + st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 + + ModuleProtocol_Parse_ShortLink(lpszMsgBuffer, nMsgLen, &st_ShortLink); + //0生成,1还原,2删除 + if (0 == nType) + { + BaseLib_OperatorTime_TimeToStr(st_ShortLink.tszCreateTime); + if (!HttpProtocol_ServerHelp_ShortLink(st_ShortLink.tszFullUrl, st_ShortLink.tszShotUrl, st_ShortLink.tszKeyUrl, st_ShortLink.nLength, st_ShortLink.tszCvtUrl)) + { + st_HDRParam.nHttpCode = 400; + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); + XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求生成短连接生成错误,生成的连接:%s,替换的连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszCvtUrl, HttpProtocol_GetLastError()); + return XFALSE; + } + _stprintf(st_ShortLink.tszMapUrl, _T("%s/%s"), st_ShortLink.tszShotUrl, st_ShortLink.tszKeyUrl); + if (!ModuleDatabase_ShortLink_Insert(&st_ShortLink)) + { + st_HDRParam.nHttpCode = 400; + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); + XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求生成短连接插入数据库错误,生成的连接:%s,替换的连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszCvtUrl, ModuleDB_GetLastError()); + return XFALSE; + } + } + else if (1 == nType) + { + if (!ModuleDatabase_ShortLink_Query(&st_ShortLink)) + { + st_HDRParam.nHttpCode = 400; + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); + XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求获取短连接错误,连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszMapUrl, ModuleDB_GetLastError()); + return XFALSE; + } + } + else + { + if (!ModuleDatabase_ShortLink_Delete(&st_ShortLink)) + { + st_HDRParam.nHttpCode = 400; + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); + XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求删除短连接错误,完整地址:%s,映射地址:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszMapUrl, ModuleDB_GetLastError()); + return XFALSE; + } + } + ModuleProtocol_Packet_ShortLink(tszRVBuffer, &nRVLen, &st_ShortLink); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求操作短连接成功,操作类型:%d,完整地址URL:%s,映射URL:%s"), lpszClientAddr, nType, st_ShortLink.tszFullUrl, st_ShortLink.tszMapUrl); + return XTRUE; +} \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.h new file mode 100644 index 0000000..34076ba --- /dev/null +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.h @@ -0,0 +1,3 @@ +#pragma once + +XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_UserProtocol.h b/XEngine_Source/XEngine_UserProtocol.h index 608b887..7979404 100644 --- a/XEngine_Source/XEngine_UserProtocol.h +++ b/XEngine_Source/XEngine_UserProtocol.h @@ -212,6 +212,10 @@ typedef struct XCHAR tszFullUrl[MAX_PATH]; XCHAR tszShotUrl[MAX_PATH]; XCHAR tszKeyUrl[MAX_PATH]; + XCHAR tszMapUrl[MAX_PATH]; + XCHAR tszCvtUrl[MAX_PATH]; XCHAR tszCreateTime[128]; + int nLength; + int nID; }XENGINE_SHORTLINK; #pragma pack(pop) \ No newline at end of file -- Gitee From d2b597216577798580e7a02ae3264304a31782c3 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 11 Apr 2023 14:12:11 +0800 Subject: [PATCH 12/26] modify:makefile --- .../XEngine_ModuleConfigure/Makefile | 23 ------ .../XEngine_ModuleDatabase/Makefile | 1 + XEngine_Source/XEngine_ModuleHelp/Makefile | 23 ------ XEngine_Source/XEngine_ModulePlugin/Makefile | 23 ------ .../XEngine_ModuleProtocol/Makefile | 23 ------ .../ModulePlugin_BMIndex/Makefile | 23 ------ .../ModulePlugin_IPAddr/Makefile | 23 ------ .../ModulePlugin_Meter/Makefile | 23 ------ .../ModulePlugin_Password/Makefile | 23 ------ .../ModulePlugin_Phone/Makefile | 23 ------ .../ModulePlugin_Timezone/Makefile | 23 ------ .../ModulePlugin_Zodiac/Makefile | 23 ------ .../XEngine_HttpApp/Makefile | 75 +++++++------------ .../XEngine_ThirdPart/jsoncpp/Makefile | 23 ------ 14 files changed, 30 insertions(+), 322 deletions(-) diff --git a/XEngine_Source/XEngine_ModuleConfigure/Makefile b/XEngine_Source/XEngine_ModuleConfigure/Makefile index ff75027..1584487 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/Makefile +++ b/XEngine_Source/XEngine_ModuleConfigure/Makefile @@ -16,14 +16,9 @@ ifeq ($(RELEASE),1) FLAGS = -c DEBUG = else -ifeq ($(PLATFORM),android) -FLAGS = -c -DEBUG = -g -else FLAGS = -c -lc_p DEBUG = -g -pg endif -endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE @@ -43,15 +38,6 @@ ifeq ($(PLATFORM),linux) LIBFLAG = -shared LIBEX = -lpthread -lrt -ldl LOADBIN = -Wl,-rpath=./,--disable-new-dtags -else ifeq ($(PLATFORM),android) - NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC - PLATVER = -D __ANDROID__ - PLATDIR = XEngine_Android - FILEEXT = so - LIBFLAG = -shared - LIBEX = -ldl - LOADBIN = -Wl,-rpath=./,--disable-new-dtags else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ @@ -60,15 +46,6 @@ else ifeq ($(PLATFORM),mac) LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ -else ifeq ($(PLATFORM),ios) - SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk - CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 - PLATVER = -D __IOS__ - PLATDIR = XEngine_IOS - FILEEXT = dylib - LIBFLAG = -dynamiclib - LIBEX = -lpthread -ldl - LOADBIN = -Wl,-rpath,@loader_path/./ endif diff --git a/XEngine_Source/XEngine_ModuleDatabase/Makefile b/XEngine_Source/XEngine_ModuleDatabase/Makefile index dfdd3b7..1932c17 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/Makefile +++ b/XEngine_Source/XEngine_ModuleDatabase/Makefile @@ -46,6 +46,7 @@ else ifeq ($(PLATFORM),mac) LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ +endif all:$(OBJECTS) diff --git a/XEngine_Source/XEngine_ModuleHelp/Makefile b/XEngine_Source/XEngine_ModuleHelp/Makefile index dcfb89b..c9e80da 100644 --- a/XEngine_Source/XEngine_ModuleHelp/Makefile +++ b/XEngine_Source/XEngine_ModuleHelp/Makefile @@ -17,14 +17,9 @@ ifeq ($(RELEASE),1) FLAGS = -c DEBUG = else -ifeq ($(PLATFORM),android) -FLAGS = -c -DEBUG = -g -else FLAGS = -c -lc_p DEBUG = -g -pg endif -endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE @@ -44,15 +39,6 @@ ifeq ($(PLATFORM),linux) LIBFLAG = -shared LIBEX = -lpthread -lrt -ldl LOADBIN = -Wl,-rpath=./,--disable-new-dtags -else ifeq ($(PLATFORM),android) - NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC - PLATVER = -D __ANDROID__ - PLATDIR = XEngine_Android - FILEEXT = so - LIBFLAG = -shared - LIBEX = -ldl - LOADBIN = -Wl,-rpath=./,--disable-new-dtags else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ @@ -61,15 +47,6 @@ else ifeq ($(PLATFORM),mac) LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ -else ifeq ($(PLATFORM),ios) - SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk - CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 - PLATVER = -D __IOS__ - PLATDIR = XEngine_IOS - FILEEXT = dylib - LIBFLAG = -dynamiclib - LIBEX = -lpthread -ldl - LOADBIN = -Wl,-rpath,@loader_path/./ endif diff --git a/XEngine_Source/XEngine_ModulePlugin/Makefile b/XEngine_Source/XEngine_ModulePlugin/Makefile index 69527ad..193f9a3 100644 --- a/XEngine_Source/XEngine_ModulePlugin/Makefile +++ b/XEngine_Source/XEngine_ModulePlugin/Makefile @@ -16,14 +16,9 @@ ifeq ($(RELEASE),1) FLAGS = -c DEBUG = else -ifeq ($(PLATFORM),android) -FLAGS = -c -DEBUG = -g -else FLAGS = -c -lc_p DEBUG = -g -pg endif -endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE @@ -44,15 +39,6 @@ ifeq ($(PLATFORM),linux) LIB += -llua5.3 LIBEX = -lpthread -lrt -ldl LOADBIN = -Wl,-rpath=./,--disable-new-dtags -else ifeq ($(PLATFORM),android) - NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC - PLATVER = -D __ANDROID__ - PLATDIR = XEngine_Android - FILEEXT = so - LIBFLAG = -shared - LIBEX = -ldl - LOADBIN = -Wl,-rpath=./,--disable-new-dtags else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ @@ -62,15 +48,6 @@ else ifeq ($(PLATFORM),mac) LIB += -llua LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ -else ifeq ($(PLATFORM),ios) - SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk - CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 - PLATVER = -D __IOS__ - PLATDIR = XEngine_IOS - FILEEXT = dylib - LIBFLAG = -dynamiclib - LIBEX = -lpthread -ldl - LOADBIN = -Wl,-rpath,@loader_path/./ endif diff --git a/XEngine_Source/XEngine_ModuleProtocol/Makefile b/XEngine_Source/XEngine_ModuleProtocol/Makefile index 964a607..84af05b 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/Makefile +++ b/XEngine_Source/XEngine_ModuleProtocol/Makefile @@ -16,14 +16,9 @@ ifeq ($(RELEASE),1) FLAGS = -c DEBUG = else -ifeq ($(PLATFORM),android) -FLAGS = -c -DEBUG = -g -else FLAGS = -c -lc_p DEBUG = -g -pg endif -endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE @@ -43,15 +38,6 @@ ifeq ($(PLATFORM),linux) LIBFLAG = -shared LIBEX = -lpthread -lrt -ldl LOADBIN = -Wl,-rpath=./,--disable-new-dtags -else ifeq ($(PLATFORM),android) - NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC - PLATVER = -D __ANDROID__ - PLATDIR = XEngine_Android - FILEEXT = so - LIBFLAG = -shared - LIBEX = -ldl - LOADBIN = -Wl,-rpath=./,--disable-new-dtags else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ @@ -60,15 +46,6 @@ else ifeq ($(PLATFORM),mac) LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ -else ifeq ($(PLATFORM),ios) - SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk - CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 - PLATVER = -D __IOS__ - PLATDIR = XEngine_IOS - FILEEXT = dylib - LIBFLAG = -dynamiclib - LIBEX = -lpthread -ldl - LOADBIN = -Wl,-rpath,@loader_path/./ endif diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Makefile index ffa6af2..aa3b3e9 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Makefile @@ -16,14 +16,9 @@ ifeq ($(RELEASE),1) FLAGS = -c DEBUG = else -ifeq ($(PLATFORM),android) -FLAGS = -c -DEBUG = -g -else FLAGS = -c -lc_p DEBUG = -g -pg endif -endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE @@ -43,15 +38,6 @@ ifeq ($(PLATFORM),linux) LIBFLAG = -shared LIBEX = -lpthread -lrt -ldl LOADBIN = -Wl,-rpath=./,--disable-new-dtags -else ifeq ($(PLATFORM),android) - NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC - PLATVER = -D __ANDROID__ - PLATDIR = XEngine_Android - FILEEXT = so - LIBFLAG = -shared - LIBEX = -ldl - LOADBIN = -Wl,-rpath=./,--disable-new-dtags else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ @@ -60,15 +46,6 @@ else ifeq ($(PLATFORM),mac) LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ -else ifeq ($(PLATFORM),ios) - SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk - CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 - PLATVER = -D __IOS__ - PLATDIR = XEngine_IOS - FILEEXT = dylib - LIBFLAG = -dynamiclib - LIBEX = -lpthread -ldl - LOADBIN = -Wl,-rpath,@loader_path/./ endif diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/Makefile index 4499c2a..a6dba1f 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/Makefile @@ -16,14 +16,9 @@ ifeq ($(RELEASE),1) FLAGS = -c DEBUG = else -ifeq ($(PLATFORM),android) -FLAGS = -c -DEBUG = -g -else FLAGS = -c -lc_p DEBUG = -g -pg endif -endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE @@ -43,15 +38,6 @@ ifeq ($(PLATFORM),linux) LIBFLAG = -shared LIBEX = -lpthread -lrt -ldl LOADBIN = -Wl,-rpath=./,--disable-new-dtags -else ifeq ($(PLATFORM),android) - NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC - PLATVER = -D __ANDROID__ - PLATDIR = XEngine_Android - FILEEXT = so - LIBFLAG = -shared - LIBEX = -ldl - LOADBIN = -Wl,-rpath=./,--disable-new-dtags else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ @@ -60,15 +46,6 @@ else ifeq ($(PLATFORM),mac) LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ -else ifeq ($(PLATFORM),ios) - SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk - CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 - PLATVER = -D __IOS__ - PLATDIR = XEngine_IOS - FILEEXT = dylib - LIBFLAG = -dynamiclib - LIBEX = -lpthread -ldl - LOADBIN = -Wl,-rpath,@loader_path/./ endif diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile index 6f5f3d7..e5c0d96 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile @@ -16,14 +16,9 @@ ifeq ($(RELEASE),1) FLAGS = -c DEBUG = else -ifeq ($(PLATFORM),android) -FLAGS = -c -DEBUG = -g -else FLAGS = -c -lc_p DEBUG = -g -pg endif -endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE @@ -43,15 +38,6 @@ ifeq ($(PLATFORM),linux) LIBFLAG = -shared LIBEX = -lpthread -lrt -ldl LOADBIN = -Wl,-rpath=./,--disable-new-dtags -else ifeq ($(PLATFORM),android) - NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC - PLATVER = -D __ANDROID__ - PLATDIR = XEngine_Android - FILEEXT = so - LIBFLAG = -shared - LIBEX = -ldl - LOADBIN = -Wl,-rpath=./,--disable-new-dtags else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ @@ -60,15 +46,6 @@ else ifeq ($(PLATFORM),mac) LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ -else ifeq ($(PLATFORM),ios) - SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk - CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 - PLATVER = -D __IOS__ - PLATDIR = XEngine_IOS - FILEEXT = dylib - LIBFLAG = -dynamiclib - LIBEX = -lpthread -ldl - LOADBIN = -Wl,-rpath,@loader_path/./ endif diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Makefile index 2bd1edc..1582361 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Makefile @@ -16,14 +16,9 @@ ifeq ($(RELEASE),1) FLAGS = -c DEBUG = else -ifeq ($(PLATFORM),android) -FLAGS = -c -DEBUG = -g -else FLAGS = -c -lc_p DEBUG = -g -pg endif -endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE @@ -43,15 +38,6 @@ ifeq ($(PLATFORM),linux) LIBFLAG = -shared LIBEX = -lpthread -lrt -ldl LOADBIN = -Wl,-rpath=./,--disable-new-dtags -else ifeq ($(PLATFORM),android) - NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC - PLATVER = -D __ANDROID__ - PLATDIR = XEngine_Android - FILEEXT = so - LIBFLAG = -shared - LIBEX = -ldl - LOADBIN = -Wl,-rpath=./,--disable-new-dtags else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ @@ -60,15 +46,6 @@ else ifeq ($(PLATFORM),mac) LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ -else ifeq ($(PLATFORM),ios) - SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk - CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 - PLATVER = -D __IOS__ - PLATDIR = XEngine_IOS - FILEEXT = dylib - LIBFLAG = -dynamiclib - LIBEX = -lpthread -ldl - LOADBIN = -Wl,-rpath,@loader_path/./ endif diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/Makefile index 543fd5a..de29fc1 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/Makefile @@ -16,14 +16,9 @@ ifeq ($(RELEASE),1) FLAGS = -c DEBUG = else -ifeq ($(PLATFORM),android) -FLAGS = -c -DEBUG = -g -else FLAGS = -c -lc_p DEBUG = -g -pg endif -endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE @@ -43,15 +38,6 @@ ifeq ($(PLATFORM),linux) LIBFLAG = -shared LIBEX = -lpthread -lrt -ldl LOADBIN = -Wl,-rpath=./,--disable-new-dtags -else ifeq ($(PLATFORM),android) - NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC - PLATVER = -D __ANDROID__ - PLATDIR = XEngine_Android - FILEEXT = so - LIBFLAG = -shared - LIBEX = -ldl - LOADBIN = -Wl,-rpath=./,--disable-new-dtags else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ @@ -60,15 +46,6 @@ else ifeq ($(PLATFORM),mac) LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ -else ifeq ($(PLATFORM),ios) - SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk - CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 - PLATVER = -D __IOS__ - PLATDIR = XEngine_IOS - FILEEXT = dylib - LIBFLAG = -dynamiclib - LIBEX = -lpthread -ldl - LOADBIN = -Wl,-rpath,@loader_path/./ endif diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Makefile index 26550df..355456f 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Makefile @@ -16,14 +16,9 @@ ifeq ($(RELEASE),1) FLAGS = -c DEBUG = else -ifeq ($(PLATFORM),android) -FLAGS = -c -DEBUG = -g -else FLAGS = -c -lc_p DEBUG = -g -pg endif -endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE @@ -43,15 +38,6 @@ ifeq ($(PLATFORM),linux) LIBFLAG = -shared LIBEX = -lpthread -lrt -ldl LOADBIN = -Wl,-rpath=./,--disable-new-dtags -else ifeq ($(PLATFORM),android) - NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC - PLATVER = -D __ANDROID__ - PLATDIR = XEngine_Android - FILEEXT = so - LIBFLAG = -shared - LIBEX = -ldl - LOADBIN = -Wl,-rpath=./,--disable-new-dtags else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ @@ -60,15 +46,6 @@ else ifeq ($(PLATFORM),mac) LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ -else ifeq ($(PLATFORM),ios) - SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk - CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 - PLATVER = -D __IOS__ - PLATDIR = XEngine_IOS - FILEEXT = dylib - LIBFLAG = -dynamiclib - LIBEX = -lpthread -ldl - LOADBIN = -Wl,-rpath,@loader_path/./ endif diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Makefile index 4dd3530..7bab638 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Makefile @@ -16,14 +16,9 @@ ifeq ($(RELEASE),1) FLAGS = -c DEBUG = else -ifeq ($(PLATFORM),android) -FLAGS = -c -DEBUG = -g -else FLAGS = -c -lc_p DEBUG = -g -pg endif -endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE @@ -43,15 +38,6 @@ ifeq ($(PLATFORM),linux) LIBFLAG = -shared LIBEX = -lpthread -lrt -ldl LOADBIN = -Wl,-rpath=./,--disable-new-dtags -else ifeq ($(PLATFORM),android) - NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC - PLATVER = -D __ANDROID__ - PLATDIR = XEngine_Android - FILEEXT = so - LIBFLAG = -shared - LIBEX = -ldl - LOADBIN = -Wl,-rpath=./,--disable-new-dtags else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ @@ -60,15 +46,6 @@ else ifeq ($(PLATFORM),mac) LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ -else ifeq ($(PLATFORM),ios) - SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk - CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 - PLATVER = -D __IOS__ - PLATDIR = XEngine_IOS - FILEEXT = dylib - LIBFLAG = -dynamiclib - LIBEX = -lpthread -ldl - LOADBIN = -Wl,-rpath,@loader_path/./ endif diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile index 37b53b6..6a77342 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile @@ -15,20 +15,16 @@ LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -ljsoncpp LIBEX = OBJECTS = XEngine_Configure.o XEngine_Network.o XEngine_HTTPTask.o XEngine_PluginTask.o XEngine_HttpApp.o \ - HTTPTask_IDCard.o HTTPTask_Bank.o HTTPTask_Language.o HTTPTask_Translation.o HTTPTask_P2PClient.o HTTPTask_OPtions.o HTTPTask_Locker.o HTTPTask_PostCode.o HTTPTask_Log.o HTTPTask_QRCode.o HTTPTask_SocketTest.o + TaskGet_Bank.o TaskGet_IDCard.o TaskGet_Language.o TaskGet_Locker.o TaskGet_OPtions.o TaskGet_Translation.o \ + TaskPost_DTest.o TaskPost_Log.o TaskPost_P2PClient.o TaskPost_PostCode.o TaskPost_QRCode.o TaskPost_ShortLink.o TaskPost_SocketTest.o ifeq ($(RELEASE),1) FLAGS = -c DEBUG = else -ifeq ($(PLATFORM),android) -FLAGS = -c -DEBUG = -g -else FLAGS = -c -lc_p DEBUG = -g -pg endif -endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE @@ -48,15 +44,6 @@ ifeq ($(PLATFORM),linux) LIBFLAG = -shared LIBEX = -lpthread -lrt -ldl LOADBIN = -Wl,-rpath=./,--disable-new-dtags -else ifeq ($(PLATFORM),android) - NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC - PLATVER = -D __ANDROID__ - PLATDIR = XEngine_Android - FILEEXT = so - LIBFLAG = -shared - LIBEX = -ldl - LOADBIN = -Wl,-rpath=./,--disable-new-dtags else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ @@ -65,15 +52,6 @@ else ifeq ($(PLATFORM),mac) LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ -else ifeq ($(PLATFORM),ios) - SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk - CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 - PLATVER = -D __IOS__ - PLATDIR = XEngine_IOS - FILEEXT = dylib - LIBFLAG = -dynamiclib - LIBEX = -lpthread -ldl - LOADBIN = -Wl,-rpath,@loader_path/./ endif all:$(OBJECTS) @@ -88,28 +66,33 @@ XEngine_HTTPTask.o:./XEngine_HTTPTask.cpp XEngine_PluginTask.o:./XEngine_PluginTask.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_PluginTask.cpp -HTTPTask_IDCard.o:./XEngine_HTTPTask/HTTPTask_IDCard.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_IDCard.cpp -HTTPTask_Bank.o:./XEngine_HTTPTask/HTTPTask_Bank.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_Bank.cpp -HTTPTask_Language.o:./XEngine_HTTPTask/HTTPTask_Language.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_Language.cpp -HTTPTask_Translation.o:./XEngine_HTTPTask/HTTPTask_Translation.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_Translation.cpp -HTTPTask_P2PClient.o:./XEngine_HTTPTask/HTTPTask_P2PClient.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_P2PClient.cpp -HTTPTask_OPtions.o:./XEngine_HTTPTask/HTTPTask_OPtions.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_OPtions.cpp -HTTPTask_Locker.o:./XEngine_HTTPTask/HTTPTask_Locker.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_Locker.cpp -HTTPTask_PostCode.o:./XEngine_HTTPTask/HTTPTask_PostCode.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_PostCode.cpp -HTTPTask_Log.o:./XEngine_HTTPTask/HTTPTask_Log.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_Log.cpp -HTTPTask_QRCode.o:./XEngine_HTTPTask/HTTPTask_QRCode.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_QRCode.cpp -HTTPTask_SocketTest.o:./XEngine_HTTPTask/HTTPTask_SocketTest.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HTTPTask/HTTPTask_SocketTest.cpp +TaskGet_Bank.o:./XEngine_TaskGet/TaskGet_Bank.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskGet/TaskGet_Bank.cpp +TaskGet_IDCard.o:./XEngine_TaskGet/TaskGet_IDCard.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskGet/TaskGet_IDCard.cpp +TaskGet_Language.o:./XEngine_TaskGet/TaskGet_Language.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskGet/TaskGet_Language.cpp +TaskGet_Locker.o:./XEngine_TaskGet/TaskGet_Locker.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskGet/TaskGet_Locker.cpp +TaskGet_OPtions.o:./XEngine_TaskGet/TaskGet_OPtions.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskGet/TaskGet_OPtions.cpp +TaskGet_Translation.o:./XEngine_TaskGet/TaskGet_Translation.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskGet/TaskGet_Translation.cpp + +TaskPost_DTest.o:./XEngine_TaskPost/TaskPost_DTest.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskPost/TaskPost_DTest.cpp +TaskPost_Log.o:./XEngine_TaskPost/TaskPost_Log.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskPost/TaskPost_Log.cpp +TaskPost_P2PClient.o:./XEngine_TaskPost/TaskPost_P2PClient.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskPost/TaskPost_P2PClient.cpp +TaskPost_PostCode.o:./XEngine_TaskPost/TaskPost_PostCode.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskPost/TaskPost_PostCode.cpp +TaskPost_QRCode.o:./XEngine_TaskPost/TaskPost_QRCode.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskPost/TaskPost_QRCode.cpp +TaskPost_ShortLink.o:./XEngine_TaskPost/TaskPost_ShortLink.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskPost/TaskPost_ShortLink.cpp +TaskPost_SocketTest.o:./XEngine_TaskPost/TaskPost_SocketTest.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskPost/TaskPost_SocketTest.cpp XEngine_HttpApp.o:./XEngine_HttpApp.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_HttpApp.cpp diff --git a/XEngine_Source/XEngine_ThirdPart/jsoncpp/Makefile b/XEngine_Source/XEngine_ThirdPart/jsoncpp/Makefile index a1e5c11..39af933 100644 --- a/XEngine_Source/XEngine_ThirdPart/jsoncpp/Makefile +++ b/XEngine_Source/XEngine_ThirdPart/jsoncpp/Makefile @@ -16,14 +16,9 @@ ifeq ($(RELEASE),1) FLAGS = -c DEBUG = else -ifeq ($(PLATFORM),android) -FLAGS = -c -DEBUG = -g -else FLAGS = -c -lc_p DEBUG = -g -pg endif -endif ifeq ($(UNICODE),1) UNICODE = -D _UNICODE @@ -43,15 +38,6 @@ ifeq ($(PLATFORM),linux) LIBFLAG = -shared LIBEX = -lpthread -lrt -ldl LOADBIN = -Wl,-rpath=./,--disable-new-dtags -else ifeq ($(PLATFORM),android) - NDK_ROOT = $(HOME)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - CC = $(NDK_ROOT) -target aarch64-linux-android30 -Wall -std=c++17 -fPIC - PLATVER = -D __ANDROID__ - PLATDIR = XEngine_Android - FILEEXT = so - LIBFLAG = -shared - LIBEX = -ldl - LOADBIN = -Wl,-rpath=./,--disable-new-dtags else ifeq ($(PLATFORM),mac) CC += -Wno-deprecated-declarations PLATVER = -D __MACOS__ @@ -60,15 +46,6 @@ else ifeq ($(PLATFORM),mac) LIBFLAG = -dynamiclib LIBEX = -lpthread -ldl LOADBIN = -Wl,-rpath,@loader_path/./ -else ifeq ($(PLATFORM),ios) - SDKPATH = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk - CC += -arch arm64 -Wno-deprecated-declarations -isysroot ${SDKPATH} -miphoneos-version-min=13.0 - PLATVER = -D __IOS__ - PLATDIR = XEngine_IOS - FILEEXT = dylib - LIBFLAG = -dynamiclib - LIBEX = -lpthread -ldl - LOADBIN = -Wl,-rpath,@loader_path/./ endif all:$(OBJECTS) -- Gitee From 27241e0c7c1faf278662ff41c7ddf5eb8f6109a8 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 11 Apr 2023 14:41:51 +0800 Subject: [PATCH 13/26] fixed:linux build error --- .../ModuleConfig_Define.h | 2 +- .../XEngine_ModuleConfigure/dllmain.cpp | 2 +- .../XEngine_ModuleConfigure/pch.cpp | 4 +- XEngine_Source/XEngine_ModuleConfigure/pch.h | 2 +- .../XEngine_ModuleDatabase/ModuleDB_Define.h | 2 +- .../ModuleDatabase_ShortLink.cpp | 2 +- .../XEngine_ModuleDatabase/dllmain.cpp | 2 +- XEngine_Source/XEngine_ModuleDatabase/pch.cpp | 4 +- XEngine_Source/XEngine_ModuleDatabase/pch.h | 2 +- .../XEngine_ModuleHelp/ModuleHelp_Define.h | 10 ++--- .../ModuleHelp_QRCode/ModuleHelp_QRCode.cpp | 2 +- .../ModuleHelp_QRCode/ModuleHelp_QRCode.h | 2 +- XEngine_Source/XEngine_ModuleHelp/dllmain.cpp | 2 +- XEngine_Source/XEngine_ModuleHelp/pch.cpp | 6 +-- XEngine_Source/XEngine_ModuleHelp/pch.h | 3 +- .../ModulePlugin_Define.h | 4 +- .../ModulePlugin_LibCore.h | 8 +++- .../XEngine_ModulePlugin/dllmain.cpp | 2 +- XEngine_Source/XEngine_ModulePlugin/pch.cpp | 4 +- XEngine_Source/XEngine_ModulePlugin/pch.h | 2 +- .../ModuleProtocol_Define.h | 2 +- .../XEngine_ModuleProtocol/dllmain.cpp | 2 +- XEngine_Source/XEngine_ModuleProtocol/pch.cpp | 4 +- XEngine_Source/XEngine_ModuleProtocol/pch.h | 2 +- .../ModulePlugin_BMIndex/BMIndex_Define.h | 2 +- .../ModulePlugin_BMIndex/Makefile | 4 +- .../ModulePlugin_BMIndex/dllmain.cpp | 2 +- .../ModulePlugin_BMIndex/pch.cpp | 4 +- .../ModulePlugin_BMIndex/pch.h | 2 +- .../ModulePlugin_IPAddr/Makefile | 4 +- .../ModulePlugin_IPAddr/PluginIPAddr_Define.h | 2 +- .../ModulePlugin_IPAddr/dllmain.cpp | 2 +- .../ModulePlugin_IPAddr/pch.cpp | 4 +- .../ModulePlugin_IPAddr/pch.h | 2 +- .../ModulePlugin_Meter/Makefile | 4 +- .../ModulePlugin_Meter/PluginMeter_Define.h | 2 +- .../ModulePlugin_Meter/dllmain.cpp | 2 +- .../ModulePlugin_Meter/pch.cpp | 4 +- .../ModulePlugin_Meter/pch.h | 2 +- .../ModulePlugin_Password/Makefile | 4 +- .../ModulePlugin_Password/PluginPass_Define.h | 2 +- .../ModulePlugin_Password/dllmain.cpp | 2 +- .../ModulePlugin_Password/pch.cpp | 4 +- .../ModulePlugin_Password/pch.h | 2 +- .../ModulePlugin_Phone/Makefile | 4 +- .../ModulePlugin_DBPhone.h | 4 +- .../ModulePlugin_Phone/PluginPhone_Define.h | 2 +- .../ModulePlugin_Phone/dllmain.cpp | 2 +- .../ModulePlugin_Phone/pch.cpp | 4 +- .../ModulePlugin_Phone/pch.h | 2 +- .../ModulePlugin_Timezone/Makefile | 4 +- .../ModulePlugin_Timezone/Timezone_Define.h | 2 +- .../ModulePlugin_Timezone/dllmain.cpp | 2 +- .../ModulePlugin_Timezone/pch.cpp | 4 +- .../ModulePlugin_Timezone/pch.h | 2 +- .../ModulePlugin_Zodiac/Makefile | 4 +- .../ModulePlugin_Zodiac/PluginZodiac_Define.h | 2 +- .../ModulePlugin_Zodiac/dllmain.cpp | 2 +- .../ModulePlugin_Zodiac/pch.cpp | 4 +- .../ModulePlugin_Zodiac/pch.h | 2 +- .../XEngine_HttpApp/Makefile | 2 +- .../XEngine_HttpApp/XEngine_HTTPTask.cpp | 2 +- .../XEngine_TaskGet/TaskGet_Locker.cpp | 10 ++--- .../XEngine_TaskPost/TaskPost_SocketTest.cpp | 2 +- .../XEngine_TaskPost/TaskPost_SocketTest.h | 2 +- XEngine_Source/XEngine_UserProtocol.h | 44 +++++++++---------- 66 files changed, 123 insertions(+), 118 deletions(-) diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h index 20dd679..855619e 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h @@ -118,7 +118,7 @@ typedef struct ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD ModuleConfigure_GetLastError(int* pInt_ErrorCode = NULL); +extern "C" XLONG ModuleConfigure_GetLastError(int* pInt_ErrorCode = NULL); /************************************************************************/ /* 文件配置读取 */ /************************************************************************/ diff --git a/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp b/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp index 81c9f1a..52bff00 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp @@ -2,7 +2,7 @@ #include "pch.h" XBOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, + XLONG ul_reason_for_call, XPVOID lpReserved ) { diff --git a/XEngine_Source/XEngine_ModuleConfigure/pch.cpp b/XEngine_Source/XEngine_ModuleConfigure/pch.cpp index 89f5445..9ae5cb3 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/pch.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/pch.cpp @@ -12,13 +12,13 @@ // History: *********************************************************************/ XBOOL Config_IsErrorOccur = XFALSE; -DWORD Config_dwErrorCode = 0; +XLONG Config_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////// CModuleConfigure_Json m_ConfigJson; ////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////// -extern "C" DWORD ModuleConfigure_GetLastError(int* pInt_ErrorCode) +extern "C" XLONG ModuleConfigure_GetLastError(int* pInt_ErrorCode) { if (pInt_ErrorCode != NULL) { diff --git a/XEngine_Source/XEngine_ModuleConfigure/pch.h b/XEngine_Source/XEngine_ModuleConfigure/pch.h index bc93e14..9f407ba 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/pch.h +++ b/XEngine_Source/XEngine_ModuleConfigure/pch.h @@ -37,7 +37,7 @@ using namespace std; // History: *********************************************************************/ extern XBOOL Config_IsErrorOccur; -extern DWORD Config_dwErrorCode; +extern XLONG Config_dwErrorCode; #ifdef _MSC_BUILD #ifdef _DEBUG diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h index 1642e70..e3e7fb0 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h @@ -13,7 +13,7 @@ ////////////////////////////////////////////////////////////////////////// /// 导出的函数 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD ModuleDB_GetLastError(int *pInt_SysError = NULL); +extern "C" XLONG ModuleDB_GetLastError(int *pInt_SysError = NULL); /************************************************************************/ /* 导出的身份证地址操作函数 */ /************************************************************************/ diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp index 4d7ee2b..abcd7f8 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp @@ -92,7 +92,7 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLI DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; return XFALSE; } - XCHAR tszSQLStatement[1024]; + XCHAR tszSQLStatement[2024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); _stprintf(tszSQLStatement, _T("INSERT INTO `XEngine_ShortLink` (tszFullUrl,tszShortUrl,tszKeyUrl,tszMapUrl,tszCreateTime) VALUES('%s','%s','%s','%s','%s')"), pSt_SLinkInfo->tszFullUrl, pSt_SLinkInfo->tszShotUrl, pSt_SLinkInfo->tszKeyUrl, pSt_SLinkInfo->tszMapUrl, pSt_SLinkInfo->tszCreateTime); diff --git a/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp b/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp index 81c9f1a..52bff00 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp @@ -2,7 +2,7 @@ #include "pch.h" XBOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, + XLONG ul_reason_for_call, XPVOID lpReserved ) { diff --git a/XEngine_Source/XEngine_ModuleDatabase/pch.cpp b/XEngine_Source/XEngine_ModuleDatabase/pch.cpp index 5cd7415..3e6db47 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/pch.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/pch.cpp @@ -15,7 +15,7 @@ // Purpose: 导出函数实现 // History: *********************************************************************/ -DWORD DBModule_IsErrorOccur = XFALSE; +XLONG DBModule_IsErrorOccur = XFALSE; XBOOL DBModule_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleDatabase_IDCard m_IDCard; @@ -26,7 +26,7 @@ CModuleDatabase_ShortLink m_ShortLink; ////////////////////////////////////////////////////////////////////////// /// 导出的函数 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD ModuleDB_GetLastError(int* pInt_SysError) +extern "C" XLONG ModuleDB_GetLastError(int* pInt_SysError) { if (NULL != pInt_SysError) { diff --git a/XEngine_Source/XEngine_ModuleDatabase/pch.h b/XEngine_Source/XEngine_ModuleDatabase/pch.h index 99c3996..66e3436 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/pch.h +++ b/XEngine_Source/XEngine_ModuleDatabase/pch.h @@ -43,7 +43,7 @@ // Purpose: // History: *********************************************************************/ -extern DWORD DBModule_IsErrorOccur; +extern XLONG DBModule_IsErrorOccur; extern XBOOL DBModule_dwErrorCode; #ifdef _MSC_BUILD diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h index 76efe19..4770a71 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h @@ -15,7 +15,7 @@ ////////////////////////////////////////////////////////////////////////// typedef void(CALLBACK* CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT)(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XPVOID lParam); //套接字测试回调:测试句柄,测试的服务器地址,测试的端口,当前测试次数,失败次数,成功次数,状态:0成功报告,1失败报告,2结束报告,自定义参数 -typedef void(CALLBACK* CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST)(XNETHANDLE xhToken, LPCSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, XPVOID lParam); +typedef void(CALLBACK* CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST)(XNETHANDLE xhToken, LPCXSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, XPVOID lParam); ////////////////////////////////////////////////////////////////////////// // 导出数据结构 ////////////////////////////////////////////////////////////////////////// @@ -37,7 +37,7 @@ typedef struct ////////////////////////////////////////////////////////////////////////// /// 导出的函数 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD ModuleHelp_GetLastError(int *pInt_SysError = NULL); +extern "C" XLONG ModuleHelp_GetLastError(int *pInt_SysError = NULL); /************************************************************************/ /* 导出的身份证帮助函数 */ /************************************************************************/ @@ -231,7 +231,7 @@ extern "C" XBOOL ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL * pSt_P2P 意思:是否成功 备注:参数二需要调用基础库的BaseLib_OperatorMemory_Free函数进行内存释放 *********************************************************************/ -extern "C" XBOOL ModuleHelp_P2PClient_GetLList(LPCSTR lpszPubAddr, CHAR * **pppszP2XPClient, int* pInt_ListCount); +extern "C" XBOOL ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR * **pppszP2XPClient, int* pInt_ListCount); /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetWList 函数功能:获取所有连接到的公网地址列表 @@ -250,7 +250,7 @@ extern "C" XBOOL ModuleHelp_P2PClient_GetLList(LPCSTR lpszPubAddr, CHAR * **ppps 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_P2PClient_GetWList(CHAR * **pppszP2XPClient, int* pInt_ListCount); +extern "C" XBOOL ModuleHelp_P2PClient_GetWList(XCHAR * **pppszP2XPClient, int* pInt_ListCount); /******************************************************************** 函数名称:ModuleHelp_P2PClient_Delete 函数功能:删除一个指定的节点 @@ -523,7 +523,7 @@ extern "C" XBOOL ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR* pt 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); +extern "C" XBOOL ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); /************************************************************************/ /* 网络测试导出函数 */ /************************************************************************/ diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp index 4b5cdde..f8c0021 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp @@ -317,7 +317,7 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) +XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) { ModuleHelp_IsErrorOccur = XFALSE; diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.h index 982513a..98f30bb 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.h @@ -20,7 +20,7 @@ public: XBOOL ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer); XBOOL ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt); XBOOL ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); - XBOOL ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); + XBOOL ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); protected: private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp b/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp index 81c9f1a..52bff00 100644 --- a/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp @@ -2,7 +2,7 @@ #include "pch.h" XBOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, + XLONG ul_reason_for_call, XPVOID lpReserved ) { diff --git a/XEngine_Source/XEngine_ModuleHelp/pch.cpp b/XEngine_Source/XEngine_ModuleHelp/pch.cpp index 8e5bbad..a47faa4 100644 --- a/XEngine_Source/XEngine_ModuleHelp/pch.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/pch.cpp @@ -17,7 +17,7 @@ // History: *********************************************************************/ XBOOL ModuleHelp_IsErrorOccur = XFALSE; -DWORD ModuleHelp_dwErrorCode = 0; +XLONG ModuleHelp_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleHelp_IDCard m_IDCard; CModuleHelp_Language m_Language; @@ -28,7 +28,7 @@ CModuleHelp_SocketTest m_SocketTest; ////////////////////////////////////////////////////////////////////////// /// 导出的函数 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD ModuleHelp_GetLastError(int* pInt_SysError) +extern "C" XLONG ModuleHelp_GetLastError(int* pInt_SysError) { if (NULL != pInt_SysError) { @@ -147,7 +147,7 @@ extern "C" XBOOL ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR * p { return m_QRCode.ModuleHelp_QRCode_QRDecodecFile(lpszFileName, ptszMsgBuffer, lpszDetectProto, lpszDetectModel, lpszSrProto, lpszSrModel); } -extern "C" XBOOL ModuleHelp_QRCode_QRDecodecMemory(LPCSTR lpszMsgBuffer, int nMsgLen, XCHAR * ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) +extern "C" XBOOL ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR * ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) { return m_QRCode.ModuleHelp_QRCode_QRDecodecMemory(lpszMsgBuffer, nMsgLen, ptszMsgBuffer, lpszDetectProto, lpszDetectModel, lpszSrProto, lpszSrModel); } diff --git a/XEngine_Source/XEngine_ModuleHelp/pch.h b/XEngine_Source/XEngine_ModuleHelp/pch.h index 7a2282f..b64cad7 100644 --- a/XEngine_Source/XEngine_ModuleHelp/pch.h +++ b/XEngine_Source/XEngine_ModuleHelp/pch.h @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -52,7 +53,7 @@ using namespace std; // History: *********************************************************************/ extern XBOOL ModuleHelp_IsErrorOccur; -extern DWORD ModuleHelp_dwErrorCode; +extern XLONG ModuleHelp_dwErrorCode; #ifdef _MSC_BUILD #pragma comment(lib,"XEngine_BaseLib/XEngine_BaseLib") diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Define.h b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Define.h index 8818731..26a764b 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Define.h +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Define.h @@ -13,7 +13,7 @@ ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD ModulePlugin_GetLastError(int* pInt_SysError = NULL); +extern "C" XLONG ModulePlugin_GetLastError(int* pInt_SysError = NULL); /********************************************************************************* * LIB库插件框架导出函数定义 * *********************************************************************************/ @@ -49,7 +49,7 @@ extern "C" XBOOL ModulePlugin_LibCore_Init(); 意思:是否成功添加 备注: *********************************************************************/ -extern "C" XBOOL ModulePlugin_LibCore_Push(XNETHANDLE * pxhNet, LPCSTR lpszPluginFile, XPVOID lParam = NULL); +extern "C" XBOOL ModulePlugin_LibCore_Push(XNETHANDLE * pxhNet, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); /******************************************************************** 函数名称:ModulePlugin_LibCore_Exec 函数功能:执行一次 diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.h b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.h index 664be81..b05cd0e 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.h +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.h @@ -13,17 +13,21 @@ typedef XBOOL(*FPCall_PluginCore_Init)(XPVOID lParam); typedef void(*FPCall_PluginCore_UnInit)(); typedef XBOOL(*FPCall_PluginCore_Call)(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer, int nMsgLen); -typedef DWORD(*FPCall_PluginCore_GetLastError)(); +typedef XLONG(*FPCall_PluginCore_GetLastError)(); typedef struct { +#ifdef _MSC_BUILD HMODULE mhFile; +#else + void* mhFile; +#endif XCHAR tszModuleFile[MAX_PATH]; XBOOL(*fpCall_PluginCore_Init)(XPVOID lParam); void(*fpCall_PluginCore_UnInit)(); XBOOL(*fpCall_PluginCore_Call)(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer, int nMsgLen); - DWORD(*fpCall_PluginCore_GetLastError)(); + XLONG(*fpCall_PluginCore_GetLastError)(); }PLUGINCORE_FRAMEWORK, * LPPLUGINCORE_FRAMEWORK; class CModulePlugin_LibCore diff --git a/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp b/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp index 81c9f1a..52bff00 100644 --- a/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp @@ -2,7 +2,7 @@ #include "pch.h" XBOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, + XLONG ul_reason_for_call, XPVOID lpReserved ) { diff --git a/XEngine_Source/XEngine_ModulePlugin/pch.cpp b/XEngine_Source/XEngine_ModulePlugin/pch.cpp index aa63494..3566b14 100644 --- a/XEngine_Source/XEngine_ModulePlugin/pch.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/pch.cpp @@ -14,7 +14,7 @@ // History: *********************************************************************/ XBOOL ModulePlugin_IsErrorOccur = XFALSE; -DWORD ModulePlugin_dwErrorCode = 0; +XLONG ModulePlugin_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_LibCore m_PluginLib; CModulePlugin_LuaCore m_PluginLua; @@ -22,7 +22,7 @@ CModulePlugin_Loader m_PluginLoader; ////////////////////////////////////////////////////////////////////////// // 导出函数实现 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD ModulePlugin_GetLastError(int* pInt_SysError) +extern "C" XLONG ModulePlugin_GetLastError(int* pInt_SysError) { if (NULL != pInt_SysError) { diff --git a/XEngine_Source/XEngine_ModulePlugin/pch.h b/XEngine_Source/XEngine_ModulePlugin/pch.h index c18d848..4cd2eae 100644 --- a/XEngine_Source/XEngine_ModulePlugin/pch.h +++ b/XEngine_Source/XEngine_ModulePlugin/pch.h @@ -56,7 +56,7 @@ using namespace std; // History: *********************************************************************/ extern XBOOL ModulePlugin_IsErrorOccur; -extern DWORD ModulePlugin_dwErrorCode; +extern XLONG ModulePlugin_dwErrorCode; #ifdef _MSC_BUILD #pragma comment(lib,"XEngine_BaseLib/XEngine_BaseLib") diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h index c6ebceb..3bc8716 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h @@ -13,7 +13,7 @@ ////////////////////////////////////////////////////////////////////////// /// 导出的函数 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD ModuleProtocol_GetLastError(int *pInt_SysError = NULL); +extern "C" XLONG ModuleProtocol_GetLastError(int *pInt_SysError = NULL); /************************************************************************/ /* 导出的协议打包函数 */ /************************************************************************/ diff --git a/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp b/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp index 81c9f1a..52bff00 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp @@ -2,7 +2,7 @@ #include "pch.h" XBOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, + XLONG ul_reason_for_call, XPVOID lpReserved ) { diff --git a/XEngine_Source/XEngine_ModuleProtocol/pch.cpp b/XEngine_Source/XEngine_ModuleProtocol/pch.cpp index 342fd4c..2d48b69 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/pch.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/pch.cpp @@ -13,14 +13,14 @@ // History: *********************************************************************/ XBOOL ModuleProtocol_IsErrorOccur = XFALSE; -DWORD ModuleProtocol_dwErrorCode = 0; +XLONG ModuleProtocol_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleProtocol_Packet m_ProtocolPacket; CModuleProtocol_Parse m_ProtocolParse; ////////////////////////////////////////////////////////////////////////// /// 导出的函数 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD ModuleProtocol_GetLastError(int* pInt_SysError) +extern "C" XLONG ModuleProtocol_GetLastError(int* pInt_SysError) { if (NULL != pInt_SysError) { diff --git a/XEngine_Source/XEngine_ModuleProtocol/pch.h b/XEngine_Source/XEngine_ModuleProtocol/pch.h index f28b6ac..e7f4a86 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/pch.h +++ b/XEngine_Source/XEngine_ModuleProtocol/pch.h @@ -39,7 +39,7 @@ using namespace std; // History: *********************************************************************/ extern XBOOL ModuleProtocol_IsErrorOccur; -extern DWORD ModuleProtocol_dwErrorCode; +extern XLONG ModuleProtocol_dwErrorCode; #ifdef _MSC_BUILD #pragma comment(lib,"XEngine_BaseLib/XEngine_BaseLib") diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/BMIndex_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/BMIndex_Define.h index ed441b7..ab2e9f5 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/BMIndex_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/BMIndex_Define.h @@ -13,7 +13,7 @@ ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD PluginCore_GetLastError(); +extern "C" XLONG PluginCore_GetLastError(); /********************************************************************************* * 导出函数定义 * *********************************************************************************/ diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Makefile index aa3b3e9..a6904fa 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Makefile @@ -6,8 +6,8 @@ FILEEXT = LIBFLAG = RELEASE = 0 UNICODE = 0 -LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp -LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -ljsoncpp LIBEX = OBJECTS = Plugin_BMIndex.o pch.o diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp index 81c9f1a..52bff00 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp @@ -2,7 +2,7 @@ #include "pch.h" XBOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, + XLONG ul_reason_for_call, XPVOID lpReserved ) { diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp index 08371cb..1876011 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp @@ -12,13 +12,13 @@ // History: *********************************************************************/ XBOOL BMIndex_IsErrorOccur = XFALSE; -DWORD BMIndex_dwErrorCode = 0; +XLONG BMIndex_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_BMIndex m_PluginBMIndex; ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD PluginCore_GetLastError() +extern "C" XLONG PluginCore_GetLastError() { return BMIndex_dwErrorCode; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.h index b158828..3983a9b 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.h @@ -38,7 +38,7 @@ using namespace std; // History: *********************************************************************/ extern XBOOL BMIndex_IsErrorOccur; -extern DWORD BMIndex_dwErrorCode; +extern XLONG BMIndex_dwErrorCode; #ifdef _MSC_BUILD diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/Makefile index a6dba1f..26480fa 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/Makefile @@ -6,8 +6,8 @@ FILEEXT = LIBFLAG = RELEASE = 0 UNICODE = 0 -LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp -LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -ljsoncpp LIBEX = OBJECTS = ModulePlugin_IPAddr.o ModulePlugin_Interface.o pch.o diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/PluginIPAddr_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/PluginIPAddr_Define.h index 15ae52b..2b96e5d 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/PluginIPAddr_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/PluginIPAddr_Define.h @@ -24,7 +24,7 @@ typedef struct ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD PluginCore_GetLastError(); +extern "C" XLONG PluginCore_GetLastError(); /********************************************************************************* * 导出函数定义 * *********************************************************************************/ diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp index b3df321..cb8e9bb 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp @@ -2,7 +2,7 @@ #include "pch.h" XBOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, + XLONG ul_reason_for_call, XPVOID lpReserved ) { diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp index b569a76..3384ede 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp @@ -12,13 +12,13 @@ // History: *********************************************************************/ XBOOL IPAddr_IsErrorOccur = XFALSE; -DWORD IPAddr_dwErrorCode = 0; +XLONG IPAddr_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_Interface m_PluginIPAddr; ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD PluginCore_GetLastError() +extern "C" XLONG PluginCore_GetLastError() { return IPAddr_dwErrorCode; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.h index 0a97ff0..f4fe4ec 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.h @@ -34,7 +34,7 @@ using namespace std; // History: *********************************************************************/ extern XBOOL IPAddr_IsErrorOccur; -extern DWORD IPAddr_dwErrorCode; +extern XLONG IPAddr_dwErrorCode; #include "ModulePlugin_IPAddr/ModulePlugin_IPAddr.h" diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile index e5c0d96..a31909b 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile @@ -6,8 +6,8 @@ FILEEXT = LIBFLAG = RELEASE = 0 UNICODE = 0 -LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp -LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -ljsoncpp LIBEX = OBJECTS = Plugin_Meter.o pch.o diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h index 1b2d8f2..7a84a83 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h @@ -66,7 +66,7 @@ typedef enum ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD PluginCore_GetLastError(); +extern "C" XLONG PluginCore_GetLastError(); /********************************************************************************* * 导出函数定义 * *********************************************************************************/ diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp index 81c9f1a..52bff00 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp @@ -2,7 +2,7 @@ #include "pch.h" XBOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, + XLONG ul_reason_for_call, XPVOID lpReserved ) { diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp index ac24b19..6b3d035 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp @@ -12,13 +12,13 @@ // History: *********************************************************************/ XBOOL Meter_IsErrorOccur = XFALSE; -DWORD Meter_dwErrorCode = 0; +XLONG Meter_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Meter m_PluginMeter; ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD PluginCore_GetLastError() +extern "C" XLONG PluginCore_GetLastError() { return Meter_dwErrorCode; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h index f46ea2f..44a8425 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h @@ -36,7 +36,7 @@ // History: *********************************************************************/ extern XBOOL Meter_IsErrorOccur; -extern DWORD Meter_dwErrorCode; +extern XLONG Meter_dwErrorCode; #ifdef _MSC_BUILD diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Makefile index 1582361..64df18d 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Makefile @@ -6,8 +6,8 @@ FILEEXT = LIBFLAG = RELEASE = 0 UNICODE = 0 -LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp -LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -ljsoncpp LIBEX = OBJECTS = Plugin_Password.o pch.o diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/PluginPass_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/PluginPass_Define.h index 840f2ea..303b78c 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/PluginPass_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/PluginPass_Define.h @@ -13,7 +13,7 @@ ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD PluginCore_GetLastError(); +extern "C" XLONG PluginCore_GetLastError(); /********************************************************************************* * 导出函数定义 * *********************************************************************************/ diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp index 81c9f1a..52bff00 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp @@ -2,7 +2,7 @@ #include "pch.h" XBOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, + XLONG ul_reason_for_call, XPVOID lpReserved ) { diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp index a7d10e6..d511a96 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp @@ -12,13 +12,13 @@ // History: *********************************************************************/ XBOOL Pass_IsErrorOccur = XFALSE; -DWORD Pass_dwErrorCode = 0; +XLONG Pass_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Password m_PluginPass; ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD PluginCore_GetLastError() +extern "C" XLONG PluginCore_GetLastError() { return Pass_dwErrorCode; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.h index d1a686d..14d058c 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.h @@ -34,7 +34,7 @@ using namespace std; // History: *********************************************************************/ extern XBOOL Pass_IsErrorOccur; -extern DWORD Pass_dwErrorCode; +extern XLONG Pass_dwErrorCode; #ifdef _MSC_BUILD diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/Makefile index de29fc1..fc60636 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/Makefile @@ -6,8 +6,8 @@ FILEEXT = LIBFLAG = RELEASE = 0 UNICODE = 0 -LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp -LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -ljsoncpp LIBEX = OBJECTS = ModulePlugin_DBPhone.o ModulePlugin_APIPhone.o pch.o diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.h index b3f289e..c59a682 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.h @@ -15,7 +15,7 @@ typedef struct { - BYTE byVersion[4]; + XBYTE byVersion[4]; unsigned int nOffset; }XENGINE_DBPHONEHDR; @@ -23,7 +23,7 @@ typedef struct { unsigned int nPhone; unsigned int nOffset; - BYTE byType; + XBYTE byType; }XENGINE_DBPHONERECORD; class CModulePlugin_DBPhone diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/PluginPhone_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/PluginPhone_Define.h index 37f1351..12db78f 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/PluginPhone_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/PluginPhone_Define.h @@ -36,7 +36,7 @@ typedef struct ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD PluginCore_GetLastError(); +extern "C" XLONG PluginCore_GetLastError(); /********************************************************************************* * 导出函数定义 * *********************************************************************************/ diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp index 81c9f1a..52bff00 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp @@ -2,7 +2,7 @@ #include "pch.h" XBOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, + XLONG ul_reason_for_call, XPVOID lpReserved ) { diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp index 4382b28..1aea763 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp @@ -12,13 +12,13 @@ // History: *********************************************************************/ XBOOL Phone_IsErrorOccur = XFALSE; -DWORD Phone_dwErrorCode = 0; +XLONG Phone_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_APIPhone m_PluginPhone; ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD PluginCore_GetLastError() +extern "C" XLONG PluginCore_GetLastError() { return Phone_dwErrorCode; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.h index 0c7f001..2226235 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.h @@ -34,7 +34,7 @@ using namespace std; // History: *********************************************************************/ extern XBOOL Phone_IsErrorOccur; -extern DWORD Phone_dwErrorCode; +extern XLONG Phone_dwErrorCode; #include "ModulePlugin_DBPhone/ModulePlugin_DBPhone.h" diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Makefile index 355456f..bb2b5ed 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Makefile @@ -6,8 +6,8 @@ FILEEXT = LIBFLAG = RELEASE = 0 UNICODE = 0 -LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp -LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -ljsoncpp LIBEX = OBJECTS = Plugin_Timezone.o pch.o diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Timezone_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Timezone_Define.h index ed441b7..ab2e9f5 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Timezone_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Timezone_Define.h @@ -13,7 +13,7 @@ ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD PluginCore_GetLastError(); +extern "C" XLONG PluginCore_GetLastError(); /********************************************************************************* * 导出函数定义 * *********************************************************************************/ diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp index 81c9f1a..52bff00 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp @@ -2,7 +2,7 @@ #include "pch.h" XBOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, + XLONG ul_reason_for_call, XPVOID lpReserved ) { diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp index 1b86d39..75f01bc 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp @@ -12,13 +12,13 @@ // History: *********************************************************************/ XBOOL Timezone_IsErrorOccur = XFALSE; -DWORD Timezone_dwErrorCode = 0; +XLONG Timezone_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Timezone m_PluginTimes; ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD PluginCore_GetLastError() +extern "C" XLONG PluginCore_GetLastError() { return Timezone_dwErrorCode; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.h index 8188124..09b583f 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.h @@ -38,7 +38,7 @@ using namespace std; // History: *********************************************************************/ extern XBOOL Timezone_IsErrorOccur; -extern DWORD Timezone_dwErrorCode; +extern XLONG Timezone_dwErrorCode; #ifdef _MSC_BUILD diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Makefile index 7bab638..49a47fb 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Makefile +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Makefile @@ -6,8 +6,8 @@ FILEEXT = LIBFLAG = RELEASE = 0 UNICODE = 0 -LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp -LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../XEngine_ThirdPart/jsoncpp +LOADHDR = -I ./ -I ../../XEngine_ThirdPart/jsoncpp +LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp LIB = -lXEngine_BaseLib -ljsoncpp LIBEX = OBJECTS = Plugin_Zodiac.o pch.o diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/PluginZodiac_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/PluginZodiac_Define.h index 7cd1667..6492b4f 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/PluginZodiac_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/PluginZodiac_Define.h @@ -13,7 +13,7 @@ ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD PluginCore_GetLastError(); +extern "C" XLONG PluginCore_GetLastError(); /********************************************************************************* * 导出函数定义 * *********************************************************************************/ diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp index 81c9f1a..52bff00 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp @@ -2,7 +2,7 @@ #include "pch.h" XBOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, + XLONG ul_reason_for_call, XPVOID lpReserved ) { diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp index 97fe2dd..9fda7da 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp @@ -12,13 +12,13 @@ // History: *********************************************************************/ XBOOL Zodiac_IsErrorOccur = XFALSE; -DWORD Zodiac_dwErrorCode = 0; +XLONG Zodiac_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Zodiac m_PluginZodiac; ////////////////////////////////////////////////////////////////////////// // 导出函数定义 ////////////////////////////////////////////////////////////////////////// -extern "C" DWORD PluginCore_GetLastError() +extern "C" XLONG PluginCore_GetLastError() { return Zodiac_dwErrorCode; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.h index c6b0caa..d7b28c1 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.h @@ -36,7 +36,7 @@ using namespace std; // History: *********************************************************************/ extern XBOOL Zodiac_IsErrorOccur; -extern DWORD Zodiac_dwErrorCode; +extern XLONG Zodiac_dwErrorCode; #ifdef _MSC_BUILD diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile index 6a77342..ab449f7 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile @@ -10,7 +10,7 @@ LOADHDR = -I ./ -I ../XEngine_ThirdPart/jsoncpp LOADSO = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_Core -L /usr/local/lib/XEngine_Release/XEngine_HelpComponents -L /usr/local/lib/XEngine_Release/XEngine_RfcComponents -L /usr/local/lib/XEngine_Release/XEngine_NetHelp \ -L ../../XEngine_ModuleConfigure -L ../../XEngine_ModuleDatabase -L ../../XEngine_ModuleProtocol -L ../../XEngine_ModuleHelp -L ../../XEngine_ModulePlugin \ -L ../../XEngine_ThirdPart/jsoncpp -LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXEngine_OPenSsl -lHelpComponents_XLog -lRfcComponents_HttpServer -lNetHelp_APIClient \ +LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXEngine_OPenSsl -lHelpComponents_XLog -lRfcComponents_HttpProtocol -lNetHelp_APIClient \ -lXEngine_ModuleConfigure -lXEngine_ModuleDatabase -lXEngine_ModuleProtocol -lXEngine_ModuleHelp -lXEngine_ModulePlugin \ -ljsoncpp LIBEX = diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp index 603724a..c6c6f51 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp @@ -34,7 +34,7 @@ XHTHREAD CALLBACK HTTPTask_TastPost_Thread(XPVOID lParam) for (int j = 0; j < ppSst_ListAddr[i]->nPktCount; j++) { int nMsgLen = 0; //客户端发送的数据大小,不包括头 - CHAR* ptszMsgBuffer = NULL; //客户端发送的数据 + XCHAR* ptszMsgBuffer = NULL; //客户端发送的数据 RFCCOMPONENTS_HTTP_REQPARAM st_HTTPReqparam; //客户端的请求参数 memset(&st_HTTPReqparam, '\0', sizeof(RFCCOMPONENTS_HTTP_REQPARAM)); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp index ec0a133..21ac6a3 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp @@ -29,7 +29,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN //打开 if (!ModuleHelp_Locker_OPen(xhToken)) { - DWORD dwRet = ModuleHelp_GetLastError(); + XLONG dwRet = ModuleHelp_GetLastError(); ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); @@ -53,7 +53,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN { if (!ModuleHelp_Locker_ReadLock(xhToken)) { - DWORD dwRet = ModuleHelp_GetLastError(); + XLONG dwRet = ModuleHelp_GetLastError(); ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); @@ -69,7 +69,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN { if (!ModuleHelp_Locker_ReadUNLock(xhToken)) { - DWORD dwRet = ModuleHelp_GetLastError(); + XLONG dwRet = ModuleHelp_GetLastError(); ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); @@ -85,7 +85,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN { if (!ModuleHelp_Locker_WriteLock(xhToken)) { - DWORD dwRet = ModuleHelp_GetLastError(); + XLONG dwRet = ModuleHelp_GetLastError(); ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); @@ -101,7 +101,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN { if (!ModuleHelp_Locker_WriteUNLock(xhToken)) { - DWORD dwRet = ModuleHelp_GetLastError(); + XLONG dwRet = ModuleHelp_GetLastError(); ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp index 785818c..56a0b18 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -void CALLBACK HTTPTask_TastPost_CBSocketTest(XNETHANDLE xhToken, LPCSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, XPVOID lParam) +void CALLBACK HTTPTask_TastPost_CBSocketTest(XNETHANDLE xhToken, LPCXSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, XPVOID lParam) { XENGINE_SOCKETTEST* pSt_SocketTest = (XENGINE_SOCKETTEST*)lParam; int nMsgLen = 0; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.h index c1438d1..8e320f7 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.h @@ -1,4 +1,4 @@ #pragma once -void CALLBACK HTTPTask_TastPost_CBSocketTest(XNETHANDLE xhToken, LPCSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, XPVOID lParam); +void CALLBACK HTTPTask_TastPost_CBSocketTest(XNETHANDLE xhToken, LPCXSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, XPVOID lParam); XBOOL HTTPTask_TastPost_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_UserProtocol.h b/XEngine_Source/XEngine_UserProtocol.h index 7979404..0fd720e 100644 --- a/XEngine_Source/XEngine_UserProtocol.h +++ b/XEngine_Source/XEngine_UserProtocol.h @@ -96,15 +96,15 @@ typedef enum typedef struct { XCHAR tszIDNumber[20]; - WORD nIDProvince; //省/自治区/直辖市 - WORD nIDCity; //市/区 - WORD nIDCounty; //县 - WORD nBirthYear; //出生年 - WORD nBirthMonth; //出生月 - WORD nBirthDay; //出生日 - WORD nPoliceID; //派出所编码 - WORD nSex; //性别 - WORD nCheck; //校验码 + XSHOT nIDProvince; //省/自治区/直辖市 + XSHOT nIDCity; //市/区 + XSHOT nIDCounty; //县 + XSHOT nBirthYear; //出生年 + XSHOT nBirthMonth; //出生月 + XSHOT nBirthDay; //出生日 + XSHOT nPoliceID; //派出所编码 + XSHOT nSex; //性别 + XSHOT nCheck; //校验码 }XENGINE_IDCARDINFO; //行政区域 typedef struct @@ -131,19 +131,19 @@ typedef struct //连接信息 typedef struct { - CHAR tszUserName[64]; //用户信息 - CHAR tszPrivateAddr[32]; //私有本地地址,内网地址 - CHAR tszPublicAddr[32]; //外网地址 - CHAR tszConnectAddr[32]; //链接地址 - WORD dwConnectType; //连接类型 - WORD dwPeerType; //节点类型 + XCHAR tszUserName[64]; //用户信息 + XCHAR tszPrivateAddr[32]; //私有本地地址,内网地址 + XCHAR tszPublicAddr[32]; //外网地址 + XCHAR tszConnectAddr[32]; //链接地址 + XSHOT dwConnectType; //连接类型 + XSHOT dwPeerType; //节点类型 }XENGINE_P2XPPEER_PROTOCOL, * LPXENGINE_P2XPPEER_PROTOCOL; //P2XP通道连接命令 typedef struct tag_XEngine_P2XPIO_Protocol { - CHAR tszSourceUser[32]; //请求连接的用户 - CHAR tszDestUser[32]; //要连接的用户 - CHAR tszConnectAddr[32]; //连接的IP地址 + XCHAR tszSourceUser[32]; //请求连接的用户 + XCHAR tszDestUser[32]; //要连接的用户 + XCHAR tszConnectAddr[32]; //连接的IP地址 int nDestPort; //要连接的端口 XBOOL bIsTcp; //连接类型TCP,否则为UDP }XENGINE_P2XPIO_PROTOCOL, * LPXENGINE_P2XPIO_PROTOCOL; @@ -179,7 +179,7 @@ typedef struct //网络测试 typedef struct { - CHAR tszAddr[64]; //要测试的IP地址 + XCHAR tszAddr[64]; //要测试的IP地址 int nPort; //端口号码 //单位毫秒 int nConnectCount; //要测试的客户端个数 @@ -193,8 +193,8 @@ typedef struct MODULEHELP_SOCKETTEST_RECONNECT st_REConnect; int nSDLen; //发送数据包大小,如果ptszSDBuffer的值为NULL,那么这个值表示测试端允许发送的大小,否则表示缓冲区大小 int nRVLen; //接收端大小,表示ptszRVBuffer缓冲区大小,ptszRVBuffer的值匹配接受数据才表示成功,如果ptszRVBuffer为NULL,不做数据验证只接受. - CHAR tszSDBuffer[4096]; //如果你的服务器有特殊数据测试,请填写这个参数,否则测试端将自定义数据发送,内存需要由用户管理 - CHAR tszRVBuffer[4096]; + XCHAR tszSDBuffer[4096]; //如果你的服务器有特殊数据测试,请填写这个参数,否则测试端将自定义数据发送,内存需要由用户管理 + XCHAR tszRVBuffer[4096]; }MODULEHELP_SOCKETTEST_DATAS, * LPMODULEHELP_SOCKETTEST_DATAS; typedef struct { @@ -214,7 +214,7 @@ typedef struct XCHAR tszKeyUrl[MAX_PATH]; XCHAR tszMapUrl[MAX_PATH]; XCHAR tszCvtUrl[MAX_PATH]; - XCHAR tszCreateTime[128]; + XCHAR tszCreateTime[64]; int nLength; int nID; }XENGINE_SHORTLINK; -- Gitee From c1690da9dbf0a41cd5ba1460d3b99fcb847272ad Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Wed, 12 Apr 2023 10:40:18 +0800 Subject: [PATCH 14/26] added:short link sql --- XEngine_SQL/XEngine_APISLink.sql | 34 ++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 XEngine_SQL/XEngine_APISLink.sql diff --git a/XEngine_SQL/XEngine_APISLink.sql b/XEngine_SQL/XEngine_APISLink.sql new file mode 100644 index 0000000..9c7c4dc --- /dev/null +++ b/XEngine_SQL/XEngine_APISLink.sql @@ -0,0 +1,34 @@ +/* + Navicat Premium Data Transfer + + Source Server : QCloud + Source Server Type : MySQL + Source Server Version : 80032 (8.0.32-0ubuntu0.22.04.2) + Source Host : 42.194.178.57:3306 + Source Schema : XEngine_APISLink + + Target Server Type : MySQL + Target Server Version : 80032 (8.0.32-0ubuntu0.22.04.2) + File Encoding : 65001 + + Date: 11/04/2023 13:54:53 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for XEngine_ShortLink +-- ---------------------------- +DROP TABLE IF EXISTS `XEngine_ShortLink`; +CREATE TABLE `XEngine_ShortLink` ( + `ID` int NOT NULL AUTO_INCREMENT COMMENT 'ID', + `tszFullUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '要映射的URL', + `tszShortUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '短连接URL', + `tszKeyUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'URLKey', + `tszMapUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '映射到的地址', + `tszCreateTime` datetime NOT NULL COMMENT '创建的时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +SET FOREIGN_KEY_CHECKS = 1; -- Gitee From 561ebd8a80b4881ca52f751905b16a0def91be44 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Wed, 12 Apr 2023 13:56:10 +0800 Subject: [PATCH 15/26] added:short link forward function --- .../ModuleConfig_Define.h | 4 ++ .../ModuleConfig_Error.h | 1 + .../ModuleConfigure_Json.cpp | 9 +++ .../XEngine_HttpApp/XEngine_HTTPTask.cpp | 16 ++++-- .../XEngine_HttpApp/XEngine_HTTPTask.h | 2 +- .../XEngine_TaskPost/TaskPost_ShortLink.cpp | 56 +++++++++++++++++-- .../XEngine_TaskPost/TaskPost_ShortLink.h | 1 + 7 files changed, 80 insertions(+), 9 deletions(-) diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h index 855619e..d4c40ea 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h @@ -62,6 +62,10 @@ typedef struct XCHAR tszConfigQRCode[MAX_PATH]; //二维码配置地址 }st_XConfig; struct + { + XCHAR tszHostUrl[MAX_PATH]; //主机地址 + }st_XShortLink; + struct { list* pStl_ListVer; }st_XVer; diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Error.h b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Error.h index bb2e76d..8ecffcb 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Error.h +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Error.h @@ -22,6 +22,7 @@ #define ERROR_MODULE_CONFIGURE_JSON_MALLOC 0xA000A //申请内存失败 #define ERROR_MODULE_CONFIGURE_JSON_XAPI 0xA000B //API配置失败 #define ERROR_MODULE_CONFIGURE_JSON_XCONFIG 0xA000C //配置文件配置加载失败 +#define ERROR_MODULE_CONFIGURE_JSON_XSLINK 0xA000D //短连接配置错误 ////////////////////////////////////////////////////////////////////////// #define ERROR_MODULE_CONFIGURE_FILE_PARAMENT 0xA1001 //参数错误 #define ERROR_MODULE_CONFIGURE_FILE_OPENFILE 0xA1002 //打开文件失败 diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp index 5d10da8..8d60179 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp @@ -162,6 +162,15 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X _tcscpy(pSt_ServerConfig->st_XConfig.tszConfigOPencc, st_JsonXConfig["tszConfigOPencc"].asCString()); _tcscpy(pSt_ServerConfig->st_XConfig.tszConfigQRCode, st_JsonXConfig["tszConfigQRCode"].asCString()); + if (st_JsonRoot["XShortLink"].empty() || (1 != st_JsonRoot["XShortLink"].size())) + { + Config_IsErrorOccur = XTRUE; + Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XSLINK; + return XFALSE; + } + Json::Value st_JsonXShort = st_JsonRoot["XConfig"]; + _tcscpy(pSt_ServerConfig->st_XShortLink.tszHostUrl, st_JsonXShort["tszHostUrl"].asCString()); + if (st_JsonRoot["XVer"].empty()) { Config_IsErrorOccur = XTRUE; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp index c6c6f51..fa4501c 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp @@ -34,17 +34,20 @@ XHTHREAD CALLBACK HTTPTask_TastPost_Thread(XPVOID lParam) for (int j = 0; j < ppSst_ListAddr[i]->nPktCount; j++) { int nMsgLen = 0; //客户端发送的数据大小,不包括头 + int nHDRCount = 0; XCHAR* ptszMsgBuffer = NULL; //客户端发送的数据 + XCHAR** pptszListHdr; RFCCOMPONENTS_HTTP_REQPARAM st_HTTPReqparam; //客户端的请求参数 memset(&st_HTTPReqparam, '\0', sizeof(RFCCOMPONENTS_HTTP_REQPARAM)); //得到一个指定客户端的完整数据包 - if (HttpProtocol_Server_GetMemoryEx(xhHTTPPacket, ppSst_ListAddr[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &st_HTTPReqparam)) + if (HttpProtocol_Server_GetMemoryEx(xhHTTPPacket, ppSst_ListAddr[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &st_HTTPReqparam, &pptszListHdr, &nHDRCount)) { //在另外一个函数里面处理数据 - HTTPTask_TastPost_Handle(&st_HTTPReqparam, ppSst_ListAddr[i]->tszClientAddr, ptszMsgBuffer, nMsgLen); + HTTPTask_TastPost_Handle(&st_HTTPReqparam, ppSst_ListAddr[i]->tszClientAddr, ptszMsgBuffer, nMsgLen, &pptszListHdr, nHDRCount); //释放内存 - BaseLib_OperatorMemory_FreeCStyle((VOID**)&ptszMsgBuffer); + BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); + BaseLib_OperatorMemory_Free((XPPPMEM)&pptszListHdr, nHDRCount); } } } @@ -52,7 +55,7 @@ XHTHREAD CALLBACK HTTPTask_TastPost_Thread(XPVOID lParam) } return 0; } -XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen) +XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR*** ppptszHDRList, int nHDRCount) { int nMsgLen = 4096; LPCXSTR lpszMethodPost = _T("POST"); @@ -75,6 +78,11 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS HttpProtocol_ServerHelp_GetParament(pSt_HTTPParam->tszHttpUri, &pptszList, &nListCount, tszUrlName); if (nListCount < 1) { + //是不是代理转发 + if (HTTPTask_TaskPost_SLProxy(lpszClientAddr, pSt_HTTPParam->tszHttpUri, ppptszHDRList, nHDRCount)) + { + return XTRUE; + } st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h index 20d0559..a0b58ac 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h @@ -13,4 +13,4 @@ //任务处理池,用来获取一个完整包 XHTHREAD CALLBACK HTTPTask_TastPost_Thread(XPVOID lParam); //任务处理相关函数,处理包的内容 -XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen); \ No newline at end of file +XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR*** ppptszHDRList, int nHDRCount); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp index a304a92..9201980 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp @@ -1,5 +1,53 @@ #include "../XEngine_Hdr.h" +XBOOL HTTPTask_TaskPost_SLProxy(LPCXSTR lpszClientAddr, LPCXSTR lpszUriStr, XCHAR*** ppptszHDRList, int nHDRCount) +{ + //是不是代理转发 + XBOOL bFound = XFALSE; + for (int i = 0; i < nHDRCount; i++) + { + XCHAR tszKey[MAX_PATH]; + XCHAR tszValue[MAX_PATH]; + + memset(tszKey, '\0', sizeof(tszKey)); + memset(tszValue, '\0', sizeof(tszValue)); + + BaseLib_OperatorString_GetKeyValue((*ppptszHDRList)[i], ": ", tszKey, tszValue); + if (0 == _tcsnicmp(st_ServiceConfig.st_XShortLink.tszHostUrl, tszValue, _tcslen(st_ServiceConfig.st_XShortLink.tszHostUrl))) + { + bFound = XTRUE; + break; + } + } + if (!bFound) + { + return XFALSE; + } + int nSDLen = 0; + XCHAR tszSDBuffer[4096]; + XCHAR tszRVBuffer[4096]; + XENGINE_SHORTLINK st_ShortLink; + RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; + + memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); + memset(tszRVBuffer, '\0', sizeof(tszRVBuffer)); + memset(&st_ShortLink, '\0', sizeof(XENGINE_SHORTLINK)); + memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); + + _stprintf(st_ShortLink.tszMapUrl, _T("http://%s%s"), st_ServiceConfig.st_XShortLink.tszHostUrl, lpszUriStr); + if (!ModuleDatabase_ShortLink_Query(&st_ShortLink)) + { + return XFALSE; + } + st_HDRParam.nHttpCode = 301; + st_HDRParam.bIsClose = XTRUE; + + _stprintf(tszRVBuffer, _T("Location: %s\r\n"), st_ShortLink.tszFullUrl); + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszRVBuffer); + XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的短连接地址重定向成功,短连接:%s,长连接:%s"), lpszClientAddr, st_ShortLink.tszMapUrl, st_ShortLink.tszFullUrl); + return XTRUE; +} XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 0; @@ -27,7 +75,7 @@ XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, st_HDRParam.nHttpCode = 400; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求生成短连接生成错误,生成的连接:%s,替换的连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszCvtUrl, HttpProtocol_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,请求生成短连接生成错误,生成的连接:%s,替换的连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszCvtUrl, HttpProtocol_GetLastError()); return XFALSE; } _stprintf(st_ShortLink.tszMapUrl, _T("%s/%s"), st_ShortLink.tszShotUrl, st_ShortLink.tszKeyUrl); @@ -36,7 +84,7 @@ XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, st_HDRParam.nHttpCode = 400; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求生成短连接插入数据库错误,生成的连接:%s,替换的连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszCvtUrl, ModuleDB_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,请求生成短连接插入数据库错误,生成的连接:%s,替换的连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszCvtUrl, ModuleDB_GetLastError()); return XFALSE; } } @@ -47,7 +95,7 @@ XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, st_HDRParam.nHttpCode = 400; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求获取短连接错误,连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszMapUrl, ModuleDB_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,请求获取短连接错误,连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszMapUrl, ModuleDB_GetLastError()); return XFALSE; } } @@ -58,7 +106,7 @@ XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, st_HDRParam.nHttpCode = 400; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求删除短连接错误,完整地址:%s,映射地址:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszMapUrl, ModuleDB_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,请求删除短连接错误,完整地址:%s,映射地址:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszMapUrl, ModuleDB_GetLastError()); return XFALSE; } } diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.h index 34076ba..2e48bfd 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.h @@ -1,3 +1,4 @@ #pragma once +XBOOL HTTPTask_TaskPost_SLProxy(LPCXSTR lpszClientAddr, LPCXSTR lpszUriStr, XCHAR*** ppptszHDRList, int nHDRCount); XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file -- Gitee From 1c60b7315f6ebc8028823e9dd4f1d598c185c2ae Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Wed, 12 Apr 2023 13:59:58 +0800 Subject: [PATCH 16/26] added:set short link forward mode --- XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h | 1 + .../ModuleConfigure_Json/ModuleConfigure_Json.cpp | 3 ++- .../XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h index d4c40ea..c1c5964 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h @@ -64,6 +64,7 @@ typedef struct struct { XCHAR tszHostUrl[MAX_PATH]; //主机地址 + int nHTTPCode; //转发模式,301 永久,302 临时 }st_XShortLink; struct { diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp index 8d60179..75fdf56 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp @@ -162,7 +162,7 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X _tcscpy(pSt_ServerConfig->st_XConfig.tszConfigOPencc, st_JsonXConfig["tszConfigOPencc"].asCString()); _tcscpy(pSt_ServerConfig->st_XConfig.tszConfigQRCode, st_JsonXConfig["tszConfigQRCode"].asCString()); - if (st_JsonRoot["XShortLink"].empty() || (1 != st_JsonRoot["XShortLink"].size())) + if (st_JsonRoot["XShortLink"].empty() || (2 != st_JsonRoot["XShortLink"].size())) { Config_IsErrorOccur = XTRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XSLINK; @@ -170,6 +170,7 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X } Json::Value st_JsonXShort = st_JsonRoot["XConfig"]; _tcscpy(pSt_ServerConfig->st_XShortLink.tszHostUrl, st_JsonXShort["tszHostUrl"].asCString()); + pSt_ServerConfig->st_XShortLink.nHTTPCode = st_JsonXShort["nHTTPCode"].asInt(); if (st_JsonRoot["XVer"].empty()) { diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp index 9201980..a12cfb9 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp @@ -39,7 +39,7 @@ XBOOL HTTPTask_TaskPost_SLProxy(LPCXSTR lpszClientAddr, LPCXSTR lpszUriStr, XCHA { return XFALSE; } - st_HDRParam.nHttpCode = 301; + st_HDRParam.nHttpCode = st_ServiceConfig.st_XShortLink.nHTTPCode; st_HDRParam.bIsClose = XTRUE; _stprintf(tszRVBuffer, _T("Location: %s\r\n"), st_ShortLink.tszFullUrl); -- Gitee From accdb25fe067897bc4c89d86afefad530281eb20 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Wed, 12 Apr 2023 14:28:47 +0800 Subject: [PATCH 17/26] delete:option code --- .../ModuleConfigure_Json.cpp | 2 +- .../XEngine_HttpApp/Makefile | 4 +- .../XEngine_HttpApp/XEngine_HTTPTask.cpp | 8 +--- .../XEngine_HttpApp/XEngine_Hdr.h | 1 - .../XEngine_HttpApp/XEngine_HttpApp.vcxproj | 2 - .../XEngine_HttpApp.vcxproj.filters | 6 --- .../XEngine_TaskGet/TaskGet_OPtions.cpp | 37 ------------------- .../XEngine_TaskGet/TaskGet_OPtions.h | 3 -- 8 files changed, 3 insertions(+), 60 deletions(-) delete mode 100644 XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.cpp delete mode 100644 XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.h diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp index 75fdf56..a2985c1 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp @@ -168,7 +168,7 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XSLINK; return XFALSE; } - Json::Value st_JsonXShort = st_JsonRoot["XConfig"]; + Json::Value st_JsonXShort = st_JsonRoot["XShortLink"]; _tcscpy(pSt_ServerConfig->st_XShortLink.tszHostUrl, st_JsonXShort["tszHostUrl"].asCString()); pSt_ServerConfig->st_XShortLink.nHTTPCode = st_JsonXShort["nHTTPCode"].asInt(); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile index ab449f7..70f092c 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile @@ -15,7 +15,7 @@ LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -ljsoncpp LIBEX = OBJECTS = XEngine_Configure.o XEngine_Network.o XEngine_HTTPTask.o XEngine_PluginTask.o XEngine_HttpApp.o \ - TaskGet_Bank.o TaskGet_IDCard.o TaskGet_Language.o TaskGet_Locker.o TaskGet_OPtions.o TaskGet_Translation.o \ + TaskGet_Bank.o TaskGet_IDCard.o TaskGet_Language.o TaskGet_Locker.o TaskGet_Translation.o \ TaskPost_DTest.o TaskPost_Log.o TaskPost_P2PClient.o TaskPost_PostCode.o TaskPost_QRCode.o TaskPost_ShortLink.o TaskPost_SocketTest.o ifeq ($(RELEASE),1) @@ -74,8 +74,6 @@ TaskGet_Language.o:./XEngine_TaskGet/TaskGet_Language.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskGet/TaskGet_Language.cpp TaskGet_Locker.o:./XEngine_TaskGet/TaskGet_Locker.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskGet/TaskGet_Locker.cpp -TaskGet_OPtions.o:./XEngine_TaskGet/TaskGet_OPtions.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskGet/TaskGet_OPtions.cpp TaskGet_Translation.o:./XEngine_TaskGet/TaskGet_Translation.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./XEngine_TaskGet/TaskGet_Translation.cpp diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp index fa4501c..e7647dc 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp @@ -96,7 +96,6 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS LPCXSTR lpszParamFuncKey = _T("function"); LPCXSTR lpszParamName = _T("params1"); //get - LPCXSTR lpszParamOPtions = _T("options"); LPCXSTR lpszParamIDCard = _T("id"); LPCXSTR lpszParamBank = _T("bank"); LPCXSTR lpszParamLanguage = _T("language"); @@ -264,12 +263,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS } else if (0 == _tcsnicmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcslen(lpszMethodGet))) { - if (0 == _tcsnicmp(lpszParamOPtions, tszValue, _tcslen(lpszParamOPtions))) - { - //HTTP能力查询 - HTTPTask_TaskGet_OPTions(lpszClientAddr); - } - else if (0 == _tcsnicmp(lpszParamIDCard, tszValue, _tcslen(lpszParamIDCard))) + if (0 == _tcsnicmp(lpszParamIDCard, tszValue, _tcslen(lpszParamIDCard))) { //是不是身份证查询 memset(tszKey, '\0', sizeof(tszKey)); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h index 7c9e8cd..c63abf4 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h @@ -72,7 +72,6 @@ using namespace std; #include "XEngine_TaskGet/TaskGet_Language.h" #include "XEngine_TaskGet/TaskGet_Translation.h" #include "XEngine_TaskGet/TaskGet_Locker.h" -#include "XEngine_TaskGet/TaskGet_OPtions.h" /******************************************************************** // Created: 2022/01/20 14:42:06 // File Name: D:\XEngine_ServiceApp\XEngine_Source\XEngine_ServiceApp\XEngine_HttpApp\XEngine_Hdr.h diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj index fad7fc0..7ffcebf 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj @@ -162,7 +162,6 @@ - @@ -182,7 +181,6 @@ - diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters index b756c10..8d35df7 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters @@ -69,9 +69,6 @@ 源文件\XEngine_TaskGet - - 源文件\XEngine_TaskGet - 源文件\XEngine_TaskGet @@ -125,9 +122,6 @@ 头文件\XEngine_TaskGet - - 头文件\XEngine_TaskGet - 头文件\XEngine_TaskGet diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.cpp deleted file mode 100644 index be1d2f4..0000000 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include "../XEngine_Hdr.h" - - -XBOOL HTTPTask_TaskGet_OPTions(LPCXSTR lpszClientAddr) -{ - int nMsgLen = 4096; - int nPktLen = 4096; - XCHAR tszMsgBuffer[4096]; - XCHAR tszPktBuffer[4096]; - RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 - - memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); - memset(tszPktBuffer, '\0', sizeof(tszPktBuffer)); - memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); - - st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 - //解析能力配置 - XENGINE_OPTIONLIST st_OPtionList; - LPCXSTR lpszOPFile = _T("./XEngine_Config/XEngine_OPtionConfig.json"); - FILE* pSt_File = _tfopen(lpszOPFile, _T("rb")); - if (NULL == pSt_File) - { - st_HDRParam.nHttpCode = 404; - HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); - XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,查询服务器能力失败,没有找到配置文件"), lpszClientAddr); - return XFALSE; - } - nPktLen = fread(tszPktBuffer, 1, nPktLen, pSt_File); - fclose(pSt_File); - //打包发送 - HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); - XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,查询服务器能力成功"), lpszClientAddr); - return XTRUE; -} \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.h deleted file mode 100644 index 55cc126..0000000 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_OPtions.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -XBOOL HTTPTask_TaskGet_OPTions(LPCXSTR lpszClientAddr); \ No newline at end of file -- Gitee From 4592bb6801aa0ff787924dfc18ffb3ff5bfb66e1 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 13 Apr 2023 15:57:44 +0800 Subject: [PATCH 18/26] modify:main makefile --- XEngine_Source/Makefile | 40 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/XEngine_Source/Makefile b/XEngine_Source/Makefile index 6236078..9306b15 100644 --- a/XEngine_Source/Makefile +++ b/XEngine_Source/Makefile @@ -1,7 +1,7 @@ RELEASE = 0 UNICODE = 0 -#编译的选项参数 -FLAGS = RELEASE=$(RELEASE) +PLATFORM=linux +FLAGS= #要编译的模块 THIRDPART_MODULE_JSONCPP = ./XEngine_ThirdPart/jsoncpp @@ -32,41 +32,33 @@ XENGINE_MODULES = libjsoncpp.so \ MakeAll:$(XENGINE_MODULES) libjsoncpp.so: - make -C $(THIRDPART_MODULE_JSONCPP) $(FLAGS) + make -C $(THIRDPART_MODULE_JSONCPP) PLATFORM=$(PLATFORM) $(FLAGS) libXEngine_ModuleConfigure.so: - make -C $(MODULE_CONFIGURE_PATH) $(FLAGS) + make -C $(MODULE_CONFIGURE_PATH) PLATFORM=$(PLATFORM) $(FLAGS) libXEngine_ModuleDatabase.so: - make -C $(MODULE_DATABASE_PATH) $(FLAGS) + make -C $(MODULE_DATABASE_PATH) PLATFORM=$(PLATFORM) $(FLAGS) libXEngine_ModuleProtocol.so: - make -C $(MODULE_PROTOCOL_PATH) $(FLAGS) + make -C $(MODULE_PROTOCOL_PATH) PLATFORM=$(PLATFORM) $(FLAGS) libXEngine_ModuleHelp.so: - make -C $(MODULE_HELP_PATH) $(FLAGS) + make -C $(MODULE_HELP_PATH) PLATFORM=$(PLATFORM) $(FLAGS) libXEngine_ModulePlugin.so: - make -C $(MODULE_PLUGIN_PATH) $(FLAGS) + make -C $(MODULE_PLUGIN_PATH) PLATFORM=$(PLATFORM) $(FLAGS) libModulePlugin_Zodiac.so: - make -C $(PLUGIN_MODULE_ZODIAC) $(FLAGS) + make -C $(PLUGIN_MODULE_ZODIAC) PLATFORM=$(PLATFORM) $(FLAGS) libModulePlugin_Password.so: - make -C $(PLUGIN_MODULE_PASSWORD) $(FLAGS) + make -C $(PLUGIN_MODULE_PASSWORD) PLATFORM=$(PLATFORM) $(FLAGS) libModulePlugin_Timezone.so: - make -C $(PLUGIN_MODULE_TIMEZONE) $(FLAGS) + make -C $(PLUGIN_MODULE_TIMEZONE) PLATFORM=$(PLATFORM) $(FLAGS) libModulePlugin_BMIndex.so: - make -C $(PLUGIN_MODULE_BMINDEX) $(FLAGS) + make -C $(PLUGIN_MODULE_BMINDEX) PLATFORM=$(PLATFORM) $(FLAGS) libModulePlugin_Meter.so: - make -C $(PLUGIN_MODULE_METER) $(FLAGS) + make -C $(PLUGIN_MODULE_METER) PLATFORM=$(PLATFORM) $(FLAGS) libModulePlugin_Phone.so: - make -C $(PLUGIN_MODULE_PHONE) $(FLAGS) + make -C $(PLUGIN_MODULE_PHONE) PLATFORM=$(PLATFORM) $(FLAGS) libModulePlugin_IPAddr.so: - make -C $(PLUGIN_MODULE_IPADDR) $(FLAGS) + make -C $(PLUGIN_MODULE_IPADDR) PLATFORM=$(PLATFORM) $(FLAGS) XEngine_HttpApp.exe: - make -C $(APP_HTTP_PATH) $(FLAGS) - -SetFlags_Install: - export FLAGS=InstallAll -InstallAll:SetFlags_Install $(NETENGINE_LIB) - -SetFlags_Clean: - export FLAGS=CleanAll -CleanAll:SetFlags_Clean $(NETENGINE_LIB) + make -C $(APP_HTTP_PATH) PLATFORM=$(PLATFORM) $(FLAGS) -- Gitee From e14e5844fd476c2cc224821e2decc5ca1b587156 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 13 Apr 2023 16:44:34 +0800 Subject: [PATCH 19/26] added:datatest and short link example modify:test name to socket --- .../APPClient_DTestExample.cpp | 46 ++++++ .../APPClient_DTestExample.vcxproj | 139 ++++++++++++++++++ .../APPClient_DTestExample.vcxproj.filters} | 2 +- .../APPClient_DTestExample.vcxproj.user} | 0 .../APPClient_SLinkExample.cpp | 102 +++++++++++++ .../APPClient_SLinkExample.vcxproj} | 6 +- .../APPClient_SLinkExample.vcxproj.filters | 22 +++ .../APPClient_SLinkExample.vcxproj.user | 4 + .../APPClient_SocketExample.cpp} | 8 +- .../APPClient_SocketExample.vcxproj | 139 ++++++++++++++++++ .../APPClient_SocketExample.vcxproj.filters | 22 +++ .../APPClient_SocketExample.vcxproj.user | 4 + XEngine_APPClient/VSCopy-x64.bat | 4 +- XEngine_APPClient/XEngine_APPClient.sln | 38 +++-- 14 files changed, 517 insertions(+), 19 deletions(-) create mode 100644 XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.cpp create mode 100644 XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.vcxproj rename XEngine_APPClient/{APPClient_TestExample/APPClient_TestExample.vcxproj.filters => APPClient_DTestExample/APPClient_DTestExample.vcxproj.filters} (94%) rename XEngine_APPClient/{APPClient_TestExample/APPClient_TestExample.vcxproj.user => APPClient_DTestExample/APPClient_DTestExample.vcxproj.user} (100%) create mode 100644 XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.cpp rename XEngine_APPClient/{APPClient_TestExample/APPClient_TestExample.vcxproj => APPClient_SLinkExample/APPClient_SLinkExample.vcxproj} (97%) create mode 100644 XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.vcxproj.filters create mode 100644 XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.vcxproj.user rename XEngine_APPClient/{APPClient_TestExample/APPClient_TestExample.cpp => APPClient_SocketExample/APPClient_SocketExample.cpp} (84%) create mode 100644 XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.vcxproj create mode 100644 XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.vcxproj.filters create mode 100644 XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.vcxproj.user diff --git a/XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.cpp b/XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.cpp new file mode 100644 index 0000000..8f68171 --- /dev/null +++ b/XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.cpp @@ -0,0 +1,46 @@ +#ifdef _MSC_BUILD +#include +#include +#pragma comment(lib,"Ws2_32") +#pragma comment(lib,"XEngine_BaseLib/XEngine_BaseLib") +#pragma comment(lib,"XEngine_NetHelp/NetHelp_APIClient") +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//需要优先配置XEngine +//WINDOWS支持VS2022 x64 debug 编译调试 +//linux使用下面的命令编译 +//g++ -std=c++17 -Wall -g APPClient_DTestExample.cpp -o APPClient_DTestExample.exe -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_NetHelp -lXEngine_BaseLib -lNetHelp_APIClient + +int main() +{ +#ifdef _MSC_BUILD + WSADATA st_WSAData; + WSAStartup(MAKEWORD(2, 2), &st_WSAData); +#endif + int nLen = 0; + XCHAR* ptszMsgBuffer = NULL; + LPCXSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=dtest¶ms1=0"); + + if (!APIClient_Http_Request(_T("POST"), lpszUrl, "hello", NULL, &ptszMsgBuffer, &nLen)) + { + printf("发送投递失败!\n"); + return 0; + } + printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer); + BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); + +#ifdef _MSC_BUILD + WSACleanup(); +#endif + return 0; +} \ No newline at end of file diff --git a/XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.vcxproj b/XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.vcxproj new file mode 100644 index 0000000..9142727 --- /dev/null +++ b/XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.vcxproj @@ -0,0 +1,139 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {753b7188-3120-4283-959d-a2f95fa7c32a} + APPClientDTestExample + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + MultiByte + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + $(XEngine_Include);$(IncludePath) + $(XEngine_Lib64);$(LibraryPath) + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.vcxproj.filters b/XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.vcxproj.filters similarity index 94% rename from XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.vcxproj.filters rename to XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.vcxproj.filters index ca99a94..ea35840 100644 --- a/XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.vcxproj.filters +++ b/XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.vcxproj.filters @@ -15,7 +15,7 @@ - + 源文件 diff --git a/XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.vcxproj.user b/XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.vcxproj.user similarity index 100% rename from XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.vcxproj.user rename to XEngine_APPClient/APPClient_DTestExample/APPClient_DTestExample.vcxproj.user diff --git a/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.cpp b/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.cpp new file mode 100644 index 0000000..54c2459 --- /dev/null +++ b/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.cpp @@ -0,0 +1,102 @@ +#ifdef _MSC_BUILD +#include +#include +#pragma comment(lib,"Ws2_32") +#pragma comment(lib,"jsoncpp") +#pragma comment(lib,"XEngine_BaseLib/XEngine_BaseLib") +#pragma comment(lib,"XEngine_NetHelp/NetHelp_APIClient") +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//需要优先配置XEngine +//WINDOWS支持VS2022 x64 debug 编译调试 +//linux::g++ -std=c++17 -Wall -g APPClient_SLinkExample.cpp -o APPClient_SLinkExample.exe -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_NetHelp -lXEngine_BaseLib -lNetHelp_APIClient +//macos::g++ -std=c++17 -Wall -g APPClient_SLinkExample.cpp -o APPClient_SLinkExample.exe -lXEngine_BaseLib -lNetHelp_APIClient + +XNETHANDLE xhToken = 0; +#define QRCODE_BUFFER_SIZE 1024 * 1024 * 10 +LPCXSTR lpszFileName = _T("D:\\XEngine_APIService\\XEngine_APPClient\\x64\\Debug\\1.png"); + +int test_create() +{ + int nLen = 0; + int nCode = 0; + LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=slink¶ms1=0"); + + Json::Value st_JsonRoot; + st_JsonRoot["tszFullUrl"] = "http://bbs.xyry.org/forum.php?mod=viewthread&tid=2&extra=page%3D1"; + st_JsonRoot["tszCvtUrl"] = "http://app.xyry.org:5501"; + st_JsonRoot["nLength"] = 6; + + XCHAR* ptszMsgBuffer = NULL; + if (!APIClient_Http_Request(_T("POST"), lpszAPIUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszMsgBuffer, &nLen)) + { + printf("发送投递失败!\n"); + return 0; + } + printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer); + BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); + return 0; +} +int test_get() +{ + int nLen = 0; + int nCode = 0; + XCHAR* ptszMsgBuffer; + Json::Value st_JsonRoot; + st_JsonRoot["tszMapUrl"] = "http://app.xyry.org:5501"; + + LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=slink¶ms1=1"); + if (!APIClient_Http_Request(_T("POST"), lpszAPIUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszMsgBuffer, &nLen)) + { + printf("发送投递失败!\n"); + return 0; + } + printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer); + BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); + return 0; +} +int test_delete() +{ + int nLen = 0; + int nCode = 0; + XCHAR* ptszMsgBuffer; + Json::Value st_JsonRoot; + st_JsonRoot["tszMapUrl"] = "http://app.xyry.org:5501"; + + LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=slink¶ms1=2"); + if (!APIClient_Http_Request(_T("POST"), lpszAPIUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszMsgBuffer, &nLen)) + { + printf("发送投递失败!\n"); + return 0; + } + printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer); + BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); + return 0; +} + +int main() +{ +#ifdef _MSC_BUILD + WSADATA st_WSAData; + WSAStartup(MAKEWORD(2, 2), &st_WSAData); +#endif + test_create(); + test_get(); + test_delete(); + +#ifdef _MSC_BUILD + WSACleanup(); +#endif + return 0; +} \ No newline at end of file diff --git a/XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.vcxproj b/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.vcxproj similarity index 97% rename from XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.vcxproj rename to XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.vcxproj index b339036..8c4acd3 100644 --- a/XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.vcxproj +++ b/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.vcxproj @@ -21,8 +21,8 @@ 16.0 Win32Proj - {c5f955b3-2701-4c5a-8f41-92ce536b8913} - APPClientTestExample + {f46ef40d-5bd6-4f75-aec8-222a98a3dfc1} + APPClientSLinkExample 10.0 @@ -131,7 +131,7 @@ - + diff --git a/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.vcxproj.filters b/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.vcxproj.filters new file mode 100644 index 0000000..974f833 --- /dev/null +++ b/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + 源文件 + + + \ No newline at end of file diff --git a/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.vcxproj.user b/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/XEngine_APPClient/APPClient_SLinkExample/APPClient_SLinkExample.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.cpp b/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.cpp similarity index 84% rename from XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.cpp rename to XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.cpp index c6a6e2d..b27de6b 100644 --- a/XEngine_APPClient/APPClient_TestExample/APPClient_TestExample.cpp +++ b/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.cpp @@ -20,8 +20,8 @@ //需要优先配置XEngine //WINDOWS支持VS2022 x64 debug 编译调试 -//linux::g++ -std=c++17 -Wall -g APPClient_TestExample.cpp -o APPClient_TestExample.exe -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_NetHelp -lXEngine_BaseLib -lNetHelp_APIClient -//macos::g++ -std=c++17 -Wall -g APPClient_TestExample.cpp -o APPClient_TestExample.exe -lXEngine_BaseLib -lNetHelp_APIClient +//linux::g++ -std=c++17 -Wall -g APPClient_SocketExample.cpp -o APPClient_SocketExample.exe -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_NetHelp -lXEngine_BaseLib -lNetHelp_APIClient +//macos::g++ -std=c++17 -Wall -g APPClient_SocketExample.cpp -o APPClient_SocketExample.exe -lXEngine_BaseLib -lNetHelp_APIClient XNETHANDLE xhToken = 0; #define QRCODE_BUFFER_SIZE 1024 * 1024 * 10 @@ -31,7 +31,7 @@ int test_create() { int nLen = 0; int nCode = 0; - LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=test¶ms1=0"); + LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=socket¶ms1=0"); Json::Value st_JsonRoot; st_JsonRoot["tszAPIUrl"] = "http://127.0.0.1:5501/api?function=report¶ms1=0"; @@ -79,7 +79,7 @@ int test_delete() st_JsonRoot["bConn"] = true; st_JsonRoot["xhToken"] = xhToken; - LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=test¶ms1=1"); + LPCXSTR lpszAPIUrl = _T("http://127.0.0.1:5501/api?function=socket¶ms1=1"); if (!APIClient_Http_Request(_T("POST"), lpszAPIUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); diff --git a/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.vcxproj b/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.vcxproj new file mode 100644 index 0000000..75f9617 --- /dev/null +++ b/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.vcxproj @@ -0,0 +1,139 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {5df5e1d4-318c-468d-a427-88d873e095d3} + APPClientSocketExample + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + MultiByte + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + $(XEngine_Include);../../XEngine_Source/XEngine_ThirdPart/jsoncpp;$(IncludePath) + $(XEngine_Lib64);../../XEngine_Source/x64/Debug;$(LibraryPath) + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.vcxproj.filters b/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.vcxproj.filters new file mode 100644 index 0000000..3b76fc7 --- /dev/null +++ b/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + 源文件 + + + \ No newline at end of file diff --git a/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.vcxproj.user b/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/XEngine_APPClient/APPClient_SocketExample/APPClient_SocketExample.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/XEngine_APPClient/VSCopy-x64.bat b/XEngine_APPClient/VSCopy-x64.bat index 834efdb..d9a20da 100644 --- a/XEngine_APPClient/VSCopy-x64.bat +++ b/XEngine_APPClient/VSCopy-x64.bat @@ -3,6 +3,6 @@ copy /y "%XEngine_Lib64%\XEngine_Core\XEngine_OPenSsl.dll" "./" copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_APIClient.dll" "./" copy /y "%XEngine_Lib64%\XEngine_HelpComponents\zlib1.dll" "./" -copy /y "%XEngine_Lib64%\XEngine_LibEx\libssl-1_1-x64.dll" "./" -copy /y "%XEngine_Lib64%\XEngine_LibEx\libcrypto-1_1-x64.dll" "./" +copy /y "%XEngine_Lib64%\XEngine_LibEx\libssl-3-x64.dll" "./" +copy /y "%XEngine_Lib64%\XEngine_LibEx\libcrypto-3-x64.dll" "./" copy /y "%XEngine_Lib64%\XEngine_LibEx\libcurl.dll" "./" \ No newline at end of file diff --git a/XEngine_APPClient/XEngine_APPClient.sln b/XEngine_APPClient/XEngine_APPClient.sln index 06fccb5..2a26622 100644 --- a/XEngine_APPClient/XEngine_APPClient.sln +++ b/XEngine_APPClient/XEngine_APPClient.sln @@ -29,7 +29,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "APPClient_XLogExample", "AP EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "APPClient_QRExample", "APPClient_QRExample\APPClient_QRExample.vcxproj", "{2C532E9A-6F98-425D-8D44-DB3AE2AFDA5A}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "APPClient_TestExample", "APPClient_TestExample\APPClient_TestExample.vcxproj", "{C5F955B3-2701-4C5A-8F41-92CE536B8913}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "APPClient_SLinkExample", "APPClient_SLinkExample\APPClient_SLinkExample.vcxproj", "{F46EF40D-5BD6-4F75-AEC8-222A98A3DFC1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "APPClient_DTestExample", "APPClient_DTestExample\APPClient_DTestExample.vcxproj", "{753B7188-3120-4283-959D-A2F95FA7C32A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "APPClient_SocketExample", "APPClient_SocketExample\APPClient_SocketExample.vcxproj", "{5DF5E1D4-318C-468D-A427-88D873E095D3}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -143,14 +147,30 @@ Global {2C532E9A-6F98-425D-8D44-DB3AE2AFDA5A}.Release|x64.Build.0 = Release|x64 {2C532E9A-6F98-425D-8D44-DB3AE2AFDA5A}.Release|x86.ActiveCfg = Release|Win32 {2C532E9A-6F98-425D-8D44-DB3AE2AFDA5A}.Release|x86.Build.0 = Release|Win32 - {C5F955B3-2701-4C5A-8F41-92CE536B8913}.Debug|x64.ActiveCfg = Debug|x64 - {C5F955B3-2701-4C5A-8F41-92CE536B8913}.Debug|x64.Build.0 = Debug|x64 - {C5F955B3-2701-4C5A-8F41-92CE536B8913}.Debug|x86.ActiveCfg = Debug|Win32 - {C5F955B3-2701-4C5A-8F41-92CE536B8913}.Debug|x86.Build.0 = Debug|Win32 - {C5F955B3-2701-4C5A-8F41-92CE536B8913}.Release|x64.ActiveCfg = Release|x64 - {C5F955B3-2701-4C5A-8F41-92CE536B8913}.Release|x64.Build.0 = Release|x64 - {C5F955B3-2701-4C5A-8F41-92CE536B8913}.Release|x86.ActiveCfg = Release|Win32 - {C5F955B3-2701-4C5A-8F41-92CE536B8913}.Release|x86.Build.0 = Release|Win32 + {F46EF40D-5BD6-4F75-AEC8-222A98A3DFC1}.Debug|x64.ActiveCfg = Debug|x64 + {F46EF40D-5BD6-4F75-AEC8-222A98A3DFC1}.Debug|x64.Build.0 = Debug|x64 + {F46EF40D-5BD6-4F75-AEC8-222A98A3DFC1}.Debug|x86.ActiveCfg = Debug|Win32 + {F46EF40D-5BD6-4F75-AEC8-222A98A3DFC1}.Debug|x86.Build.0 = Debug|Win32 + {F46EF40D-5BD6-4F75-AEC8-222A98A3DFC1}.Release|x64.ActiveCfg = Release|x64 + {F46EF40D-5BD6-4F75-AEC8-222A98A3DFC1}.Release|x64.Build.0 = Release|x64 + {F46EF40D-5BD6-4F75-AEC8-222A98A3DFC1}.Release|x86.ActiveCfg = Release|Win32 + {F46EF40D-5BD6-4F75-AEC8-222A98A3DFC1}.Release|x86.Build.0 = Release|Win32 + {753B7188-3120-4283-959D-A2F95FA7C32A}.Debug|x64.ActiveCfg = Debug|x64 + {753B7188-3120-4283-959D-A2F95FA7C32A}.Debug|x64.Build.0 = Debug|x64 + {753B7188-3120-4283-959D-A2F95FA7C32A}.Debug|x86.ActiveCfg = Debug|Win32 + {753B7188-3120-4283-959D-A2F95FA7C32A}.Debug|x86.Build.0 = Debug|Win32 + {753B7188-3120-4283-959D-A2F95FA7C32A}.Release|x64.ActiveCfg = Release|x64 + {753B7188-3120-4283-959D-A2F95FA7C32A}.Release|x64.Build.0 = Release|x64 + {753B7188-3120-4283-959D-A2F95FA7C32A}.Release|x86.ActiveCfg = Release|Win32 + {753B7188-3120-4283-959D-A2F95FA7C32A}.Release|x86.Build.0 = Release|Win32 + {5DF5E1D4-318C-468D-A427-88D873E095D3}.Debug|x64.ActiveCfg = Debug|x64 + {5DF5E1D4-318C-468D-A427-88D873E095D3}.Debug|x64.Build.0 = Debug|x64 + {5DF5E1D4-318C-468D-A427-88D873E095D3}.Debug|x86.ActiveCfg = Debug|Win32 + {5DF5E1D4-318C-468D-A427-88D873E095D3}.Debug|x86.Build.0 = Debug|Win32 + {5DF5E1D4-318C-468D-A427-88D873E095D3}.Release|x64.ActiveCfg = Release|x64 + {5DF5E1D4-318C-468D-A427-88D873E095D3}.Release|x64.Build.0 = Release|x64 + {5DF5E1D4-318C-468D-A427-88D873E095D3}.Release|x86.ActiveCfg = Release|Win32 + {5DF5E1D4-318C-468D-A427-88D873E095D3}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE -- Gitee From ee641df161709ed9182cd0a92a73b8c07709bcfd Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 14 Apr 2023 16:27:58 +0800 Subject: [PATCH 20/26] update:xengine v8.10 modify:charset to unicode --- .../ModuleConfigure_Json.cpp | 186 ++++---- .../XEngine_ModuleConfigure.vcxproj | 8 +- .../XEngine_ModuleConfigure/dllmain.cpp | 2 +- .../XEngine_ModuleConfigure/pch.cpp | 2 +- .../ModuleDatabase_Bank.cpp | 38 +- .../ModuleDatabase_IDCard.cpp | 82 ++-- .../ModuleDatabase_ShortLink.cpp | 80 ++-- .../ModuleDatabase_XLog.cpp | 92 ++-- .../ModuleDatabase_ZIPCode.cpp | 134 +++--- .../XEngine_ModuleDatabase.vcxproj | 8 +- .../XEngine_ModuleDatabase/dllmain.cpp | 2 +- XEngine_Source/XEngine_ModuleDatabase/pch.cpp | 2 +- .../XEngine_ModuleHelp/ModuleHelp_Define.h | 2 +- .../ModuleHelp_IDCard/ModuleHelp_IDCard.cpp | 32 +- .../ModuleHelp_Language.cpp | 54 +-- .../ModuleHelp_Locker/ModuleHelp_Locker.cpp | 76 ++-- .../ModuleHelp_P2PClient.cpp | 144 +++---- .../ModuleHelp_QRCode/ModuleHelp_QRCode.cpp | 118 ++--- .../ModuleHelp_SocketTest.cpp | 86 ++-- .../ModuleHelp_SocketTest.h | 2 +- .../XEngine_ModuleHelp.vcxproj | 8 +- XEngine_Source/XEngine_ModuleHelp/dllmain.cpp | 2 +- XEngine_Source/XEngine_ModuleHelp/pch.cpp | 2 +- .../ModulePlugin_LibCore.cpp | 88 ++-- .../ModulePlugin_Loader.cpp | 48 +-- .../ModulePlugin_LuaCore.cpp | 86 ++-- .../XEngine_ModulePlugin.vcxproj | 8 +- .../XEngine_ModulePlugin/dllmain.cpp | 2 +- XEngine_Source/XEngine_ModulePlugin/pch.cpp | 2 +- .../ModuleProtocol_Packet.cpp | 126 +++--- .../ModuleProtocol_Parse.cpp | 206 ++++----- .../XEngine_ModuleProtocol.vcxproj | 8 +- .../XEngine_ModuleProtocol/dllmain.cpp | 2 +- XEngine_Source/XEngine_ModuleProtocol/pch.cpp | 2 +- .../ModulePlugin_BMIndex.vcxproj | 8 +- .../Plugin_BMIndex/Plugin_BMIndex.cpp | 22 +- .../ModulePlugin_BMIndex/dllmain.cpp | 2 +- .../ModulePlugin_BMIndex/pch.cpp | 2 +- .../ModulePlugin_IPAddr.vcxproj | 8 +- .../ModulePlugin_Interface.cpp | 22 +- .../ModulePlugin_IPAddr/dllmain.cpp | 2 +- .../ModulePlugin_IPAddr/pch.cpp | 2 +- .../ModulePlugin_Meter.vcxproj | 8 +- .../Plugin_Meter/Plugin_Meter.cpp | 52 +-- .../ModulePlugin_Meter/dllmain.cpp | 2 +- .../ModulePlugin_Meter/pch.cpp | 2 +- .../ModulePlugin_Password.vcxproj | 8 +- .../Plugin_Password/Plugin_Password.cpp | 26 +- .../ModulePlugin_Password/dllmain.cpp | 2 +- .../ModulePlugin_Password/pch.cpp | 2 +- .../ModulePlugin_APIPhone.cpp | 22 +- .../ModulePlugin_DBPhone.cpp | 78 ++-- .../ModulePlugin_Phone.vcxproj | 8 +- .../ModulePlugin_Phone/dllmain.cpp | 2 +- .../ModulePlugin_Phone/pch.cpp | 2 +- .../ModulePlugin_Timezone.vcxproj | 8 +- .../Plugin_Timezone/Plugin_Timezone.cpp | 406 +++++++++--------- .../ModulePlugin_Timezone/dllmain.cpp | 2 +- .../ModulePlugin_Timezone/pch.cpp | 2 +- .../ModulePlugin_Zodiac.vcxproj | 8 +- .../Plugin_Zodiac/Plugin_Zodiac.cpp | 52 +-- .../ModulePlugin_Zodiac/dllmain.cpp | 2 +- .../ModulePlugin_Zodiac/pch.cpp | 2 +- .../XEngine_HttpApp/XEngine_Configure.cpp | 24 +- .../XEngine_HttpApp/XEngine_HTTPTask.cpp | 172 ++++---- .../XEngine_HttpApp/XEngine_HttpApp.cpp | 114 ++--- .../XEngine_HttpApp/XEngine_HttpApp.vcxproj | 8 +- .../XEngine_HttpApp/XEngine_Network.cpp | 20 +- .../XEngine_HttpApp/XEngine_PluginTask.cpp | 10 +- .../XEngine_TaskGet/TaskGet_Bank.cpp | 24 +- .../XEngine_TaskGet/TaskGet_IDCard.cpp | 24 +- .../XEngine_TaskGet/TaskGet_Language.cpp | 8 +- .../XEngine_TaskGet/TaskGet_Locker.cpp | 40 +- .../XEngine_TaskGet/TaskGet_Translation.cpp | 22 +- .../XEngine_TaskPost/TaskPost_DTest.cpp | 6 +- .../XEngine_TaskPost/TaskPost_Log.cpp | 12 +- .../XEngine_TaskPost/TaskPost_P2PClient.cpp | 42 +- .../XEngine_TaskPost/TaskPost_PostCode.cpp | 6 +- .../XEngine_TaskPost/TaskPost_QRCode.cpp | 12 +- .../XEngine_TaskPost/TaskPost_ShortLink.cpp | 44 +- .../XEngine_TaskPost/TaskPost_SocketTest.cpp | 16 +- 81 files changed, 1535 insertions(+), 1573 deletions(-) diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp index a2985c1..a25ee5d 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp @@ -42,24 +42,24 @@ CModuleConfigure_Json::~CModuleConfigure_Json() *********************************************************************/ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVICECONFIG* pSt_ServerConfig) { - Config_IsErrorOccur = XFALSE; + Config_IsErrorOccur = FALSE; if ((NULL == lpszConfigFile) || (NULL == pSt_ServerConfig)) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; Json::CharReaderBuilder st_JsonBuilder; //读取配置文件所有内容到缓冲区 - FILE* pSt_File = _tfopen(lpszConfigFile, _T("rb")); + FILE* pSt_File = _xtfopen(lpszConfigFile, _X("rb")); if (NULL == pSt_File) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_OPENFILE; - return XFALSE; + return FALSE; } size_t nCount = 0; XCHAR tszMsgBuffer[4096]; @@ -77,19 +77,19 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError)) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARSE; - return XFALSE; + return FALSE; } - _tcscpy(pSt_ServerConfig->tszIPAddr, st_JsonRoot["tszIPAddr"].asCString()); + _tcsxcpy(pSt_ServerConfig->tszIPAddr, st_JsonRoot["tszIPAddr"].asCString()); pSt_ServerConfig->bDeamon = st_JsonRoot["bDeamon"].asInt(); pSt_ServerConfig->nHttpPort = st_JsonRoot["nHttpPort"].asInt(); if (st_JsonRoot["XMax"].empty() || (4 != st_JsonRoot["XMax"].size())) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XMAX; - return XFALSE; + return FALSE; } Json::Value st_JsonXMax = st_JsonRoot["XMax"]; pSt_ServerConfig->st_XMax.nMaxClient = st_JsonXMax["nMaxClient"].asInt(); @@ -99,9 +99,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XTime"].empty() || (3 != st_JsonRoot["XTime"].size())) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XTIME; - return XFALSE; + return FALSE; } Json::Value st_JsonXTime = st_JsonRoot["XTime"]; pSt_ServerConfig->st_XTime.nTimeCheck = st_JsonXTime["nTimeCheck"].asInt(); @@ -110,9 +110,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XLog"].empty() || (3 != st_JsonRoot["XLog"].size())) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XLOG; - return XFALSE; + return FALSE; } Json::Value st_JsonXLog = st_JsonRoot["XLog"]; pSt_ServerConfig->st_XLog.nMaxSize = st_JsonXLog["MaxSize"].asInt(); @@ -121,76 +121,76 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XApi"].empty() || (2 != st_JsonRoot["XApi"].size())) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XAPI; - return XFALSE; + return FALSE; } Json::Value st_JsonXApi = st_JsonRoot["XApi"]; - _tcscpy(pSt_ServerConfig->st_XApi.tszBankUrl, st_JsonXApi["tszBankUrl"].asCString()); - _tcscpy(pSt_ServerConfig->st_XApi.tszTranslationUrl, st_JsonXApi["tszTranslationUrl"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XApi.tszBankUrl, st_JsonXApi["tszBankUrl"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XApi.tszTranslationUrl, st_JsonXApi["tszTranslationUrl"].asCString()); if (st_JsonRoot["XSql"].empty() || (4 != st_JsonRoot["XSql"].size())) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XDB; - return XFALSE; + return FALSE; } Json::Value st_JsonXSql = st_JsonRoot["XSql"]; pSt_ServerConfig->st_XSql.nSQLPort = st_JsonXSql["SQLPort"].asInt(); - _tcscpy(pSt_ServerConfig->st_XSql.tszSQLAddr, st_JsonXSql["SQLAddr"].asCString()); - _tcscpy(pSt_ServerConfig->st_XSql.tszSQLUser, st_JsonXSql["SQLUser"].asCString()); - _tcscpy(pSt_ServerConfig->st_XSql.tszSQLPass, st_JsonXSql["SQLPass"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XSql.tszSQLAddr, st_JsonXSql["SQLAddr"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XSql.tszSQLUser, st_JsonXSql["SQLUser"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XSql.tszSQLPass, st_JsonXSql["SQLPass"].asCString()); if (st_JsonRoot["XPlugin"].empty() || (3 != st_JsonRoot["XPlugin"].size())) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XPLUGIN; - return XFALSE; + return FALSE; } Json::Value st_JsonXPlugin = st_JsonRoot["XPlugin"]; pSt_ServerConfig->st_XPlugin.bEnable = st_JsonXPlugin["bEnable"].asBool(); - _tcscpy(pSt_ServerConfig->st_XPlugin.tszPluginLib, st_JsonXPlugin["tszPluginLib"].asCString()); - _tcscpy(pSt_ServerConfig->st_XPlugin.tszPluginLua, st_JsonXPlugin["tszPluginLua"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XPlugin.tszPluginLib, st_JsonXPlugin["tszPluginLib"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XPlugin.tszPluginLua, st_JsonXPlugin["tszPluginLua"].asCString()); if (st_JsonRoot["XConfig"].empty() || (2 != st_JsonRoot["XConfig"].size())) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XCONFIG; - return XFALSE; + return FALSE; } Json::Value st_JsonXConfig = st_JsonRoot["XConfig"]; - _tcscpy(pSt_ServerConfig->st_XConfig.tszConfigOPencc, st_JsonXConfig["tszConfigOPencc"].asCString()); - _tcscpy(pSt_ServerConfig->st_XConfig.tszConfigQRCode, st_JsonXConfig["tszConfigQRCode"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XConfig.tszConfigOPencc, st_JsonXConfig["tszConfigOPencc"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XConfig.tszConfigQRCode, st_JsonXConfig["tszConfigQRCode"].asCString()); if (st_JsonRoot["XShortLink"].empty() || (2 != st_JsonRoot["XShortLink"].size())) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XSLINK; - return XFALSE; + return FALSE; } Json::Value st_JsonXShort = st_JsonRoot["XShortLink"]; - _tcscpy(pSt_ServerConfig->st_XShortLink.tszHostUrl, st_JsonXShort["tszHostUrl"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XShortLink.tszHostUrl, st_JsonXShort["tszHostUrl"].asCString()); pSt_ServerConfig->st_XShortLink.nHTTPCode = st_JsonXShort["nHTTPCode"].asInt(); if (st_JsonRoot["XVer"].empty()) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XVER; - return XFALSE; + return FALSE; } pSt_ServerConfig->st_XVer.pStl_ListVer = new list; if (NULL == pSt_ServerConfig->st_XVer.pStl_ListVer) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_MALLOC; - return XFALSE; + return FALSE; } Json::Value st_JsonXVer = st_JsonRoot["XVer"]; for (unsigned int i = 0; i < st_JsonXVer.size(); i++) { pSt_ServerConfig->st_XVer.pStl_ListVer->push_back(st_JsonXVer[i].asCString()); } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleConfigure_Json_OPenccFile @@ -212,24 +212,24 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X *********************************************************************/ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE_OPENCCCONFIG* pSt_OPenccConfig) { - Config_IsErrorOccur = XFALSE; + Config_IsErrorOccur = FALSE; if ((NULL == lpszConfigFile) || (NULL == pSt_OPenccConfig)) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; Json::CharReaderBuilder st_JsonBuilder; //读取配置文件所有内容到缓冲区 - FILE* pSt_File = _tfopen(lpszConfigFile, _T("rb")); + FILE* pSt_File = _xtfopen(lpszConfigFile, _X("rb")); if (NULL == pSt_File) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_OPENFILE; - return XFALSE; + return FALSE; } size_t nCount = 0; XCHAR tszMsgBuffer[4096]; @@ -247,25 +247,25 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigF std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError)) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARSE; - return XFALSE; + return FALSE; } - _tcscpy(pSt_OPenccConfig->tszFiles2t, st_JsonRoot["tszFiles2t"].asCString()); - _tcscpy(pSt_OPenccConfig->tszFilet2s, st_JsonRoot["tszFilet2s"].asCString()); - _tcscpy(pSt_OPenccConfig->tszFiles2tw, st_JsonRoot["tszFiles2tw"].asCString()); - _tcscpy(pSt_OPenccConfig->tszFiletw2s, st_JsonRoot["tszFiletw2s"].asCString()); - _tcscpy(pSt_OPenccConfig->tszFiles2hk, st_JsonRoot["tszFiles2hk"].asCString()); - _tcscpy(pSt_OPenccConfig->tszFilehk2s, st_JsonRoot["tszFilehk2s"].asCString()); - _tcscpy(pSt_OPenccConfig->tszFiles2twp, st_JsonRoot["tszFiles2twp"].asCString()); - _tcscpy(pSt_OPenccConfig->tszFiletw2sp, st_JsonRoot["tszFiletw2sp"].asCString()); - _tcscpy(pSt_OPenccConfig->tszFilet2tw, st_JsonRoot["tszFilet2tw"].asCString()); - _tcscpy(pSt_OPenccConfig->tszFilehk2t, st_JsonRoot["tszFilehk2t"].asCString()); - _tcscpy(pSt_OPenccConfig->tszFilet2hk, st_JsonRoot["tszFilet2hk"].asCString()); - _tcscpy(pSt_OPenccConfig->tszFilet2jp, st_JsonRoot["tszFilet2jp"].asCString()); - _tcscpy(pSt_OPenccConfig->tszFilejp2t, st_JsonRoot["tszFilejp2t"].asCString()); - _tcscpy(pSt_OPenccConfig->tszFiletw2t, st_JsonRoot["tszFiletw2t"].asCString()); - return XTRUE; + _tcsxcpy(pSt_OPenccConfig->tszFiles2t, st_JsonRoot["tszFiles2t"].asCString()); + _tcsxcpy(pSt_OPenccConfig->tszFilet2s, st_JsonRoot["tszFilet2s"].asCString()); + _tcsxcpy(pSt_OPenccConfig->tszFiles2tw, st_JsonRoot["tszFiles2tw"].asCString()); + _tcsxcpy(pSt_OPenccConfig->tszFiletw2s, st_JsonRoot["tszFiletw2s"].asCString()); + _tcsxcpy(pSt_OPenccConfig->tszFiles2hk, st_JsonRoot["tszFiles2hk"].asCString()); + _tcsxcpy(pSt_OPenccConfig->tszFilehk2s, st_JsonRoot["tszFilehk2s"].asCString()); + _tcsxcpy(pSt_OPenccConfig->tszFiles2twp, st_JsonRoot["tszFiles2twp"].asCString()); + _tcsxcpy(pSt_OPenccConfig->tszFiletw2sp, st_JsonRoot["tszFiletw2sp"].asCString()); + _tcsxcpy(pSt_OPenccConfig->tszFilet2tw, st_JsonRoot["tszFilet2tw"].asCString()); + _tcsxcpy(pSt_OPenccConfig->tszFilehk2t, st_JsonRoot["tszFilehk2t"].asCString()); + _tcsxcpy(pSt_OPenccConfig->tszFilet2hk, st_JsonRoot["tszFilet2hk"].asCString()); + _tcsxcpy(pSt_OPenccConfig->tszFilet2jp, st_JsonRoot["tszFilet2jp"].asCString()); + _tcsxcpy(pSt_OPenccConfig->tszFilejp2t, st_JsonRoot["tszFilejp2t"].asCString()); + _tcsxcpy(pSt_OPenccConfig->tszFiletw2t, st_JsonRoot["tszFiletw2t"].asCString()); + return TRUE; } /******************************************************************** 函数名称:ModuleConfigure_Json_QRCodeFile @@ -287,24 +287,24 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigF *********************************************************************/ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE_QRCODECONFIG* pSt_QRCodeConfig) { - Config_IsErrorOccur = XFALSE; + Config_IsErrorOccur = FALSE; if ((NULL == lpszConfigFile) || (NULL == pSt_QRCodeConfig)) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; Json::CharReaderBuilder st_JsonBuilder; //读取配置文件所有内容到缓冲区 - FILE* pSt_File = _tfopen(lpszConfigFile, _T("rb")); + FILE* pSt_File = _xtfopen(lpszConfigFile, _X("rb")); if (NULL == pSt_File) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_OPENFILE; - return XFALSE; + return FALSE; } size_t nCount = 0; XCHAR tszMsgBuffer[4096]; @@ -322,15 +322,15 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigF std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError)) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARSE; - return XFALSE; + return FALSE; } - _tcscpy(pSt_QRCodeConfig->tszModelDetect, st_JsonRoot["tszModelDetect"].asCString()); - _tcscpy(pSt_QRCodeConfig->tszModelSr, st_JsonRoot["tszModelSr"].asCString()); - _tcscpy(pSt_QRCodeConfig->tszProtoDetect, st_JsonRoot["tszProtoDetect"].asCString()); - _tcscpy(pSt_QRCodeConfig->tszProtoSr, st_JsonRoot["tszProtoSr"].asCString()); - return XTRUE; + _tcsxcpy(pSt_QRCodeConfig->tszModelDetect, st_JsonRoot["tszModelDetect"].asCString()); + _tcsxcpy(pSt_QRCodeConfig->tszModelSr, st_JsonRoot["tszModelSr"].asCString()); + _tcsxcpy(pSt_QRCodeConfig->tszProtoDetect, st_JsonRoot["tszProtoDetect"].asCString()); + _tcsxcpy(pSt_QRCodeConfig->tszProtoSr, st_JsonRoot["tszProtoSr"].asCString()); + return TRUE; } /******************************************************************** 函数名称:ModuleConfigure_Json_PluginFile @@ -352,24 +352,24 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigF *********************************************************************/ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig) { - Config_IsErrorOccur = XFALSE; + Config_IsErrorOccur = FALSE; if ((NULL == lpszConfigFile) || (NULL == pSt_PluginConfig)) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; Json::CharReaderBuilder st_JsonBuilder; //读取配置文件所有内容到缓冲区 - FILE* pSt_File = _tfopen(lpszConfigFile, _T("rb")); + FILE* pSt_File = _xtfopen(lpszConfigFile, _X("rb")); if (NULL == pSt_File) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_OPENFILE; - return XFALSE; + return FALSE; } size_t nCount = 0; XCHAR tszMsgBuffer[4096]; @@ -387,17 +387,17 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigF std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError)) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARSE; - return XFALSE; + return FALSE; } //申请内存 pSt_PluginConfig->pStl_ListPlugin = new list; if (NULL == pSt_PluginConfig->pStl_ListPlugin) { - Config_IsErrorOccur = XTRUE; + Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_MALLOC; - return XFALSE; + return FALSE; } //解析列表 Json::Value st_JsonArray = st_JsonRoot["PluginArray"]; @@ -407,21 +407,21 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigF memset(&st_PluginInfo, '\0', sizeof(XENGINE_PLUGININFO)); st_PluginInfo.bEnable = st_JsonArray[i]["PluginEnable"].asBool(); - _tcscpy(st_PluginInfo.tszPluginFile, st_JsonArray[i]["PluginFile"].asCString()); + _tcsxcpy(st_PluginInfo.tszPluginFile, st_JsonArray[i]["PluginFile"].asCString()); - if (NULL == _tcsstr(st_PluginInfo.tszPluginFile + 3,_T("."))) + if (NULL == _tcsxstr(st_PluginInfo.tszPluginFile + 3,_X("."))) { #ifdef _MSC_BUILD - _tcscat(st_PluginInfo.tszPluginFile, ".dll"); + _tcsxcat(st_PluginInfo.tszPluginFile, ".dll"); #elif __linux__ - _tcscat(st_PluginInfo.tszPluginFile, ".so"); + _tcsxcat(st_PluginInfo.tszPluginFile, ".so"); #else - _tcscat(st_PluginInfo.tszPluginFile, ".dylib"); + _tcsxcat(st_PluginInfo.tszPluginFile, ".dylib"); #endif } - _tcscpy(st_PluginInfo.tszPluginMethod, st_JsonArray[i]["PluginMethod"].asCString()); + _tcsxcpy(st_PluginInfo.tszPluginMethod, st_JsonArray[i]["PluginMethod"].asCString()); pSt_PluginConfig->pStl_ListPlugin->push_back(st_PluginInfo); } - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleConfigure/XEngine_ModuleConfigure.vcxproj b/XEngine_Source/XEngine_ModuleConfigure/XEngine_ModuleConfigure.vcxproj index 6d632fa..2f05479 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/XEngine_ModuleConfigure.vcxproj +++ b/XEngine_Source/XEngine_ModuleConfigure/XEngine_ModuleConfigure.vcxproj @@ -30,27 +30,27 @@ DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode diff --git a/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp b/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp index 52bff00..15b0e80 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return XTRUE; + return TRUE; } diff --git a/XEngine_Source/XEngine_ModuleConfigure/pch.cpp b/XEngine_Source/XEngine_ModuleConfigure/pch.cpp index 9ae5cb3..579874d 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/pch.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出函数实现 // History: *********************************************************************/ -XBOOL Config_IsErrorOccur = XFALSE; +XBOOL Config_IsErrorOccur = FALSE; XLONG Config_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////// CModuleConfigure_Json m_ConfigJson; diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp index dedeb98..351eace 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp @@ -36,23 +36,23 @@ CModuleDatabase_Bank::~CModuleDatabase_Bank() *********************************************************************/ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if (NULL == pSt_DBConnector) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } //连接数据库 - _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APIInfo")); + _tcsxcpy(pSt_DBConnector->tszDBName, _X("XEngine_APIInfo")); if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_Bank_Destory @@ -64,10 +64,10 @@ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* *********************************************************************/ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Destory() { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; DataBase_MySQL_Close(xhDBSQL); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_Bank_Query @@ -84,13 +84,13 @@ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Destory() *********************************************************************/ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_BankInfo) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if (NULL == pSt_BankInfo) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } //查询 __int64u nLine = 0; @@ -99,22 +99,22 @@ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_Bank XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); - _stprintf(tszSQLStatement, _T("SELECT * FROM `BankList` WHERE tszBankAbridge = '%s'"), pSt_BankInfo->tszBankAbridge); + _xstprintf(tszSQLStatement, _X("SELECT * FROM `BankList` WHERE tszBankAbridge = '%s'"), pSt_BankInfo->tszBankAbridge); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return XFALSE; + return FALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); - _tcscpy(pSt_BankInfo->tszBankName, pptszResult[2]); + _tcsxcpy(pSt_BankInfo->tszBankName, pptszResult[2]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp index a5b0ace..38974bd 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp @@ -36,23 +36,23 @@ CModuleDatabase_IDCard::~CModuleDatabase_IDCard() *********************************************************************/ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if (NULL == pSt_DBConnector) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } //连接数据库 - _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APIInfo")); + _tcsxcpy(pSt_DBConnector->tszDBName, _X("XEngine_APIInfo")); if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_Destory @@ -64,10 +64,10 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTI *********************************************************************/ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Destory() { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; DataBase_MySQL_Close(xhDBSQL); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_QueryRegion @@ -89,12 +89,12 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Destory() *********************************************************************/ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; ModuleDatabase_IDCard_QueryProvincer(pSt_IDRegion, pSt_IDInfo); ModuleDatabase_IDCard_QueryCity(pSt_IDRegion, pSt_IDInfo); ModuleDatabase_IDCard_QueryCounty(pSt_IDRegion, pSt_IDInfo); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_QueryProvincer @@ -116,13 +116,13 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION *********************************************************************/ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if ((NULL == pSt_IDRegion) || (NULL == pSt_IDInfo)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } //查询 __int64u nLine = 0; @@ -131,24 +131,24 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREG XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); - _stprintf(tszSQLStatement, _T("SELECT * FROM `RegionID` WHERE code = '%02d0000'"), pSt_IDInfo->nIDProvince); + _xstprintf(tszSQLStatement, _X("SELECT * FROM `RegionID` WHERE code = '%02d0000'"), pSt_IDInfo->nIDProvince); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return XFALSE; + return FALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); - _tcscpy(pSt_IDRegion->tszProvincer, pptszResult[1]); + _tcsxcpy(pSt_IDRegion->tszProvincer, pptszResult[1]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_QueryCity @@ -170,13 +170,13 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREG *********************************************************************/ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if ((NULL == pSt_IDRegion) || (NULL == pSt_IDInfo)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } //查询 __int64u nLine = 0; @@ -185,24 +185,24 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); - _stprintf(tszSQLStatement, _T("SELECT * FROM `RegionID` WHERE code = '%02d%02d00'"), pSt_IDInfo->nIDProvince, pSt_IDInfo->nIDCity); + _xstprintf(tszSQLStatement, _X("SELECT * FROM `RegionID` WHERE code = '%02d%02d00'"), pSt_IDInfo->nIDProvince, pSt_IDInfo->nIDCity); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return XFALSE; + return FALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); - _tcscpy(pSt_IDRegion->tszCity, pptszResult[1]); + _tcsxcpy(pSt_IDRegion->tszCity, pptszResult[1]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_QueryCounty @@ -224,13 +224,13 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* *********************************************************************/ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if ((NULL == pSt_IDRegion) || (NULL == pSt_IDInfo)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } //查询 __int64u nLine = 0; @@ -239,22 +239,22 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); - _stprintf(tszSQLStatement, _T("SELECT * FROM `RegionID` WHERE code = '%02d%02d%02d'"), pSt_IDInfo->nIDProvince, pSt_IDInfo->nIDCity, pSt_IDInfo->nIDCounty); + _xstprintf(tszSQLStatement, _X("SELECT * FROM `RegionID` WHERE code = '%02d%02d%02d'"), pSt_IDInfo->nIDProvince, pSt_IDInfo->nIDCity, pSt_IDInfo->nIDCounty); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return XFALSE; + return FALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); - _tcscpy(pSt_IDRegion->tszCounty, pptszResult[1]); + _tcsxcpy(pSt_IDRegion->tszCounty, pptszResult[1]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp index abcd7f8..33eb953 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp @@ -36,23 +36,23 @@ CModuleDatabase_ShortLink::~CModuleDatabase_ShortLink() *********************************************************************/ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if (NULL == pSt_DBConnector) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } //连接数据库 - _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APISLink")); + _tcsxcpy(pSt_DBConnector->tszDBName, _X("XEngine_APISLink")); if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_ShortLink_Destory @@ -64,10 +64,10 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CO *********************************************************************/ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Destory() { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; DataBase_MySQL_Close(xhDBSQL); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_ShortLink_Insert @@ -84,25 +84,25 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Destory() *********************************************************************/ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLINK* pSt_SLinkInfo) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if (NULL == pSt_SLinkInfo) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } XCHAR tszSQLStatement[2024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); - _stprintf(tszSQLStatement, _T("INSERT INTO `XEngine_ShortLink` (tszFullUrl,tszShortUrl,tszKeyUrl,tszMapUrl,tszCreateTime) VALUES('%s','%s','%s','%s','%s')"), pSt_SLinkInfo->tszFullUrl, pSt_SLinkInfo->tszShotUrl, pSt_SLinkInfo->tszKeyUrl, pSt_SLinkInfo->tszMapUrl, pSt_SLinkInfo->tszCreateTime); + _xstprintf(tszSQLStatement, _X("INSERT INTO `XEngine_ShortLink` (tszFullUrl,tszShortUrl,tszKeyUrl,tszMapUrl,tszCreateTime) VALUES('%s','%s','%s','%s','%s')"), pSt_SLinkInfo->tszFullUrl, pSt_SLinkInfo->tszShotUrl, pSt_SLinkInfo->tszKeyUrl, pSt_SLinkInfo->tszMapUrl, pSt_SLinkInfo->tszCreateTime); if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_ShortLink_Query @@ -119,13 +119,13 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLI *********************************************************************/ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Query(XENGINE_SHORTLINK* pSt_SLinkInfo) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if ((NULL == pSt_SLinkInfo)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } //查询 XNETHANDLE xhTable = 0; @@ -135,18 +135,18 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Query(XENGINE_SHORTLIN XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); //名称为,消息名为必填 - _stprintf_s(tszSQLStatement, _T("SELECT * FROM `XEngine_ShortLink` WHERE tszMapUrl = '%s'"), pSt_SLinkInfo->tszMapUrl); + _xstprintf(tszSQLStatement, _X("SELECT * FROM `XEngine_ShortLink` WHERE tszMapUrl = '%s'"), pSt_SLinkInfo->tszMapUrl); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nllLine, &nllRow)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } if (nllLine <= 0) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return XFALSE; + return FALSE; } for (__int64u i = 0; i < nllLine; i++) { @@ -154,31 +154,31 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Query(XENGINE_SHORTLIN if (NULL != pptszResult[0]) { - pSt_SLinkInfo->nID = _ttoi(pptszResult[0]); + pSt_SLinkInfo->nID = _ttxoi(pptszResult[0]); } if (NULL != pptszResult[1]) { - _tcscpy(pSt_SLinkInfo->tszFullUrl, pptszResult[1]); + _tcsxcpy(pSt_SLinkInfo->tszFullUrl, pptszResult[1]); } if (NULL != pptszResult[2]) { - _tcscpy(pSt_SLinkInfo->tszShotUrl, pptszResult[2]); + _tcsxcpy(pSt_SLinkInfo->tszShotUrl, pptszResult[2]); } if (NULL != pptszResult[3]) { - _tcscpy(pSt_SLinkInfo->tszKeyUrl, pptszResult[3]); + _tcsxcpy(pSt_SLinkInfo->tszKeyUrl, pptszResult[3]); } if (NULL != pptszResult[4]) { - _tcscpy(pSt_SLinkInfo->tszMapUrl, pptszResult[4]); + _tcsxcpy(pSt_SLinkInfo->tszMapUrl, pptszResult[4]); } if (NULL != pptszResult[5]) { - _tcscpy(pSt_SLinkInfo->tszCreateTime, pptszResult[5]); + _tcsxcpy(pSt_SLinkInfo->tszCreateTime, pptszResult[5]); } } DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_ShortLink_Delete @@ -195,31 +195,31 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Query(XENGINE_SHORTLIN *********************************************************************/ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Delete(XENGINE_SHORTLINK* pSt_SLinkInfo) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if (NULL == pSt_SLinkInfo) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); - if (_tcslen(pSt_SLinkInfo->tszFullUrl) > 0) + if (_tcsxlen(pSt_SLinkInfo->tszFullUrl) > 0) { - _stprintf(tszSQLStatement, _T("DELETE FROM `XEngine_ShortLink` WHERE tszFullUrl = '%s'"), pSt_SLinkInfo->tszFullUrl); + _xstprintf(tszSQLStatement, _X("DELETE FROM `XEngine_ShortLink` WHERE tszFullUrl = '%s'"), pSt_SLinkInfo->tszFullUrl); } else { - _stprintf(tszSQLStatement, _T("DELETE FROM `XEngine_ShortLink` WHERE tszMapUrl = '%s'"), pSt_SLinkInfo->tszMapUrl); + _xstprintf(tszSQLStatement, _X("DELETE FROM `XEngine_ShortLink` WHERE tszMapUrl = '%s'"), pSt_SLinkInfo->tszMapUrl); } if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp index 5b141eb..522ab6f 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp @@ -36,23 +36,23 @@ CModuleDatabase_XLog::~CModuleDatabase_XLog() *********************************************************************/ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if (NULL == pSt_DBConnector) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } //连接数据库 - _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APILog")); + _tcsxcpy(pSt_DBConnector->tszDBName, _X("XEngine_APILog")); if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Destory @@ -64,10 +64,10 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* *********************************************************************/ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Destory() { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; DataBase_MySQL_Close(xhDBSQL); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Create @@ -84,18 +84,18 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Destory() *********************************************************************/ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Create(LPCXSTR lpszTableName) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if (NULL == lpszTableName) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } XCHAR tszSQLStatement[10240]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); - _stprintf(tszSQLStatement, _T("CREATE TABLE IF NOT EXISTS `%s` (" + _xstprintf(tszSQLStatement, _X("CREATE TABLE IF NOT EXISTS `%s` (" "`ID` int NOT NULL AUTO_INCREMENT," "`tszFileName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件名'," "`tszFuncName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '函数名'," @@ -108,11 +108,11 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Create(LPCXSTR lpszTableName) if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Insert @@ -129,25 +129,25 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Create(LPCXSTR lpszTableName) *********************************************************************/ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if (NULL == pSt_XLogInfo) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } XCHAR tszSQLStatement[11240]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); - _stprintf(tszSQLStatement, _T("INSERT INTO `%s` (tszFileName,tszFuncName,nLogLine,nLogLevel,tszLogBuffer,tszLogTime) VALUES('%s','%s',%d,%d,'%s','%s')"), pSt_XLogInfo->tszTableName, pSt_XLogInfo->st_ProtocolLog.tszFileName, pSt_XLogInfo->st_ProtocolLog.tszFuncName, pSt_XLogInfo->st_ProtocolLog.nLogLine, pSt_XLogInfo->st_ProtocolLog.nLogLevel, pSt_XLogInfo->tszLogBuffer, pSt_XLogInfo->st_ProtocolLog.tszLogTimer); + _xstprintf(tszSQLStatement, _X("INSERT INTO `%s` (tszFileName,tszFuncName,nLogLine,nLogLevel,tszLogBuffer,tszLogTime) VALUES('%s','%s',%d,%d,'%s','%s')"), pSt_XLogInfo->tszTableName, pSt_XLogInfo->st_ProtocolLog.tszFileName, pSt_XLogInfo->st_ProtocolLog.tszFuncName, pSt_XLogInfo->st_ProtocolLog.nLogLine, pSt_XLogInfo->st_ProtocolLog.nLogLevel, pSt_XLogInfo->tszLogBuffer, pSt_XLogInfo->st_ProtocolLog.tszLogTimer); if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Query @@ -184,13 +184,13 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLo *********************************************************************/ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, int* pInt_ListCount, LPCXSTR lpszTableName, LPCXSTR lpszTimeStart, LPCXSTR lpszTimeEnd) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if ((NULL == lpszTableName) || (NULL == lpszTimeStart) || (NULL == lpszTimeEnd)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } //查询 XNETHANDLE xhTable = 0; @@ -200,18 +200,18 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_ XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); //名称为,消息名为必填 - _stprintf_s(tszSQLStatement, _T("SELECT * FROM `%s` WHERE tszLogTime BETWEEN '%s' AND '%s'"), lpszTableName, lpszTimeStart, lpszTimeEnd); + _xstprintf(tszSQLStatement, _X("SELECT * FROM `%s` WHERE tszLogTime BETWEEN '%s' AND '%s'"), lpszTableName, lpszTimeStart, lpszTimeEnd); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nllLine, &nllRow)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } if (nllLine <= 0) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return XFALSE; + return FALSE; } *pInt_ListCount = (int)nllLine; BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_XLogInfo, (int)nllLine, sizeof(XENGINE_XLOGINFO)); @@ -219,34 +219,34 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_ { XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); - _tcscpy((*pppSt_XLogInfo)[i]->tszTableName, lpszTableName); + _tcsxcpy((*pppSt_XLogInfo)[i]->tszTableName, lpszTableName); if (NULL != pptszResult[1]) { - _tcscpy((*pppSt_XLogInfo)[i]->st_ProtocolLog.tszFileName, pptszResult[1]); + _tcsxcpy((*pppSt_XLogInfo)[i]->st_ProtocolLog.tszFileName, pptszResult[1]); } if (NULL != pptszResult[2]) { - _tcscpy((*pppSt_XLogInfo)[i]->st_ProtocolLog.tszFuncName, pptszResult[2]); + _tcsxcpy((*pppSt_XLogInfo)[i]->st_ProtocolLog.tszFuncName, pptszResult[2]); } if (NULL != pptszResult[3]) { - (*pppSt_XLogInfo)[i]->st_ProtocolLog.nLogLine = _ttoi(pptszResult[3]); + (*pppSt_XLogInfo)[i]->st_ProtocolLog.nLogLine = _ttxoi(pptszResult[3]); } if (NULL != pptszResult[4]) { - (*pppSt_XLogInfo)[i]->st_ProtocolLog.nLogLevel = _ttoi(pptszResult[4]); + (*pppSt_XLogInfo)[i]->st_ProtocolLog.nLogLevel = _ttxoi(pptszResult[4]); } if (NULL != pptszResult[5]) { - _tcscpy((*pppSt_XLogInfo)[i]->tszLogBuffer, pptszResult[5]); + _tcsxcpy((*pppSt_XLogInfo)[i]->tszLogBuffer, pptszResult[5]); } if (NULL != pptszResult[6]) { - _tcscpy((*pppSt_XLogInfo)[i]->st_ProtocolLog.tszLogTimer, pptszResult[6]); + _tcsxcpy((*pppSt_XLogInfo)[i]->st_ProtocolLog.tszLogTimer, pptszResult[6]); } } DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Delete @@ -263,23 +263,23 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_ *********************************************************************/ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if (NULL == lpszTableName) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } XCHAR tszSQLStatement[10240]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); - _stprintf(tszSQLStatement, _T("DROP TABLE IF EXISTS '%s'"), lpszTableName); + _xstprintf(tszSQLStatement, _X("DROP TABLE IF EXISTS '%s'"), lpszTableName); if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp index 22a24f5..f3ba3f7 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp @@ -36,23 +36,23 @@ CModuleDatabase_ZIPCode::~CModuleDatabase_ZIPCode() *********************************************************************/ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if (NULL == pSt_DBConnector) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } //连接数据库 - _tcscpy(pSt_DBConnector->tszDBName, _T("XEngine_APIInfo")); + _tcsxcpy(pSt_DBConnector->tszDBName, _X("XEngine_APIInfo")); if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_Destory @@ -64,10 +64,10 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNEC *********************************************************************/ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Destory() { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; DataBase_MySQL_Close(xhDBSQL); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_QueryZIPCode @@ -84,7 +84,7 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Destory() *********************************************************************/ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; //查询 __int64u nLine = 0; @@ -93,46 +93,46 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPIN XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); - _stprintf(tszSQLStatement, _T("SELECT * FROM `AdministrativeArea` WHERE zip_code = %d"), pSt_ZIPInfo->nZipCode); + _xstprintf(tszSQLStatement, _X("SELECT * FROM `AdministrativeArea` WHERE zip_code = %d"), pSt_ZIPInfo->nZipCode); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return XFALSE; + return FALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); //三个级别 省->市->区/县 - _tcscpy(pSt_ZIPInfo->tszPinYin, pptszResult[6]); - pSt_ZIPInfo->nLevel = _ttoi(pptszResult[5]); - pSt_ZIPInfo->nAreaCode = _ttoi(pptszResult[7]); - pSt_ZIPInfo->dlLng = _ttof(pptszResult[10]); - pSt_ZIPInfo->dlLat = _ttof(pptszResult[11]); + _tcsxcpy(pSt_ZIPInfo->tszPinYin, pptszResult[6]); + pSt_ZIPInfo->nLevel = _ttxoi(pptszResult[5]); + pSt_ZIPInfo->nAreaCode = _ttxoi(pptszResult[7]); + pSt_ZIPInfo->dlLng = _ttxof(pptszResult[10]); + pSt_ZIPInfo->dlLat = _ttxof(pptszResult[11]); if (3 == pSt_ZIPInfo->nLevel) { //获取上级节点 int nParentID = 0; - _tcscpy(pSt_ZIPInfo->tszCounty, pptszResult[2]); - ModuleDatabase_ZIPCode_QueryParentByID(_ttoi(pptszResult[1]), pSt_ZIPInfo->tszCity, &nParentID); + _tcsxcpy(pSt_ZIPInfo->tszCounty, pptszResult[2]); + ModuleDatabase_ZIPCode_QueryParentByID(_ttxoi(pptszResult[1]), pSt_ZIPInfo->tszCity, &nParentID); ModuleDatabase_ZIPCode_QueryParentByID(nParentID, pSt_ZIPInfo->tszProvincer, &nParentID); } else if (2 == pSt_ZIPInfo->nLevel) { - _tcscpy(pSt_ZIPInfo->tszCity, pptszResult[2]); - ModuleDatabase_ZIPCode_QueryParentByID(_ttoi(pptszResult[1]), pSt_ZIPInfo->tszProvincer); + _tcsxcpy(pSt_ZIPInfo->tszCity, pptszResult[2]); + ModuleDatabase_ZIPCode_QueryParentByID(_ttxoi(pptszResult[1]), pSt_ZIPInfo->tszProvincer); } else { - _tcscpy(pSt_ZIPInfo->tszProvincer, pptszResult[2]); + _tcsxcpy(pSt_ZIPInfo->tszProvincer, pptszResult[2]); } DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_QueryName @@ -149,13 +149,13 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPIN *********************************************************************/ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if (NULL == pSt_ZIPInfo) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } //查询 __int64u nLine = 0; @@ -165,52 +165,52 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); - if ((_tcslen(pSt_ZIPInfo->tszCounty) > 0) && (_tcslen(pSt_ZIPInfo->tszCity) == 0)) + if ((_tcsxlen(pSt_ZIPInfo->tszCounty) > 0) && (_tcsxlen(pSt_ZIPInfo->tszCity) == 0)) { int nParentID = 0; ModuleDatabase_ZIPCode_QueryParentByName(pSt_ZIPInfo->tszCounty, &nParentID); ModuleDatabase_ZIPCode_QueryParentByID(nParentID, pSt_ZIPInfo->tszCity, &nParentID); ModuleDatabase_ZIPCode_QueryParentByID(nParentID, pSt_ZIPInfo->tszProvincer, &nParentID); - _stprintf(tszSQLStatement, _T("SELECT * FROM `AdministrativeArea` WHERE name = '%s'"), pSt_ZIPInfo->tszCounty); + _xstprintf(tszSQLStatement, _X("SELECT * FROM `AdministrativeArea` WHERE name = '%s'"), pSt_ZIPInfo->tszCounty); } - else if ((_tcslen(pSt_ZIPInfo->tszCounty) == 0) && (_tcslen(pSt_ZIPInfo->tszCity) > 0)) + else if ((_tcsxlen(pSt_ZIPInfo->tszCounty) == 0) && (_tcsxlen(pSt_ZIPInfo->tszCity) > 0)) { int nParentID = 0; ModuleDatabase_ZIPCode_QueryParentByName(pSt_ZIPInfo->tszCity, &nParentID); ModuleDatabase_ZIPCode_QueryParentByID(nParentID, pSt_ZIPInfo->tszProvincer, &nParentID); - _stprintf(tszSQLStatement, _T("SELECT * FROM `AdministrativeArea` WHERE name = '%s'"), pSt_ZIPInfo->tszCity); + _xstprintf(tszSQLStatement, _X("SELECT * FROM `AdministrativeArea` WHERE name = '%s'"), pSt_ZIPInfo->tszCity); } else { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTSET; - return XFALSE; + return FALSE; } //查询内容 if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return XFALSE; + return FALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); - pSt_ZIPInfo->nLevel = _ttoi(pptszResult[5]); - pSt_ZIPInfo->nAreaCode = _ttoi(pptszResult[7]); - pSt_ZIPInfo->nZipCode = _ttoi(pptszResult[8]); - pSt_ZIPInfo->dlLng = _ttof(pptszResult[10]); - pSt_ZIPInfo->dlLat = _ttof(pptszResult[11]); - _tcscpy(pSt_ZIPInfo->tszPinYin, pptszResult[6]); + pSt_ZIPInfo->nLevel = _ttxoi(pptszResult[5]); + pSt_ZIPInfo->nAreaCode = _ttxoi(pptszResult[7]); + pSt_ZIPInfo->nZipCode = _ttxoi(pptszResult[8]); + pSt_ZIPInfo->dlLng = _ttxof(pptszResult[10]); + pSt_ZIPInfo->dlLat = _ttxof(pptszResult[11]); + _tcsxcpy(pSt_ZIPInfo->tszPinYin, pptszResult[6]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return XTRUE; + return TRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 @@ -240,13 +240,13 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* *********************************************************************/ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParentID, XCHAR* ptszParentStr, int* pInt_ParentID /* = NULL */) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if (NULL == ptszParentStr) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } //查询 __int64u nLine = 0; @@ -255,29 +255,29 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParen XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); - _stprintf(tszSQLStatement, _T("SELECT * FROM `AdministrativeArea` WHERE id = %d"), nParentID); + _xstprintf(tszSQLStatement, _X("SELECT * FROM `AdministrativeArea` WHERE id = %d"), nParentID); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return XFALSE; + return FALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); if (NULL != pInt_ParentID) { - *pInt_ParentID = _ttoi(pptszResult[1]); + *pInt_ParentID = _ttxoi(pptszResult[1]); } - _tcscpy(ptszParentStr, pptszResult[3]); + _tcsxcpy(ptszParentStr, pptszResult[3]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_QueryParentByName @@ -299,13 +299,13 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParen *********************************************************************/ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByName(LPCXSTR lpszName, int* pInt_ParentID /* = NULL */) { - DBModule_IsErrorOccur = XFALSE; + DBModule_IsErrorOccur = FALSE; if (NULL == lpszName) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return XFALSE; + return FALSE; } //查询 __int64u nLine = 0; @@ -314,24 +314,24 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByName(LPCXSTR XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); - _stprintf(tszSQLStatement, _T("SELECT * FROM `AdministrativeArea` WHERE name = '%s'"), lpszName); + _xstprintf(tszSQLStatement, _X("SELECT * FROM `AdministrativeArea` WHERE name = '%s'"), lpszName); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = DataBase_GetLastError(); - return XFALSE; + return FALSE; } if (nLine <= 0) { - DBModule_IsErrorOccur = XTRUE; + DBModule_IsErrorOccur = TRUE; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return XFALSE; + return FALSE; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); if (NULL != pInt_ParentID) { - *pInt_ParentID = _ttoi(pptszResult[1]); + *pInt_ParentID = _ttxoi(pptszResult[1]); } DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj b/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj index ec50035..e511582 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj +++ b/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj @@ -30,27 +30,27 @@ DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode diff --git a/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp b/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp index 52bff00..15b0e80 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return XTRUE; + return TRUE; } diff --git a/XEngine_Source/XEngine_ModuleDatabase/pch.cpp b/XEngine_Source/XEngine_ModuleDatabase/pch.cpp index 3e6db47..fc35659 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/pch.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/pch.cpp @@ -15,7 +15,7 @@ // Purpose: 导出函数实现 // History: *********************************************************************/ -XLONG DBModule_IsErrorOccur = XFALSE; +XLONG DBModule_IsErrorOccur = FALSE; XBOOL DBModule_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleDatabase_IDCard m_IDCard; diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h index 4770a71..fc2645d 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h @@ -617,7 +617,7 @@ extern "C" XBOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP = XTRUE, XPVOID lParam = NULL); +extern "C" XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP = TRUE, XPVOID lParam = NULL); /******************************************************************** 函数名称:ModuleHelp_SocketTest_GetDatas 函数功能:获取是否在处理中 diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp index df055cd..9b4fb69 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp @@ -36,33 +36,33 @@ CModuleHelp_IDCard::~CModuleHelp_IDCard() *********************************************************************/ XBOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO *pSt_IDInfo) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if (NULL == pSt_IDInfo) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_PARAMENT; - return XFALSE; + return FALSE; } if (pSt_IDInfo->nBirthYear < 1949 || pSt_IDInfo->nBirthYear > 2999) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_FMT; - return XFALSE; + return FALSE; } if (pSt_IDInfo->nBirthMonth < 1 || pSt_IDInfo->nBirthMonth > 12) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_FMT; - return XFALSE; + return FALSE; } if (pSt_IDInfo->nBirthDay < 1 || pSt_IDInfo->nBirthDay > 31) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_FMT; - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_IDCard_CheckBirth @@ -79,13 +79,13 @@ XBOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO *pSt_I *********************************************************************/ XBOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if (NULL == pSt_IDInfo) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_PARAMENT; - return XFALSE; + return FALSE; } int nCheck = 0; int nIDArray[18]; @@ -103,9 +103,9 @@ XBOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDI } if ((nIDArray[17] != nTable[nCheck % 11]) && (pSt_IDInfo->nCheck != 'x' || nTable[nCheck % 11] != 2)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_SUM; - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp index 63d968f..f75d342 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp @@ -46,30 +46,30 @@ CModuleHelp_Language::~CModuleHelp_Language() *********************************************************************/ XBOOL CModuleHelp_Language::ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lpszSourceStr, XCHAR* ptszDestStr) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if ((NULL == lpszJsonFile) || (NULL == lpszSourceStr) || (NULL == ptszDestStr)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_PARAMENT; - return XFALSE; + return FALSE; } opencc_t m_OPencc = opencc_open(lpszJsonFile); if ((opencc_t)-1 == m_OPencc) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_FAILED; - return XFALSE; + return FALSE; } if ((size_t)-1 == opencc_convert_utf8_to_buffer(m_OPencc, lpszSourceStr, strlen(lpszSourceStr), ptszDestStr)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_NOTSUPPORT; - return XFALSE; + return FALSE; } opencc_close(m_OPencc); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_Translation_Convert @@ -91,72 +91,72 @@ XBOOL CModuleHelp_Language::ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, *********************************************************************/ XBOOL CModuleHelp_Language::ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, XCHAR* ptszTranslationType) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if (NULL == ptszTranslationType) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_PARAMENT; - return XFALSE; + return FALSE; } //转换为服务需要的类型 if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_AUTO == enTranslationType) { - _tcscpy(ptszTranslationType, _T("auto")); + _tcsxcpy(ptszTranslationType, _X("auto")); } else if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_ZH_CN2EN == enTranslationType) { - _tcscpy(ptszTranslationType, _T("ZH_CN2EN")); + _tcsxcpy(ptszTranslationType, _X("ZH_CN2EN")); } else if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_ZH_CN2JA == enTranslationType) { - _tcscpy(ptszTranslationType, _T("ZH_CN2JA")); + _tcsxcpy(ptszTranslationType, _X("ZH_CN2JA")); } else if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_ZH_CN2KR == enTranslationType) { - _tcscpy(ptszTranslationType, _T("ZH_CN2KR")); + _tcsxcpy(ptszTranslationType, _X("ZH_CN2KR")); } else if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_ZH_CN2FR == enTranslationType) { - _tcscpy(ptszTranslationType, _T("ZH_CN2FR")); + _tcsxcpy(ptszTranslationType, _X("ZH_CN2FR")); } else if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_ZH_CN2RU == enTranslationType) { - _tcscpy(ptszTranslationType, _T("ZH_CN2RU")); + _tcsxcpy(ptszTranslationType, _X("ZH_CN2RU")); } else if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_ZH_CN2SP == enTranslationType) { - _tcscpy(ptszTranslationType, _T("ZH_CN2SP")); + _tcsxcpy(ptszTranslationType, _X("ZH_CN2SP")); } else if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_EN2ZH_CN == enTranslationType) { - _tcscpy(ptszTranslationType, _T("EN2ZH_CN")); + _tcsxcpy(ptszTranslationType, _X("EN2ZH_CN")); } else if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_JA2ZH_CN == enTranslationType) { - _tcscpy(ptszTranslationType, _T("JA2ZH_CN")); + _tcsxcpy(ptszTranslationType, _X("JA2ZH_CN")); } else if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_KR2ZH_CN == enTranslationType) { - _tcscpy(ptszTranslationType, _T("KR2ZH_CN")); + _tcsxcpy(ptszTranslationType, _X("KR2ZH_CN")); } else if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_FR2ZH_CN == enTranslationType) { - _tcscpy(ptszTranslationType, _T("FR2ZH_CN")); + _tcsxcpy(ptszTranslationType, _X("FR2ZH_CN")); } else if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_RU2ZH_CN == enTranslationType) { - _tcscpy(ptszTranslationType, _T("RU2ZH_CN")); + _tcsxcpy(ptszTranslationType, _X("RU2ZH_CN")); } else if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_SP2ZH_CN == enTranslationType) { - _tcscpy(ptszTranslationType, _T("SP2ZH_CN")); + _tcsxcpy(ptszTranslationType, _X("SP2ZH_CN")); } else { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_NOTSUPPORT; - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp index b076563..c0cc4f5 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp @@ -36,20 +36,20 @@ CModuleHelp_Locker::~CModuleHelp_Locker() *********************************************************************/ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Create(XNETHANDLE* pxhToken) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if (NULL == pxhToken) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_PARAMENT; - return XFALSE; + return FALSE; } MODULEHELP_LOCKINFO *pSt_LockInfo = new MODULEHELP_LOCKINFO; if (NULL == pSt_LockInfo) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_MALLOC; - return XFALSE; + return FALSE; } pSt_LockInfo->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_NOTUSED; @@ -58,7 +58,7 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Create(XNETHANDLE* pxhToken) st_Locker.lock(); stl_MapLocker.insert(make_pair(*pxhToken, pSt_LockInfo)); st_Locker.unlock(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_Locker_OPen @@ -75,33 +75,33 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Create(XNETHANDLE* pxhToken) *********************************************************************/ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_OPen(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator != stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_EXIST; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } st_Locker.unlock_shared(); //不存在插入 MODULEHELP_LOCKINFO* pSt_LockInfo = new MODULEHELP_LOCKINFO; if (NULL == pSt_LockInfo) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_MALLOC; - return XFALSE; + return FALSE; } pSt_LockInfo->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_NOTUSED; st_Locker.lock(); stl_MapLocker.insert(make_pair(xhToken, pSt_LockInfo)); st_Locker.unlock(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_Locker_ReadLock @@ -118,31 +118,31 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_OPen(XNETHANDLE xhToken) *********************************************************************/ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator == stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_NOTFOUND; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } //判断锁状态,如果是写,返回错误 if (ENUM_MODULEHELP_LOCKSTATUS_WRITE == stl_MapIterator->second->enLockStatus) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_LOCKED; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } //没有加锁,开始加锁 stl_MapIterator->second->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_READ; st_Locker.unlock_shared(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_Locker_ReadUNLock @@ -159,30 +159,30 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken) *********************************************************************/ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator == stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_NOTFOUND; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } //是不是READ锁定,不是返回错误 if (ENUM_MODULEHELP_LOCKSTATUS_READ != stl_MapIterator->second->enLockStatus) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_STATUS; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } stl_MapIterator->second->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_NOTUSED; st_Locker.unlock_shared(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_Locker_WriteLock @@ -199,30 +199,30 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken) *********************************************************************/ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator == stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_NOTFOUND; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } //有没有锁定状态 if ((ENUM_MODULEHELP_LOCKSTATUS_READ == stl_MapIterator->second->enLockStatus) || (ENUM_MODULEHELP_LOCKSTATUS_WRITE == stl_MapIterator->second->enLockStatus)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_LOCKED; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } stl_MapIterator->second->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_WRITE; st_Locker.unlock_shared(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_Locker_WriteUNLock @@ -239,30 +239,30 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken) *********************************************************************/ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator == stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_NOTFOUND; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } //有没有锁定状态 if (ENUM_MODULEHELP_LOCKSTATUS_WRITE == stl_MapIterator->second->enLockStatus) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_STATUS; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } stl_MapIterator->second->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_NOTUSED; st_Locker.unlock_shared(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_Locker_Close @@ -279,7 +279,7 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken) *********************************************************************/ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Close(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; //看看存在不存在 st_Locker.lock(); @@ -291,5 +291,5 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Close(XNETHANDLE xhToken) stl_MapLocker.erase(stl_MapIterator); } st_Locker.unlock(); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp index 524a0d2..3ae40f0 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp @@ -45,9 +45,9 @@ CModuleHelp_P2PClient::~CModuleHelp_P2PClient() *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, XPVOID lParam /* = NULL */) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; - m_bIsRun = XTRUE; + m_bIsRun = TRUE; m_nTimeout = nTimeout; m_lParam = lParam; lpCall_P2PClient = fpCall_P2PClient; @@ -55,11 +55,11 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_AP pSTDThread = make_shared(ModuleHelp_P2PClient_Thread, this); if (NULL == pSTDThread) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_THREAD; - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Destory @@ -71,17 +71,17 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_AP *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Destory() { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if (m_bIsRun) { - m_bIsRun = XFALSE; + m_bIsRun = FALSE; if (pSTDThread->joinable()) { pSTDThread->join(); } } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Add @@ -98,7 +98,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Destory() *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt_PeerInfo) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; st_Locker.lock(); unordered_map > >::iterator stl_MapIteratorAddr = stl_MapClients.find(pSt_PeerInfo->st_PeerAddr.tszPublicAddr); @@ -116,11 +116,11 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt if (!BaseLib_OperatorIPAddr_IsIPV4Addr(pSt_PeerInfo->st_PeerAddr.tszPrivateAddr, &st_LibAddr)) { //没有内网地址不加入. - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = BaseLib_GetLastError(); - return XFALSE; + return FALSE; } - _stprintf_s(tszPrivateAddr, _T("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); + _xstprintf(tszPrivateAddr, _X("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); //然后加入到私网地址 unordered_map > stl_MapPriAddr; stl_MapPriAddr.insert(make_pair(tszPrivateAddr, stl_MapPrivate)); @@ -139,12 +139,12 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt if (!BaseLib_OperatorIPAddr_IsIPV4Addr(pSt_PeerInfo->st_PeerAddr.tszPrivateAddr, &st_LibAddr)) { //没有内网地址不加入. - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = BaseLib_GetLastError(); - return XFALSE; + return FALSE; } //内网地址192.168.1.2 内网出口192.168.1.1 链接地址10.0.1.0:13444 - _stprintf_s(tszPrivateAddr, _T("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); + _xstprintf(tszPrivateAddr, _X("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); unordered_map >::iterator stl_MapPriIteartor = stl_MapIteratorAddr->second.find(tszPrivateAddr); if (stl_MapPriIteartor == stl_MapIteratorAddr->second.end()) { @@ -166,7 +166,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt } } st_Locker.unlock(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Get @@ -188,23 +188,23 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL *pSt_P2PProtocol, XENGINE_P2XP_PEERINFO* pSt_PeerInfo /* = NULL */) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if (NULL == pSt_P2PProtocol) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return XFALSE; + return FALSE; } //查找元素 st_Locker.lock_shared(); unordered_map > >::const_iterator stl_MapPubIterator = stl_MapClients.find(pSt_P2PProtocol->tszPublicAddr); if (stl_MapPubIterator == stl_MapClients.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } //转换地址 XENGINE_LIBADDR st_LibAddr; @@ -214,23 +214,23 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL memset(&st_LibAddr, '\0', sizeof(XENGINE_LIBADDR)); //获取私有网络的路由地址 BaseLib_OperatorIPAddr_IsIPV4Addr(pSt_P2PProtocol->tszPrivateAddr, &st_LibAddr); - _stprintf_s(tszPrivateAddr, _T("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); + _xstprintf(tszPrivateAddr, _X("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); unordered_map >::const_iterator stl_MapPriIterator = stl_MapPubIterator->second.find(tszPrivateAddr); if (stl_MapPriIterator == stl_MapPubIterator->second.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } unordered_map::const_iterator stl_MapConnIterator = stl_MapPriIterator->second.find(pSt_P2PProtocol->tszConnectAddr); if (stl_MapConnIterator == stl_MapPriIterator->second.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } //判断是否导出节点信息 if (NULL != pSt_PeerInfo) @@ -238,7 +238,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL *pSt_PeerInfo = stl_MapConnIterator->second; } st_Locker.unlock_shared(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetLan @@ -265,23 +265,23 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL*** pppSt_P2XPClient, int* pInt_ListCount) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if ((NULL == pSt_P2PProtocol) || (NULL == pppSt_P2XPClient) || (NULL == pInt_ListCount)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return XFALSE; + return FALSE; } //查找公网IP地址 st_Locker.lock_shared(); unordered_map > >::const_iterator stl_MapPubIterator = stl_MapClients.find(pSt_P2PProtocol->tszPublicAddr); if (stl_MapPubIterator == stl_MapClients.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTPUBADDRR; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } XENGINE_LIBADDR st_LibAddr; XCHAR tszPrivateAddr[64]; @@ -291,21 +291,21 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOC //如果输入的是192.168.1.1 IP,就我们自己分割,否则认为输入的是 192.168.1 if (BaseLib_OperatorIPAddr_IsIPV4Addr(pSt_P2PProtocol->tszPrivateAddr, &st_LibAddr)) { - _stprintf_s(tszPrivateAddr, _T("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); + _xstprintf(tszPrivateAddr, _X("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); unordered_map >::const_iterator stl_MapPriIterator = stl_MapPubIterator->second.find(tszPrivateAddr); if (stl_MapPriIterator == stl_MapPubIterator->second.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTPRIADDR; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } if (stl_MapPriIterator->second.empty()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOLIST; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_P2XPClient, stl_MapPriIterator->second.size(), sizeof(XENGINE_P2XPPEER_PROTOCOL)); unordered_map::const_iterator stl_MapConnIterator = stl_MapPriIterator->second.begin(); @@ -320,17 +320,17 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOC unordered_map >::const_iterator stl_MapPriIterator = stl_MapPubIterator->second.find(pSt_P2PProtocol->tszPrivateAddr); if (stl_MapPriIterator == stl_MapPubIterator->second.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTPRIADDR; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } if (stl_MapPriIterator->second.empty()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOLIST; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_P2XPClient, stl_MapPriIterator->second.size(), sizeof(XENGINE_P2XPPEER_PROTOCOL)); unordered_map::const_iterator stl_MapConnIterator = stl_MapPriIterator->second.begin(); @@ -341,7 +341,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOC *pInt_ListCount = stl_MapPriIterator->second.size(); } st_Locker.unlock_shared(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetLList @@ -368,32 +368,32 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOC *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR*** pppszP2XPClient, int* pInt_ListCount) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if ((NULL == lpszPubAddr) || (NULL == pppszP2XPClient) || (NULL == pInt_ListCount)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return XFALSE; + return FALSE; } st_Locker.lock_shared(); unordered_map > >::const_iterator stl_MapPubIterator = stl_MapClients.find(lpszPubAddr); if (stl_MapPubIterator == stl_MapClients.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } BaseLib_OperatorMemory_Malloc((XPPPMEM)pppszP2XPClient, stl_MapPubIterator->second.size(), 128); unordered_map >::const_iterator stl_MapPriIterator = stl_MapPubIterator->second.begin(); for (int i = 0; stl_MapPriIterator != stl_MapPubIterator->second.end(); stl_MapPriIterator++, i++) { - _tcscpy((*pppszP2XPClient)[i], stl_MapPriIterator->first.c_str()); + _tcsxcpy((*pppszP2XPClient)[i], stl_MapPriIterator->first.c_str()); } *pInt_ListCount = stl_MapPubIterator->second.size(); st_Locker.unlock_shared(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetWList @@ -415,19 +415,19 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetWList(XCHAR*** pppszP2XPClient, int* pInt_ListCount) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if ((NULL == pppszP2XPClient) || (NULL == pInt_ListCount)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return XFALSE; + return FALSE; } if (stl_MapClients.size() <= 0) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; - return XFALSE; + return FALSE; } BaseLib_OperatorMemory_Malloc((XPPPMEM)pppszP2XPClient, stl_MapClients.size(), 128); @@ -435,11 +435,11 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetWList(XCHAR*** pppszP2XPCli unordered_map > >::const_iterator stl_MapIterator = stl_MapClients.begin(); for (int i = 0; stl_MapIterator != stl_MapClients.end(); stl_MapIterator++, i++) { - _tcscpy((*pppszP2XPClient)[i], stl_MapIterator->first.c_str()); + _tcsxcpy((*pppszP2XPClient)[i], stl_MapIterator->first.c_str()); } *pInt_ListCount = stl_MapClients.size(); st_Locker.unlock_shared(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Delete @@ -456,7 +456,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetWList(XCHAR*** pppszP2XPCli *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; //查找公网地址 unordered_map > >::iterator stl_MapPubIteartor = stl_MapClients.find(pSt_P2PProtocol->tszPublicAddr); if (stl_MapPubIteartor != stl_MapClients.end()) @@ -468,7 +468,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOC memset(&st_LibAddr, '\0', sizeof(XENGINE_LIBADDR)); if (BaseLib_OperatorIPAddr_IsIPV4Addr(pSt_P2PProtocol->tszPrivateAddr, &st_LibAddr)) { - _stprintf_s(tszPrivateAddr, _T("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); + _xstprintf(tszPrivateAddr, _X("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); //查找私有路由地址 unordered_map >::iterator stl_MapPriIterator = stl_MapPubIteartor->second.find(tszPrivateAddr); if (stl_MapPriIterator != stl_MapPubIteartor->second.end()) @@ -492,7 +492,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOC stl_MapClients.erase(stl_MapPubIteartor); //如果这个公有网络IP地址列表为空,那么就删除他. } } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_DelAll @@ -504,13 +504,13 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOC *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_DelAll() { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; st_Locker.lock(); stl_MapClients.clear(); st_Locker.unlock(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Heart @@ -527,23 +527,23 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_DelAll() *********************************************************************/ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if (NULL == pSt_P2PProtocol) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return XFALSE; + return FALSE; } //查找元素 st_Locker.lock_shared(); unordered_map > >::iterator stl_MapPubIterator = stl_MapClients.find(pSt_P2PProtocol->tszPublicAddr); if (stl_MapPubIterator == stl_MapClients.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } //转换地址 XENGINE_LIBADDR st_LibAddr; @@ -553,27 +553,27 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCO memset(&st_LibAddr, '\0', sizeof(XENGINE_LIBADDR)); //获取私有网络的路由地址 BaseLib_OperatorIPAddr_IsIPV4Addr(pSt_P2PProtocol->tszPrivateAddr, &st_LibAddr); - _stprintf_s(tszPrivateAddr, _T("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); + _xstprintf(tszPrivateAddr, _X("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); unordered_map >::iterator stl_MapPriIterator = stl_MapPubIterator->second.find(tszPrivateAddr); if (stl_MapPriIterator == stl_MapPubIterator->second.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } unordered_map::iterator stl_MapConnIterator = stl_MapPriIterator->second.find(pSt_P2PProtocol->tszConnectAddr); if (stl_MapConnIterator == stl_MapPriIterator->second.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } stl_MapConnIterator->second.st_PeerTimer.dwUserTime = time(NULL); st_Locker.unlock_shared(); - return XTRUE; + return TRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp index f8c0021..6fc87ac 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp @@ -43,27 +43,22 @@ CModuleHelp_QRCode::~CModuleHelp_QRCode() *********************************************************************/ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if ((NULL == lpszFileName) || (NULL == lpszMsgBuffer)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_PARAMENT; - return XFALSE; + return FALSE; } #ifdef _MSC_BUILD //使用qrencode进行字符串编码 -#ifdef _UNICODE - USES_CONVERSION; - QRcode* pSt_QRCodec = QRcode_encodeString(W2A(lpszMsgBuffer), 0, QR_ECLEVEL_H, QR_MODE_8, 1); -#else QRcode* pSt_QRCodec = QRcode_encodeString(lpszMsgBuffer, 0, QR_ECLEVEL_H, QR_MODE_8, 1); -#endif if (NULL == pSt_QRCodec) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_FAILED; - return XFALSE; + return FALSE; } cv::Mat m_SrcFrame; //转换数据 @@ -79,23 +74,18 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, cv::resize(m_SrcFrame, m_SrcFrame, cv::Size(m_SrcFrame.rows * 10, m_SrcFrame.cols * 10), 0, 0, cv::INTER_NEAREST); //转换成彩色 cv::cvtColor(m_SrcFrame, m_SrcFrame, cv::COLOR_GRAY2BGR); -#ifdef _UNICODE - //USES_CONVERSION; - if (!cv::imwrite(W2A(lpszFileName), m_SrcFrame)) -#else if (!cv::imwrite(lpszFileName, m_SrcFrame)) -#endif { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_WRITE; - return XFALSE; + return FALSE; } #else - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTSUPPORT; - return XFALSE; + return FALSE; #endif - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_QRCode_QREncodecMemory @@ -127,27 +117,22 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, *********************************************************************/ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if ((NULL == lpszMsgBuffer) || (NULL == ptszMsgBuffer)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_PARAMENT; - return XFALSE; + return FALSE; } #ifdef _MSC_BUILD //使用qrencode进行字符串编码 -#ifdef _UNICODE - USES_CONVERSION; - QRcode* pSt_QRCodec = QRcode_encodeString(W2A(lpszMsgBuffer), 0, QR_ECLEVEL_H, QR_MODE_8, 1); -#else QRcode* pSt_QRCodec = QRcode_encodeString(lpszMsgBuffer, 0, QR_ECLEVEL_H, QR_MODE_8, 1); -#endif if (NULL == pSt_QRCodec) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_FAILED; - return XFALSE; + return FALSE; } cv::Mat m_SrcFrame; vector stl_VecImg; @@ -167,9 +152,9 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffe //是否成功 if (!cv::imencode(lpszFmt, m_SrcFrame, stl_VecImg)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_FAILED; - return XFALSE; + return FALSE; } *pInt_MsgLen = stl_VecImg.size(); for (int i = 0; i < (*pInt_MsgLen); i++) @@ -177,11 +162,11 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffe ptszMsgBuffer[i] = stl_VecImg[i]; } #else - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTSUPPORT; - return XFALSE; + return FALSE; #endif - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_QRCode_QRDecodecFile @@ -223,56 +208,42 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffe *********************************************************************/ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if ((NULL == lpszFileName) || (NULL == ptszMsgBuffer)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_PARAMENT; - return XFALSE; + return FALSE; } #ifdef _MSC_BUILD cv::Mat m_Frame; vector m_MatPoint; cv::Ptr m_QRDetector; - -#ifdef _UNICODE - USES_CONVERSION; - m_Frame = cv::imread(W2A(lpszFileName)); -#else m_Frame = cv::imread(lpszFileName); -#endif // _UNICODE //是否成功 if (m_Frame.empty()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_EMPTY; - return XFALSE; + return FALSE; } -#ifdef _UNICODE - m_QRDetector = cv::makePtr(W2A(lpszDetectProto), W2A(lpszDetectModel), W2A(lpszSrProto), W2A(lpszSrModel)); -#else m_QRDetector = cv::makePtr(lpszDetectProto, lpszDetectModel, lpszSrProto, lpszSrModel); -#endif vector stl_VectorQRList = m_QRDetector->detectAndDecode(m_Frame, m_MatPoint); if (stl_VectorQRList.empty()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTQR; - return XFALSE; + return FALSE; } -#ifdef _UNICODE - wcscpy(ptszMsgBuffer, A2W(stl_VectorQRList[0].c_str())); -#else strcpy(ptszMsgBuffer, stl_VectorQRList[0].c_str()); -#endif #else - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTSUPPORT; - return XFALSE; + return FALSE; #endif - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_QRCode_QRDecodecMemory @@ -319,13 +290,13 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, *********************************************************************/ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if ((NULL == lpszMsgBuffer) || (NULL == ptszMsgBuffer)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_PARAMENT; - return XFALSE; + return FALSE; } #ifdef _MSC_BUILD cv::Mat m_Frame; @@ -337,33 +308,24 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffe //是否成功 if (m_Frame.empty()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_EMPTY; - return XFALSE; + return FALSE; } -#ifdef _UNICODE - USES_CONVERSION; - m_QRDetector = cv::makePtr(W2A(lpszDetectProto), W2A(lpszDetectModel), W2A(lpszSrProto), W2A(lpszSrModel)); -#else m_QRDetector = cv::makePtr(lpszDetectProto, lpszDetectModel, lpszSrProto, lpszSrModel); -#endif vector stl_VectorQRList = m_QRDetector->detectAndDecode(m_Frame, m_MatPoint); if (stl_VectorQRList.empty()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTQR; - return XFALSE; + return FALSE; } -#ifdef _UNICODE - wcscpy(ptszMsgBuffer, A2W(stl_VectorQRList[0].c_str())); -#else strcpy(ptszMsgBuffer, stl_VectorQRList[0].c_str()); -#endif #else - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTSUPPORT; - return XFALSE; + return FALSE; #endif - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp index 2c9a3fb..9523398 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp @@ -50,24 +50,24 @@ CModuleHelp_SocketTest::~CModuleHelp_SocketTest() *********************************************************************/ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_RECONNECT* pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, XPVOID lParam /* = NULL */) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if ((NULL == pSt_ReConnect) || (NULL == fpCall_ReConnect)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_PARAMRT; - return XFALSE; + return FALSE; } MODULEHELP_SOCKETTEST_CONNINFO* pSt_ConnSocket = new MODULEHELP_SOCKETTEST_CONNINFO; if (NULL == pSt_ConnSocket) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_MALLOC; - return XFALSE; + return FALSE; } memset(pSt_ConnSocket, '\0', sizeof(MODULEHELP_SOCKETTEST_CONNINFO)); //结构体赋值 - pSt_ConnSocket->bIsRun = XTRUE; + pSt_ConnSocket->bIsRun = TRUE; pSt_ConnSocket->lParam = lParam; pSt_ConnSocket->lpCall_ReConnect = fpCall_ReConnect; BaseLib_OperatorHandle_Create(&pSt_ConnSocket->xhToken); @@ -76,15 +76,15 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxh pSt_ConnSocket->pSTDThread = make_shared(ModuleHelp_SocketTest_ThreadConn, pSt_ConnSocket); if (NULL == pSt_ConnSocket->pSTDThread) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_THREAD; - return XFALSE; + return FALSE; } *pxhToken = pSt_ConnSocket->xhToken; st_LockConn.lock(); stl_MapConnTest.insert(make_pair(pSt_ConnSocket->xhToken, pSt_ConnSocket)); st_LockConn.unlock(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_SocketTest_GetConnect @@ -106,20 +106,20 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxh *********************************************************************/ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, XBOOL* pbRun) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; st_LockConn.lock_shared(); unordered_map::iterator stl_MapIterator = stl_MapConnTest.find(xhToken); if (stl_MapIterator == stl_MapConnTest.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_NOTFOUND; st_LockConn.unlock_shared(); - return XFALSE; + return FALSE; } *pbRun = stl_MapIterator->second->bIsRun; st_LockConn.unlock_shared(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_SocketTest_StopConnect @@ -136,13 +136,13 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToke *********************************************************************/ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; st_LockConn.lock(); unordered_map::iterator stl_MapIterator = stl_MapConnTest.find(xhToken); if (stl_MapIterator != stl_MapConnTest.end()) { - stl_MapIterator->second->bIsRun = XFALSE; + stl_MapIterator->second->bIsRun = FALSE; stl_MapIterator->second->pSTDThread->join(); if (NULL != stl_MapIterator->second->lParam) @@ -157,7 +157,7 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhTok stl_MapConnTest.erase(stl_MapIterator); } st_LockConn.unlock(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_SocketTest_StartDatas @@ -187,24 +187,24 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhTok 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP /* = XTRUE */, XPVOID lParam /* = NULL */) +XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP /* = TRUE */, XPVOID lParam /* = NULL */) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; if ((NULL == pSt_SocketDatas) || (NULL == fpCall_DataTest)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_PARAMRT; - return XFALSE; + return FALSE; } MODULEHELP_SOCKETTEST_DATAINFO *pSt_DataSocket = new MODULEHELP_SOCKETTEST_DATAINFO; if (NULL == pSt_DataSocket) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_MALLOC; - return XFALSE; + return FALSE; } - pSt_DataSocket->bIsRun = XTRUE; + pSt_DataSocket->bIsRun = TRUE; pSt_DataSocket->bIsTCP = bTCP; pSt_DataSocket->lParam = lParam; pSt_DataSocket->lpCall_TestDatas = fpCall_DataTest; @@ -215,33 +215,33 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhTo { if (!XClient_TCPSelect_Create(&pSt_DataSocket->hSocket, pSt_SocketDatas->st_REConnect.tszAddr, pSt_SocketDatas->st_REConnect.nPort)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = XClient_GetLastError(); - return XFALSE; + return FALSE; } } else { if (!XClient_UDPSelect_Create(&pSt_DataSocket->hSocket)) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = XClient_GetLastError(); - return XFALSE; + return FALSE; } } //创建线程 pSt_DataSocket->pSTDThread = make_shared(ModuleHelp_SocketTest_ThreadData, pSt_DataSocket); if (!pSt_DataSocket->pSTDThread->joinable()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_THREAD; - return XFALSE; + return FALSE; } *pxhToken = pSt_DataSocket->xhToken; st_LockData.lock(); stl_MapDataTest.insert(make_pair(pSt_DataSocket->xhToken, pSt_DataSocket)); st_LockData.unlock(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleHelp_SocketTest_GetDatas @@ -263,20 +263,20 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhTo *********************************************************************/ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, XBOOL* pbRun) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; st_LockData.lock_shared(); unordered_map::iterator stl_MapIterator = stl_MapDataTest.find(xhToken); if (stl_MapIterator == stl_MapDataTest.end()) { - ModuleHelp_IsErrorOccur = XTRUE; + ModuleHelp_IsErrorOccur = TRUE; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_NOTFOUND; st_LockData.unlock_shared(); - return XFALSE; + return FALSE; } *pbRun = stl_MapIterator->second->bIsRun; st_LockData.unlock_shared(); - return XTRUE; + return TRUE; } /************************************************************************ 函数名称:ModuleHelp_SocketTest_DatasStop @@ -293,14 +293,14 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, ************************************************************************/ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = XFALSE; + ModuleHelp_IsErrorOccur = FALSE; st_LockData.unlock(); unordered_map::iterator stl_MapIterator = stl_MapDataTest.find(xhToken); if (stl_MapIterator != stl_MapDataTest.end()) { //关闭客户端 - stl_MapIterator->second->bIsRun = XFALSE; + stl_MapIterator->second->bIsRun = FALSE; stl_MapIterator->second->pSTDThread->join(); XClient_TCPSelect_Close(stl_MapIterator->second->hSocket); @@ -316,7 +316,7 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken stl_MapDataTest.erase(stl_MapIterator); } st_LockData.unlock(); - return XTRUE; + return TRUE; } ////////////////////////////////////////////////////////////////////////// // 线程函数 @@ -328,7 +328,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadConn(XPVOID lParam) __int64x nSucess = 0; __int64x nNumber = 0; - while (XTRUE) + while (TRUE) { if ((nNumber >= pSt_ReConnect->st_SocketConn.nConnectTest) && (-1 != pSt_ReConnect->st_SocketConn.nConnectTest)) { @@ -355,7 +355,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadConn(XPVOID lParam) std::this_thread::sleep_for(std::chrono::milliseconds(pSt_ReConnect->st_SocketConn.nCloseWaitContTime)); } pSt_ReConnect->lpCall_ReConnect(pSt_ReConnect->xhToken, pSt_ReConnect->st_SocketConn.tszAddr, pSt_ReConnect->st_SocketConn.nPort, nNumber, nFailed, nSucess, 2, pSt_ReConnect->lParam); - pSt_ReConnect->bIsRun = XFALSE; + pSt_ReConnect->bIsRun = FALSE; return 0; } XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) @@ -365,7 +365,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) __int64x nSucess = 0; __int64x nNumber = 0; - while (XTRUE) + while (TRUE) { if ((nNumber >= pSt_DataSocket->st_SocketData.st_REConnect.nConnectTest) && (-1 != pSt_DataSocket->st_SocketData.st_REConnect.nConnectTest)) { @@ -376,7 +376,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) break; } //发送数据 - XBOOL bRet = XFALSE; + XBOOL bRet = FALSE; if (pSt_DataSocket->bIsTCP) { bRet = XClient_TCPSelect_SendMsg(pSt_DataSocket->hSocket, pSt_DataSocket->st_SocketData.tszSDBuffer, pSt_DataSocket->st_SocketData.nSDLen); @@ -391,7 +391,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) if (pSt_DataSocket->st_SocketData.nRVLen > 0) { //是否需要可读判断 - if (XClient_OPTSocket_IOSelect(pSt_DataSocket->hSocket, XTRUE, pSt_DataSocket->st_SocketData.st_REConnect.nContWaitTime)) + if (XClient_OPTSocket_IOSelect(pSt_DataSocket->hSocket, TRUE, pSt_DataSocket->st_SocketData.st_REConnect.nContWaitTime)) { //接受数据 int nMsgLen = pSt_DataSocket->st_SocketData.nRVLen; @@ -429,6 +429,6 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) std::this_thread::sleep_for(std::chrono::milliseconds(pSt_DataSocket->st_SocketData.st_REConnect.nCloseWaitContTime)); } pSt_DataSocket->lpCall_TestDatas(pSt_DataSocket->xhToken, pSt_DataSocket->st_SocketData.st_REConnect.tszAddr, pSt_DataSocket->st_SocketData.st_REConnect.nPort, nNumber, nFailed, nSucess, 2, pSt_DataSocket->lParam); - pSt_DataSocket->bIsRun = XFALSE; + pSt_DataSocket->bIsRun = FALSE; return 0; } diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h index ea30654..88b51e5 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h @@ -45,7 +45,7 @@ public: XBOOL ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, XBOOL* pbRun); XBOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken); //数据包压力测试 - XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP = XTRUE, XPVOID lParam = NULL); + XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP = TRUE, XPVOID lParam = NULL); XBOOL ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, XBOOL* pbRun); XBOOL ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken); protected: diff --git a/XEngine_Source/XEngine_ModuleHelp/XEngine_ModuleHelp.vcxproj b/XEngine_Source/XEngine_ModuleHelp/XEngine_ModuleHelp.vcxproj index 9d54c91..e0cafe4 100644 --- a/XEngine_Source/XEngine_ModuleHelp/XEngine_ModuleHelp.vcxproj +++ b/XEngine_Source/XEngine_ModuleHelp/XEngine_ModuleHelp.vcxproj @@ -30,27 +30,27 @@ DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode diff --git a/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp b/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp index 52bff00..15b0e80 100644 --- a/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return XTRUE; + return TRUE; } diff --git a/XEngine_Source/XEngine_ModuleHelp/pch.cpp b/XEngine_Source/XEngine_ModuleHelp/pch.cpp index a47faa4..5e713e4 100644 --- a/XEngine_Source/XEngine_ModuleHelp/pch.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/pch.cpp @@ -16,7 +16,7 @@ // Purpose: 导出函数实现 // History: *********************************************************************/ -XBOOL ModuleHelp_IsErrorOccur = XFALSE; +XBOOL ModuleHelp_IsErrorOccur = FALSE; XLONG ModuleHelp_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleHelp_IDCard m_IDCard; diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp index 8767fea..14fa3a9 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp @@ -13,7 +13,7 @@ *********************************************************************/ CModulePlugin_LibCore::CModulePlugin_LibCore() { - bIsInit = XFALSE; + bIsInit = FALSE; } CModulePlugin_LibCore::~CModulePlugin_LibCore() { @@ -31,17 +31,17 @@ CModulePlugin_LibCore::~CModulePlugin_LibCore() *********************************************************************/ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Init() { - ModulePlugin_IsErrorOccur = XFALSE; + ModulePlugin_IsErrorOccur = FALSE; //判断是否初始化 if (bIsInit) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_ISINITED; - return XFALSE; + return FALSE; } //启动线程 - bIsInit = XTRUE; - return XTRUE; + bIsInit = TRUE; + return TRUE; } /******************************************************************** 函数名称:ModulePlugin_LibCore_Push @@ -68,19 +68,19 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Init() *********************************************************************/ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) { - ModulePlugin_IsErrorOccur = XFALSE; + ModulePlugin_IsErrorOccur = FALSE; if (!BaseLib_OperatorHandle_Create(pxhModule)) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = BaseLib_GetLastError(); - return XFALSE; + return FALSE; } if (!ModulePlugin_LibCore_Add(*pxhModule, lpszPluginFile, lParam)) { - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModulePlugin_LibCore_Exec @@ -132,28 +132,28 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Push(XNETHANDLE* pxhModule, LP *********************************************************************/ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer /* = NULL */, int nMsgLen /* = 0 */) { - ModulePlugin_IsErrorOccur = XFALSE; + ModulePlugin_IsErrorOccur = FALSE; st_csStl.lock_shared(); //执行指定插件函数 unordered_map::const_iterator stl_MapIterator = stl_MapFrameWork.find(xhModule); if (stl_MapIterator == stl_MapFrameWork.end()) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_NOTFOUND; st_csStl.unlock_shared(); - return XFALSE; + return FALSE; } if (!stl_MapIterator->second.fpCall_PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBufer, nMsgLen)) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = stl_MapIterator->second.fpCall_PluginCore_GetLastError(); st_csStl.unlock_shared(); - return XFALSE; + return FALSE; } st_csStl.unlock_shared(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModulePlugin_LibCore_Destroy @@ -165,14 +165,14 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHA *********************************************************************/ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Destroy() { - ModulePlugin_IsErrorOccur = XFALSE; + ModulePlugin_IsErrorOccur = FALSE; //判断是否初始化 if (!bIsInit) { - return XTRUE; + return TRUE; } - bIsInit = XFALSE; + bIsInit = FALSE; //清理STL元素空间 st_csStl.lock(); unordered_map::iterator stl_MapIterator = stl_MapFrameWork.begin(); @@ -187,7 +187,7 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Destroy() } stl_MapFrameWork.clear(); st_csStl.unlock(); - return XTRUE; + return TRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 @@ -217,34 +217,34 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Destroy() *********************************************************************/ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam) { - ModulePlugin_IsErrorOccur = XFALSE; + ModulePlugin_IsErrorOccur = FALSE; if (NULL == lpszPluginFile) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return XFALSE; + return FALSE; } PLUGINCORE_FRAMEWORK st_FrameWork; st_FrameWork.mhFile = 0; memset(st_FrameWork.tszModuleFile, '\0', sizeof(st_FrameWork.tszModuleFile)); //打开一个模块 #ifdef _MSC_BUILD - st_FrameWork.mhFile = LoadLibrary(lpszPluginFile); + st_FrameWork.mhFile = LoadLibraryA(lpszPluginFile); #else st_FrameWork.mhFile = dlopen(lpszPluginFile, RTLD_LAZY); #endif if (NULL == st_FrameWork.mhFile) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_OPENDL; - return XFALSE; + return FALSE; } //开始查找模块中的函数 #ifdef _MSC_BUILD st_FrameWork.fpCall_PluginCore_Init = (FPCall_PluginCore_Init)GetProcAddress(st_FrameWork.mhFile, "PluginCore_Init"); #else - * (void**)(&st_FrameWork.fpCall_PluginCore_Init) = dlsym(st_FrameWork.mhFile, _T("PluginCore_Init")); + * (void**)(&st_FrameWork.fpCall_PluginCore_Init) = dlsym(st_FrameWork.mhFile, _X("PluginCore_Init")); #endif if (NULL == st_FrameWork.fpCall_PluginCore_Init) { @@ -253,14 +253,14 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPINIT; - return XFALSE; + return FALSE; } #ifdef _MSC_BUILD st_FrameWork.fpCall_PluginCore_UnInit = (FPCall_PluginCore_UnInit)GetProcAddress(st_FrameWork.mhFile, "PluginCore_UnInit"); #else - * (void**)(&st_FrameWork.fpCall_PluginCore_UnInit) = dlsym(st_FrameWork.mhFile, _T("PluginCore_UnInit")); + * (void**)(&st_FrameWork.fpCall_PluginCore_UnInit) = dlsym(st_FrameWork.mhFile, _X("PluginCore_UnInit")); #endif if (NULL == st_FrameWork.fpCall_PluginCore_UnInit) { @@ -269,14 +269,14 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPUNINIT; - return XFALSE; + return FALSE; } #ifdef _MSC_BUILD st_FrameWork.fpCall_PluginCore_Call = (FPCall_PluginCore_Call)GetProcAddress(st_FrameWork.mhFile, "PluginCore_Call"); #else - * (void**)(&st_FrameWork.fpCall_PluginCore_Call) = dlsym(st_FrameWork.mhFile, _T("PluginCore_Call")); + * (void**)(&st_FrameWork.fpCall_PluginCore_Call) = dlsym(st_FrameWork.mhFile, _X("PluginCore_Call")); #endif if (NULL == st_FrameWork.fpCall_PluginCore_Call) { @@ -285,14 +285,14 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPCALL; - return XFALSE; + return FALSE; } #ifdef _MSC_BUILD - st_FrameWork.fpCall_PluginCore_GetLastError = (FPCall_PluginCore_GetLastError)GetProcAddress(st_FrameWork.mhFile, _T("PluginCore_GetLastError")); + st_FrameWork.fpCall_PluginCore_GetLastError = (FPCall_PluginCore_GetLastError)GetProcAddress(st_FrameWork.mhFile, _X("PluginCore_GetLastError")); #else - * (void**)(&st_FrameWork.fpCall_PluginCore_GetLastError) = dlsym(st_FrameWork.mhFile, _T("PluginCore_GetLastError")); + * (void**)(&st_FrameWork.fpCall_PluginCore_GetLastError) = dlsym(st_FrameWork.mhFile, _X("PluginCore_GetLastError")); #endif if (NULL == st_FrameWork.fpCall_PluginCore_GetLastError) { @@ -301,9 +301,9 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPERROR; - return XFALSE; + return FALSE; } //初始化内部模块 if (!st_FrameWork.fpCall_PluginCore_Init(lParam)) @@ -313,15 +313,15 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_INIT; - return XFALSE; + return FALSE; } - _tcscpy(st_FrameWork.tszModuleFile, lpszPluginFile); + _tcsxcpy(st_FrameWork.tszModuleFile, lpszPluginFile); //添加模块属性到STL函数中 st_csStl.lock(); stl_MapFrameWork.insert(make_pair(xhNet, st_FrameWork)); st_csStl.unlock(); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp index 8676b36..ebcb148 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp @@ -45,40 +45,40 @@ CModulePlugin_Loader::~CModulePlugin_Loader() *********************************************************************/ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lpszModuleName, int nType /* = 0 */) { - ModulePlugin_IsErrorOccur = XFALSE; + ModulePlugin_IsErrorOccur = FALSE; if ((NULL == lpszModuleMethod) || (NULL == lpszModuleName)) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return XFALSE; + return FALSE; } PLUGINCORE_LOADER st_PluginLoader; memset(&st_PluginLoader, '\0', sizeof(PLUGINCORE_LOADER)); st_PluginLoader.nType = nType; - _tcscpy(st_PluginLoader.tszModuleFile, lpszModuleName); - _tcscpy(st_PluginLoader.tszModuleMethod, lpszModuleMethod); + _tcsxcpy(st_PluginLoader.tszModuleFile, lpszModuleName); + _tcsxcpy(st_PluginLoader.tszModuleMethod, lpszModuleMethod); if (0 == nType) { if (!ModulePlugin_LibCore_Push(&st_PluginLoader.xhToken, lpszModuleName)) { - return XFALSE; + return FALSE; } } else { if (!ModulePlugin_LuaCore_Push(&st_PluginLoader.xhToken, lpszModuleName)) { - return XFALSE; + return FALSE; } } st_Locker.lock(); stl_MapLoader.insert(make_pair(lpszModuleMethod, st_PluginLoader)); st_Locker.unlock(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModulePlugin_Loader_Find @@ -100,29 +100,29 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, *********************************************************************/ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type) { - ModulePlugin_IsErrorOccur = XFALSE; + ModulePlugin_IsErrorOccur = FALSE; if (NULL == lpszMethodName) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return XFALSE; + return FALSE; } st_Locker.lock_shared(); unordered_map::const_iterator stl_MapIterator = stl_MapLoader.find(lpszMethodName); if (stl_MapIterator == stl_MapLoader.end()) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_NOTFOUND; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } if (NULL != pInt_Type) { *pInt_Type = stl_MapIterator->second.nType; } st_Locker.unlock_shared(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModulePlugin_Loader_Exec @@ -164,22 +164,22 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int *********************************************************************/ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen) { - ModulePlugin_IsErrorOccur = XFALSE; + ModulePlugin_IsErrorOccur = FALSE; if (NULL == lpszMethodName) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return XFALSE; + return FALSE; } st_Locker.lock_shared(); unordered_map::const_iterator stl_MapIterator = stl_MapLoader.find(lpszMethodName); if (stl_MapIterator == stl_MapLoader.end()) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_NOTFOUND; st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } if (0 == stl_MapIterator->second.nType) @@ -187,7 +187,7 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCH if (!ModulePlugin_LibCore_Exec(stl_MapIterator->second.xhToken, pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen)) { st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } } else @@ -195,11 +195,11 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCH if (!ModulePlugin_LuaCore_Exec(stl_MapIterator->second.xhToken, pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen)) { st_Locker.unlock_shared(); - return XFALSE; + return FALSE; } } st_Locker.unlock_shared(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModulePlugin_Loader_Destory @@ -211,10 +211,10 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCH *********************************************************************/ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Destory() { - ModulePlugin_IsErrorOccur = XFALSE; + ModulePlugin_IsErrorOccur = FALSE; st_Locker.lock(); stl_MapLoader.clear(); st_Locker.unlock_shared(); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp index 276adeb..05155b0 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp @@ -13,7 +13,7 @@ *********************************************************************/ CModulePlugin_LuaCore::CModulePlugin_LuaCore() { - bIsInit = XFALSE; + bIsInit = FALSE; } CModulePlugin_LuaCore::~CModulePlugin_LuaCore() { @@ -31,17 +31,17 @@ CModulePlugin_LuaCore::~CModulePlugin_LuaCore() *********************************************************************/ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Init() { - ModulePlugin_IsErrorOccur = XFALSE; + ModulePlugin_IsErrorOccur = FALSE; //判断是否初始化 if (bIsInit) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_ISINITED; - return XFALSE; + return FALSE; } //启动线程 - bIsInit = XTRUE; - return XTRUE; + bIsInit = TRUE; + return TRUE; } /******************************************************************** 函数名称:ModulePlugin_LuaCore_Push @@ -68,19 +68,19 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Init() *********************************************************************/ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) { - ModulePlugin_IsErrorOccur = XFALSE; + ModulePlugin_IsErrorOccur = FALSE; if (!BaseLib_OperatorHandle_Create(pxhModule)) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = BaseLib_GetLastError(); - return XFALSE; + return FALSE; } if (!ModulePlugin_LuaCore_Add(*pxhModule, lpszPluginFile, lParam)) { - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModulePlugin_LuaCore_Exec @@ -132,24 +132,24 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LP *********************************************************************/ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer /* = NULL */, int nMsgLen /* = 0 */) { - ModulePlugin_IsErrorOccur = XFALSE; + ModulePlugin_IsErrorOccur = FALSE; st_csStl.lock_shared(); //执行指定插件函数 unordered_map::const_iterator stl_MapIterator = stl_MapFrameWork.find(xhModule); if (stl_MapIterator == stl_MapFrameWork.end()) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_NOTFOUND; st_csStl.unlock_shared(); - return XFALSE; + return FALSE; } if (0 == lua_getglobal(stl_MapIterator->second.pSt_LuaState, "PluginCore_Call")) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPCALL; st_csStl.unlock_shared(); - return XFALSE; + return FALSE; } XCHAR tszURLParam[MAX_PATH]; memset(tszURLParam, '\0', MAX_PATH); @@ -158,9 +158,9 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHA { if (i > 1) { - _tcscat(tszURLParam, "&"); + _tcsxcat(tszURLParam, "&"); } - _tcscat(tszURLParam, (*pppHDRList)[i]); + _tcsxcat(tszURLParam, (*pppHDRList)[i]); } lua_pushstring(stl_MapIterator->second.pSt_LuaState, tszURLParam); lua_pushinteger(stl_MapIterator->second.pSt_LuaState, nListCount - 1); @@ -168,17 +168,17 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHA lua_pushinteger(stl_MapIterator->second.pSt_LuaState, nMsgLen); if (LUA_OK != lua_pcall(stl_MapIterator->second.pSt_LuaState, 4, 1, 0)) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_EXECTION; st_csStl.unlock_shared(); - return XFALSE; + return FALSE; } lua_getglobal(stl_MapIterator->second.pSt_LuaState, "PInt_HTTPCode"); *pInt_HTTPCode = (int)lua_tonumber(stl_MapIterator->second.pSt_LuaState, -1); lua_pop(stl_MapIterator->second.pSt_LuaState, -1); lua_getglobal(stl_MapIterator->second.pSt_LuaState, "PtszMsgBuffer"); - _tcscpy(ptszMsgBuffer, lua_tostring(stl_MapIterator->second.pSt_LuaState, -1)); + _tcsxcpy(ptszMsgBuffer, lua_tostring(stl_MapIterator->second.pSt_LuaState, -1)); lua_pop(stl_MapIterator->second.pSt_LuaState, -1); lua_getglobal(stl_MapIterator->second.pSt_LuaState, "PInt_MsgLen"); @@ -187,7 +187,7 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHA st_csStl.unlock_shared(); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModulePlugin_LuaCore_Destroy @@ -199,14 +199,14 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHA *********************************************************************/ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Destroy() { - ModulePlugin_IsErrorOccur = XFALSE; + ModulePlugin_IsErrorOccur = FALSE; //判断是否初始化 if (!bIsInit) { - return XTRUE; + return TRUE; } - bIsInit = XFALSE; + bIsInit = FALSE; //清理STL元素空间 st_csStl.lock(); unordered_map::iterator stl_MapIterator = stl_MapFrameWork.begin(); @@ -220,7 +220,7 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Destroy() stl_MapFrameWork.clear(); st_csStl.unlock(); - return XTRUE; + return TRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 @@ -250,64 +250,64 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Destroy() *********************************************************************/ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam) { - ModulePlugin_IsErrorOccur = XFALSE; + ModulePlugin_IsErrorOccur = FALSE; if (NULL == lpszPluginFile) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return XFALSE; + return FALSE; } PLUGINCORE_LUAFRAMEWORK st_LuaCore; memset(&st_LuaCore, '\0', sizeof(PLUGINCORE_LUAFRAMEWORK)); st_LuaCore.pSt_LuaState = luaL_newstate(); - _tcscpy(st_LuaCore.tszModuleFile, lpszPluginFile); + _tcsxcpy(st_LuaCore.tszModuleFile, lpszPluginFile); if (NULL == st_LuaCore.pSt_LuaState) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_MALLOC; - return XFALSE; + return FALSE; } luaL_openlibs(st_LuaCore.pSt_LuaState); if (LUA_OK != luaL_loadfile(st_LuaCore.pSt_LuaState, lpszPluginFile)) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_OPENDL; - return XFALSE; + return FALSE; } if (LUA_OK != lua_pcall(st_LuaCore.pSt_LuaState, 0, 0, 0)) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_EXECTION; - return XFALSE; + return FALSE; } if (0 == lua_getglobal(st_LuaCore.pSt_LuaState, "PluginCore_Init")) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPINIT; - return XFALSE; + return FALSE; } if (LUA_OK != lua_pcall(st_LuaCore.pSt_LuaState, 0, 1, 0)) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_EXECTION; - return XFALSE; + return FALSE; } if (!lua_toboolean(st_LuaCore.pSt_LuaState, -1)) { - ModulePlugin_IsErrorOccur = XTRUE; + ModulePlugin_IsErrorOccur = TRUE; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_EXECTION; - return XFALSE; + return FALSE; } lua_pop(st_LuaCore.pSt_LuaState, -1); st_csStl.lock(); stl_MapFrameWork.insert(make_pair(xhNet, st_LuaCore)); st_csStl.unlock(); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModulePlugin/XEngine_ModulePlugin.vcxproj b/XEngine_Source/XEngine_ModulePlugin/XEngine_ModulePlugin.vcxproj index f16c7d8..f08d5e3 100644 --- a/XEngine_Source/XEngine_ModulePlugin/XEngine_ModulePlugin.vcxproj +++ b/XEngine_Source/XEngine_ModulePlugin/XEngine_ModulePlugin.vcxproj @@ -30,27 +30,27 @@ DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode diff --git a/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp b/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp index 52bff00..15b0e80 100644 --- a/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return XTRUE; + return TRUE; } diff --git a/XEngine_Source/XEngine_ModulePlugin/pch.cpp b/XEngine_Source/XEngine_ModulePlugin/pch.cpp index 3566b14..3b0e81c 100644 --- a/XEngine_Source/XEngine_ModulePlugin/pch.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/pch.cpp @@ -13,7 +13,7 @@ // Purpose: 插件核心导出函数实现 // History: *********************************************************************/ -XBOOL ModulePlugin_IsErrorOccur = XFALSE; +XBOOL ModulePlugin_IsErrorOccur = FALSE; XLONG ModulePlugin_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_LibCore m_PluginLib; diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp index 13a973f..17f6d4d 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp @@ -51,13 +51,13 @@ CModuleProtocol_Packet::~CModuleProtocol_Packet() *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Common(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; @@ -68,7 +68,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Common(XCHAR* ptszMsgBuffer, } *pInt_MsgLen = st_JsonRoot.toStyledString().length(); memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_IDQuery @@ -110,13 +110,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Common(XCHAR* ptszMsgBuffer, *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -133,19 +133,19 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer st_JsonObject["nCheck"] = pSt_IDInfo->nCheck; #ifdef _MSC_BUILD - int nUTFLen = _tcslen(pSt_IDRegion->tszProvincer); + int nUTFLen = _tcsxlen(pSt_IDRegion->tszProvincer); XCHAR tszUTFBuffer[MAX_PATH]; memset(tszUTFBuffer, '\0', MAX_PATH); BaseLib_OperatorCharset_AnsiToUTF(pSt_IDRegion->tszProvincer, tszUTFBuffer, &nUTFLen); st_JsonObject["tszProvincer"] = tszUTFBuffer; - nUTFLen = _tcslen(pSt_IDRegion->tszCity); + nUTFLen = _tcsxlen(pSt_IDRegion->tszCity); memset(tszUTFBuffer, '\0', MAX_PATH); BaseLib_OperatorCharset_AnsiToUTF(pSt_IDRegion->tszCity, tszUTFBuffer, &nUTFLen); st_JsonObject["tszCity"] = tszUTFBuffer; - nUTFLen = _tcslen(pSt_IDRegion->tszCounty); + nUTFLen = _tcsxlen(pSt_IDRegion->tszCounty); memset(tszUTFBuffer, '\0', MAX_PATH); BaseLib_OperatorCharset_AnsiToUTF(pSt_IDRegion->tszCounty, tszUTFBuffer, &nUTFLen); st_JsonObject["tszCounty"] = tszUTFBuffer; @@ -170,7 +170,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_BankQuery @@ -207,13 +207,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -229,7 +229,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuff XCHAR tszUTFBuffer[MAX_PATH]; memset(tszUTFBuffer, '\0', MAX_PATH); - int nUTFLen = _tcslen(pSt_BankInfo->tszBankName); + int nUTFLen = _tcsxlen(pSt_BankInfo->tszBankName); BaseLib_OperatorCharset_AnsiToUTF(pSt_BankInfo->tszBankName, tszUTFBuffer, &nUTFLen); st_JsonObject["tszBankName"] = tszUTFBuffer; #else @@ -251,7 +251,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuff *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_LanguageQuery @@ -288,13 +288,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuff *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -321,7 +321,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsg *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_Locker @@ -358,13 +358,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsg *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCXSTR lpszMsgBuffer) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -386,7 +386,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_ZIPCode @@ -423,13 +423,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -462,7 +462,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_Log @@ -494,13 +494,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; Json::Value st_JsonArray; @@ -528,7 +528,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, in *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_TestReport @@ -584,13 +584,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, in *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -611,7 +611,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuf *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_TestReply @@ -638,13 +638,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuf *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -659,7 +659,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuff *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_ShortLink @@ -686,13 +686,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuff *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_SHORTLINK* pSt_ShortLink) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -712,7 +712,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuff *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PLan @@ -744,13 +744,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuff *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == pppSt_ListClients) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; Json::Value st_JsonArray; @@ -768,7 +768,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, *pInt_MsgLen = st_JsonRoot.toStyledString().length(); memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PWLan @@ -795,13 +795,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == pStl_ListClients) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return XFALSE; + return FALSE; } unordered_map> stl_MapClient; //首先处理公网下的局域网网段列表 @@ -816,10 +816,10 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer memset(&st_LANPacket, '\0', sizeof(P2XPPROTOCOL_LANPACKET)); //分割 BaseLib_OperatorIPAddr_IsIPV4Addr(stl_ListIterator->tszPrivateAddr, &st_LibAddr); - _stprintf(tszClientAddr, _T("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); + _xstprintf(tszClientAddr, _X("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); //赋值 - _tcscpy(st_LANPacket.tszUsername, stl_ListIterator->tszUserName); - _tcscpy(st_LANPacket.tszClientAddr, stl_ListIterator->tszPrivateAddr); + _tcsxcpy(st_LANPacket.tszUsername, stl_ListIterator->tszUserName); + _tcsxcpy(st_LANPacket.tszClientAddr, stl_ListIterator->tszPrivateAddr); //判断是否存在 unordered_map>::iterator stl_MapIterator = stl_MapClient.find(tszClientAddr); if (stl_MapIterator == stl_MapClient.end()) @@ -861,7 +861,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer *pInt_MsgLen = st_JsonRoot.toStyledString().length(); memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PUser @@ -888,13 +888,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == pSt_PeerInfo) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; Json::Value st_JsonAddr; @@ -912,7 +912,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer st_JsonBuilder["emitUTF8"] = true; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PConnect @@ -944,13 +944,13 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer *********************************************************************/ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; @@ -962,5 +962,5 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuf *pInt_MsgLen = st_JsonRoot.toStyledString().length(); memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp index 723340f..60c5d54 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp @@ -41,19 +41,19 @@ CModuleProtocol_Parse::~CModuleProtocol_Parse() *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCARDINFO* pSt_IDInfo) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == lpszMsgBuffer) || (NULL == pSt_IDInfo)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return XFALSE; + return FALSE; } - if (_tcslen(lpszMsgBuffer) != 18) + if (_tcsxlen(lpszMsgBuffer) != 18) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_LEN; - return XFALSE; + return FALSE; } int nPos = 0; XCHAR tszTmpBuffer[16]; @@ -62,58 +62,58 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, { if (!isdigit(lpszMsgBuffer[i])) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_FMT; - return XFALSE; + return FALSE; } } - _tcscpy(pSt_IDInfo->tszIDNumber, lpszMsgBuffer); + _tcsxcpy(pSt_IDInfo->tszIDNumber, lpszMsgBuffer); //提取行政区域 memset(tszTmpBuffer, '\0', sizeof(tszTmpBuffer)); memcpy(tszTmpBuffer, lpszMsgBuffer + nPos, 2); - pSt_IDInfo->nIDProvince = _ttoi(tszTmpBuffer); + pSt_IDInfo->nIDProvince = _ttxoi(tszTmpBuffer); nPos += 2; memset(tszTmpBuffer, '\0', sizeof(tszTmpBuffer)); memcpy(tszTmpBuffer, lpszMsgBuffer + nPos, 2); - pSt_IDInfo->nIDCity = _ttoi(tszTmpBuffer); + pSt_IDInfo->nIDCity = _ttxoi(tszTmpBuffer); nPos += 2; memset(tszTmpBuffer, '\0', sizeof(tszTmpBuffer)); memcpy(tszTmpBuffer, lpszMsgBuffer + nPos, 2); - pSt_IDInfo->nIDCounty = _ttoi(tszTmpBuffer); + pSt_IDInfo->nIDCounty = _ttxoi(tszTmpBuffer); nPos += 2; //提取生日 memset(tszTmpBuffer, '\0', sizeof(tszTmpBuffer)); memcpy(tszTmpBuffer, lpszMsgBuffer + nPos, 4); - pSt_IDInfo->nBirthYear = _ttoi(tszTmpBuffer); + pSt_IDInfo->nBirthYear = _ttxoi(tszTmpBuffer); nPos += 4; memset(tszTmpBuffer, '\0', sizeof(tszTmpBuffer)); memcpy(tszTmpBuffer, lpszMsgBuffer + nPos, 2); - pSt_IDInfo->nBirthMonth = _ttoi(tszTmpBuffer); + pSt_IDInfo->nBirthMonth = _ttxoi(tszTmpBuffer); nPos += 2; memset(tszTmpBuffer, '\0', sizeof(tszTmpBuffer)); memcpy(tszTmpBuffer, lpszMsgBuffer + nPos, 2); - pSt_IDInfo->nBirthDay = _ttoi(tszTmpBuffer); + pSt_IDInfo->nBirthDay = _ttxoi(tszTmpBuffer); nPos += 2; //提取派出所编码 memset(tszTmpBuffer, '\0', sizeof(tszTmpBuffer)); memcpy(tszTmpBuffer, lpszMsgBuffer + nPos, 2); - pSt_IDInfo->nPoliceID = _ttoi(tszTmpBuffer); + pSt_IDInfo->nPoliceID = _ttxoi(tszTmpBuffer); nPos += 2; //提取性别 memset(tszTmpBuffer, '\0', sizeof(tszTmpBuffer)); memcpy(tszTmpBuffer, lpszMsgBuffer + nPos, 1); - pSt_IDInfo->nSex = _ttoi(tszTmpBuffer); + pSt_IDInfo->nSex = _ttxoi(tszTmpBuffer); nPos += 1; //提取校验码 memset(tszTmpBuffer, '\0', sizeof(tszTmpBuffer)); memcpy(tszTmpBuffer, lpszMsgBuffer + nPos, 1); - pSt_IDInfo->nCheck = _ttoi(tszTmpBuffer); + pSt_IDInfo->nCheck = _ttxoi(tszTmpBuffer); nPos += 1; - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_Bank @@ -140,13 +140,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO* pSt_BankInfo) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == lpszMsgBuffer) || (0 == nMsgLen)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -155,25 +155,25 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, in std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_JSON; - return XFALSE; + return FALSE; } //{"messages":[{"errorCodes":"CARD_BIN_NOT_MATCH","name":"cardNo"}],"validated":false,"stat":"ok","key":"62215546546546"} //{"cardType":"DC","bank":"CMB","key":"62215546546546"messages":[],"validated":true,"stat":"ok"} if (!st_JsonRoot["validated"].asBool()) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_VALIDATE; - return XFALSE; + return FALSE; } - LPCXSTR lpszTypeDC = _T("DC"); - LPCXSTR lpszTypeCC = _T("CC"); - if (0 == _tcsncmp(lpszTypeDC, st_JsonRoot["cardType"].asCString(), _tcslen(lpszTypeDC))) + LPCXSTR lpszTypeDC = _X("DC"); + LPCXSTR lpszTypeCC = _X("CC"); + if (0 == _tcsxncmp(lpszTypeDC, st_JsonRoot["cardType"].asCString(), _tcsxlen(lpszTypeDC))) { pSt_BankInfo->enBankType = ENUM_XENGINE_APISERVICE_BANK_TYPE_DC; } - else if (0 == _tcsncmp(lpszTypeCC, st_JsonRoot["cardType"].asCString(), _tcslen(lpszTypeCC))) + else if (0 == _tcsxncmp(lpszTypeCC, st_JsonRoot["cardType"].asCString(), _tcsxlen(lpszTypeCC))) { pSt_BankInfo->enBankType = ENUM_XENGINE_APISERVICE_BANK_TYPE_CC; } @@ -181,8 +181,8 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, in { pSt_BankInfo->enBankType = ENUM_XENGINE_APISERVICE_BANK_TYPE_BC; } - _tcscpy(pSt_BankInfo->tszBankAbridge, st_JsonRoot["bank"].asCString()); - return XTRUE; + _tcsxcpy(pSt_BankInfo->tszBankAbridge, st_JsonRoot["bank"].asCString()); + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_Translation @@ -209,13 +209,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, in *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == lpszMsgBuffer) || (0 == nMsgLen)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -224,22 +224,22 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuf std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_JSON; - return XFALSE; + return FALSE; } //{"type":"ZH_CN2EN","errorCode":0,"elapsedTime":1,"translateResult":[[{"src":"计算","tgt":"To calculate"}]]} if (0 != st_JsonRoot["errorCode"].asInt()) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_VALIDATE; - return XFALSE; + return FALSE; } Json::Value st_JsonTranslation = st_JsonRoot["translateResult"]; - _tcscpy(pSt_LanguageInfo->tszSourceStr, st_JsonTranslation[0][0]["src"].asCString()); - _tcscpy(pSt_LanguageInfo->tszDestStr, st_JsonTranslation[0][0]["tgt"].asCString()); - return XTRUE; + _tcsxcpy(pSt_LanguageInfo->tszSourceStr, st_JsonTranslation[0][0]["src"].asCString()); + _tcsxcpy(pSt_LanguageInfo->tszDestStr, st_JsonTranslation[0][0]["tgt"].asCString()); + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_P2PClient @@ -266,13 +266,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuf *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_P2XPPeer) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == lpszMsgBuffer) || (NULL == pSt_P2XPPeer)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; Json::CharReaderBuilder st_JsonBuild; @@ -282,24 +282,24 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffe //解析JSON if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_JSON; - return XFALSE; + return FALSE; } delete pSt_JsonReader; pSt_JsonReader = NULL; if (!st_JsonRoot["tszUserName"].isNull()) { - _tcscpy(pSt_P2XPPeer->tszUserName, st_JsonRoot["tszUserName"].asCString()); + _tcsxcpy(pSt_P2XPPeer->tszUserName, st_JsonRoot["tszUserName"].asCString()); } if (!st_JsonRoot["tszPrivateAddr"].isNull()) { - _tcscpy(pSt_P2XPPeer->tszPrivateAddr, st_JsonRoot["tszPrivateAddr"].asCString()); + _tcsxcpy(pSt_P2XPPeer->tszPrivateAddr, st_JsonRoot["tszPrivateAddr"].asCString()); } if (!st_JsonRoot["tszPublicAddr"].isNull()) { - _tcscpy(pSt_P2XPPeer->tszPublicAddr, st_JsonRoot["tszPublicAddr"].asCString()); + _tcsxcpy(pSt_P2XPPeer->tszPublicAddr, st_JsonRoot["tszPublicAddr"].asCString()); } if (!st_JsonRoot["dwConnectType"].isNull()) { @@ -309,7 +309,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffe { pSt_P2XPPeer->dwPeerType = st_JsonRoot["dwPeerType"].asInt(); } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_ZIPCode @@ -336,13 +336,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffe *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == lpszMsgBuffer) || (NULL == pSt_ZIPInfo)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -351,29 +351,29 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return XFALSE; + return FALSE; } if (!st_JsonRoot["tszProvincer"].isNull()) { - _tcscpy(pSt_ZIPInfo->tszProvincer, st_JsonRoot["tszProvincer"].asCString()); + _tcsxcpy(pSt_ZIPInfo->tszProvincer, st_JsonRoot["tszProvincer"].asCString()); } if (!st_JsonRoot["tszCity"].isNull()) { - _tcscpy(pSt_ZIPInfo->tszCity, st_JsonRoot["tszCity"].asCString()); + _tcsxcpy(pSt_ZIPInfo->tszCity, st_JsonRoot["tszCity"].asCString()); } if (!st_JsonRoot["tszCounty"].isNull()) { - _tcscpy(pSt_ZIPInfo->tszCounty, st_JsonRoot["tszCounty"].asCString()); + _tcsxcpy(pSt_ZIPInfo->tszCounty, st_JsonRoot["tszCounty"].asCString()); } if (!st_JsonRoot["nZipCode"].isNull()) { pSt_ZIPInfo->nZipCode = st_JsonRoot["nZipCode"].asInt(); } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_XLog @@ -400,13 +400,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == lpszMsgBuffer) || (NULL == pSt_XLogInfo)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -415,18 +415,18 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, in std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return XFALSE; + return FALSE; } if (!st_JsonRoot["tszTableName"].isNull()) { - _tcscpy(pSt_XLogInfo->tszTableName, st_JsonRoot["tszTableName"].asCString()); + _tcsxcpy(pSt_XLogInfo->tszTableName, st_JsonRoot["tszTableName"].asCString()); } if (!st_JsonRoot["tszLogBuffer"].isNull()) { - _tcscpy(pSt_XLogInfo->tszLogBuffer, st_JsonRoot["tszLogBuffer"].asCString()); + _tcsxcpy(pSt_XLogInfo->tszLogBuffer, st_JsonRoot["tszLogBuffer"].asCString()); } if (!st_JsonRoot["nLogSize"].isNull()) { @@ -434,23 +434,23 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, in } if (!st_JsonRoot["tszTimeStart"].isNull()) { - _tcscpy(pSt_XLogInfo->tszTimeStart, st_JsonRoot["tszTimeStart"].asCString()); + _tcsxcpy(pSt_XLogInfo->tszTimeStart, st_JsonRoot["tszTimeStart"].asCString()); } if (!st_JsonRoot["tszTimeEnd"].isNull()) { - _tcscpy(pSt_XLogInfo->tszTimeEnd, st_JsonRoot["tszTimeEnd"].asCString()); + _tcsxcpy(pSt_XLogInfo->tszTimeEnd, st_JsonRoot["tszTimeEnd"].asCString()); } if (!st_JsonRoot["tszFileName"].isNull()) { - _tcscpy(pSt_XLogInfo->st_ProtocolLog.tszFileName, st_JsonRoot["tszFileName"].asCString()); + _tcsxcpy(pSt_XLogInfo->st_ProtocolLog.tszFileName, st_JsonRoot["tszFileName"].asCString()); } if (!st_JsonRoot["tszFuncName"].isNull()) { - _tcscpy(pSt_XLogInfo->st_ProtocolLog.tszFuncName, st_JsonRoot["tszFuncName"].asCString()); + _tcsxcpy(pSt_XLogInfo->st_ProtocolLog.tszFuncName, st_JsonRoot["tszFuncName"].asCString()); } if (!st_JsonRoot["tszLogTimer"].isNull()) { - _tcscpy(pSt_XLogInfo->st_ProtocolLog.tszLogTimer, st_JsonRoot["tszLogTimer"].asCString()); + _tcsxcpy(pSt_XLogInfo->st_ProtocolLog.tszLogTimer, st_JsonRoot["tszLogTimer"].asCString()); } if (!st_JsonRoot["nLogLine"].isNull()) { @@ -460,7 +460,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, in { pSt_XLogInfo->st_ProtocolLog.nLogLevel = st_JsonRoot["nLogLevel"].asInt(); } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_QRCode @@ -487,13 +487,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, in *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == lpszMsgBuffer) || (NULL == pSt_QRCode)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -502,20 +502,20 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return XFALSE; + return FALSE; } if (!st_JsonRoot["tszMsgBuffer"].isNull()) { - _tcscpy(pSt_QRCode->tszMsgBuffer, st_JsonRoot["tszMsgBuffer"].asCString()); + _tcsxcpy(pSt_QRCode->tszMsgBuffer, st_JsonRoot["tszMsgBuffer"].asCString()); } if (!st_JsonRoot["tszFmtBuffer"].isNull()) { - _tcscpy(pSt_QRCode->tszFmtBuffer, st_JsonRoot["tszFmtBuffer"].asCString()); + _tcsxcpy(pSt_QRCode->tszFmtBuffer, st_JsonRoot["tszFmtBuffer"].asCString()); } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_SocketTest @@ -542,13 +542,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == lpszMsgBuffer) || (NULL == pSt_SocketTest)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -557,14 +557,14 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuff std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return XFALSE; + return FALSE; } if (!st_JsonRoot["tszAPIUrl"].isNull()) { - _tcscpy(pSt_SocketTest->tszAPIUrl, st_JsonRoot["tszAPIUrl"].asCString()); + _tcsxcpy(pSt_SocketTest->tszAPIUrl, st_JsonRoot["tszAPIUrl"].asCString()); } if (!st_JsonRoot["xhToken"].isNull()) { @@ -581,7 +581,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuff //链接 if (!st_JsonRoot["tszAddr"].isNull()) { - _tcscpy(pSt_SocketTest->st_SocketConn.tszAddr, st_JsonRoot["tszAddr"].asCString()); + _tcsxcpy(pSt_SocketTest->st_SocketConn.tszAddr, st_JsonRoot["tszAddr"].asCString()); } if (!st_JsonRoot["nPort"].isNull()) { @@ -606,11 +606,11 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuff //数据 if (!st_JsonRoot["tszSDBuffer"].isNull()) { - _tcscpy(pSt_SocketTest->st_SocketData.tszSDBuffer, st_JsonRoot["tszSDBuffer"].asCString()); + _tcsxcpy(pSt_SocketTest->st_SocketData.tszSDBuffer, st_JsonRoot["tszSDBuffer"].asCString()); } if (!st_JsonRoot["tszRVBuffer"].isNull()) { - _tcscpy(pSt_SocketTest->st_SocketData.tszRVBuffer, st_JsonRoot["tszRVBuffer"].asCString()); + _tcsxcpy(pSt_SocketTest->st_SocketData.tszRVBuffer, st_JsonRoot["tszRVBuffer"].asCString()); } if (!st_JsonRoot["nRVLen"].isNull()) { @@ -620,7 +620,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuff { pSt_SocketTest->st_SocketData.nSDLen = st_JsonRoot["nSDLen"].asInt(); } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleProtocol_Parse_ShortLink @@ -647,13 +647,13 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuff *********************************************************************/ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SHORTLINK* pSt_ShortLink) { - ModuleProtocol_IsErrorOccur = XFALSE; + ModuleProtocol_IsErrorOccur = FALSE; if ((NULL == lpszMsgBuffer) || (NULL == pSt_ShortLink)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return XFALSE; + return FALSE; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -662,38 +662,38 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffe std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = XTRUE; + ModuleProtocol_IsErrorOccur = TRUE; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return XFALSE; + return FALSE; } if (!st_JsonRoot["tszFullUrl"].isNull()) { - _tcscpy(pSt_ShortLink->tszFullUrl, st_JsonRoot["tszFullUrl"].asCString()); + _tcsxcpy(pSt_ShortLink->tszFullUrl, st_JsonRoot["tszFullUrl"].asCString()); } if (!st_JsonRoot["tszShotUrl"].isNull()) { - _tcscpy(pSt_ShortLink->tszShotUrl, st_JsonRoot["tszShotUrl"].asCString()); + _tcsxcpy(pSt_ShortLink->tszShotUrl, st_JsonRoot["tszShotUrl"].asCString()); } if (!st_JsonRoot["tszKeyUrl"].isNull()) { - _tcscpy(pSt_ShortLink->tszKeyUrl, st_JsonRoot["tszKeyUrl"].asCString()); + _tcsxcpy(pSt_ShortLink->tszKeyUrl, st_JsonRoot["tszKeyUrl"].asCString()); } if (!st_JsonRoot["tszMapUrl"].isNull()) { - _tcscpy(pSt_ShortLink->tszMapUrl, st_JsonRoot["tszMapUrl"].asCString()); + _tcsxcpy(pSt_ShortLink->tszMapUrl, st_JsonRoot["tszMapUrl"].asCString()); } if (!st_JsonRoot["tszCvtUrl"].isNull()) { - _tcscpy(pSt_ShortLink->tszCvtUrl, st_JsonRoot["tszCvtUrl"].asCString()); + _tcsxcpy(pSt_ShortLink->tszCvtUrl, st_JsonRoot["tszCvtUrl"].asCString()); } if (!st_JsonRoot["tszCreateTime"].isNull()) { - _tcscpy(pSt_ShortLink->tszCreateTime, st_JsonRoot["tszCreateTime"].asCString()); + _tcsxcpy(pSt_ShortLink->tszCreateTime, st_JsonRoot["tszCreateTime"].asCString()); } if (!st_JsonRoot["nLength"].isNull()) { pSt_ShortLink->nLength = st_JsonRoot["nLength"].asInt(); } - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/XEngine_ModuleProtocol.vcxproj b/XEngine_Source/XEngine_ModuleProtocol/XEngine_ModuleProtocol.vcxproj index d4c5a30..5fb7e2f 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/XEngine_ModuleProtocol.vcxproj +++ b/XEngine_Source/XEngine_ModuleProtocol/XEngine_ModuleProtocol.vcxproj @@ -30,27 +30,27 @@ DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode diff --git a/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp b/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp index 52bff00..15b0e80 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return XTRUE; + return TRUE; } diff --git a/XEngine_Source/XEngine_ModuleProtocol/pch.cpp b/XEngine_Source/XEngine_ModuleProtocol/pch.cpp index 2d48b69..fa52262 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/pch.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/pch.cpp @@ -12,7 +12,7 @@ // Purpose: 导出协议模块实现 // History: *********************************************************************/ -XBOOL ModuleProtocol_IsErrorOccur = XFALSE; +XBOOL ModuleProtocol_IsErrorOccur = FALSE; XLONG ModuleProtocol_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleProtocol_Packet m_ProtocolPacket; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/ModulePlugin_BMIndex.vcxproj b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/ModulePlugin_BMIndex.vcxproj index 4fa9af3..5a26533 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/ModulePlugin_BMIndex.vcxproj +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/ModulePlugin_BMIndex.vcxproj @@ -31,27 +31,27 @@ DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp index d304c73..a05915d 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp @@ -35,9 +35,9 @@ CPlugin_BMIndex::~CPlugin_BMIndex() *********************************************************************/ XBOOL CPlugin_BMIndex::PluginCore_Init(XPVOID lParam) { - BMIndex_IsErrorOccur = XFALSE; + BMIndex_IsErrorOccur = FALSE; - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -49,7 +49,7 @@ XBOOL CPlugin_BMIndex::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_BMIndex::PluginCore_UnInit() { - BMIndex_IsErrorOccur = XFALSE; + BMIndex_IsErrorOccur = FALSE; } /******************************************************************** 函数名称:PluginCore_Call @@ -61,13 +61,13 @@ void CPlugin_BMIndex::PluginCore_UnInit() *********************************************************************/ XBOOL CPlugin_BMIndex::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - BMIndex_IsErrorOccur = XFALSE; + BMIndex_IsErrorOccur = FALSE; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - BMIndex_IsErrorOccur = XTRUE; + BMIndex_IsErrorOccur = TRUE; BMIndex_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_BMINDEX_PARAMENT; - return XFALSE; + return FALSE; } XCHAR tszKeyName[128]; XCHAR tszParamHigh[128]; @@ -82,21 +82,21 @@ XBOOL CPlugin_BMIndex::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* Plugin_Timezone_BMIndex(tszParamHigh, tszParamWeight, ptszMsgBuffer, pInt_MsgLen); *pInt_HTTPCode = 200; - return XTRUE; + return TRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// XBOOL CPlugin_BMIndex::Plugin_Timezone_BMIndex(LPCXSTR lpszHigh, LPCXSTR lpszWeight, XCHAR* ptszMsgBufer, int* pInt_Len) { - BMIndex_IsErrorOccur = XFALSE; + BMIndex_IsErrorOccur = FALSE; Json::Value st_JsonRoot; Json::Value st_JsonObject; Json::StreamWriterBuilder st_JsonBuilder; - double dlHigh = _ttof(lpszHigh); - double dlWeight = _ttof(lpszWeight); + double dlHigh = _ttxof(lpszHigh); + double dlWeight = _ttxof(lpszWeight); double dlValue = dlWeight / (dlHigh * dlHigh); if (dlValue < 18.5) { @@ -133,5 +133,5 @@ XBOOL CPlugin_BMIndex::Plugin_Timezone_BMIndex(LPCXSTR lpszHigh, LPCXSTR lpszWei *pInt_Len = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp index 52bff00..15b0e80 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return XTRUE; + return TRUE; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp index 1876011..e6bfdfc 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL BMIndex_IsErrorOccur = XFALSE; +XBOOL BMIndex_IsErrorOccur = FALSE; XLONG BMIndex_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_BMIndex m_PluginBMIndex; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_IPAddr.vcxproj b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_IPAddr.vcxproj index adc691c..e79494b 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_IPAddr.vcxproj +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_IPAddr.vcxproj @@ -31,27 +31,27 @@ DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp index af2d2a7..6c7eff2 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp @@ -35,7 +35,7 @@ CModulePlugin_Interface::~CModulePlugin_Interface() *********************************************************************/ XBOOL CModulePlugin_Interface::PluginCore_Init(XPVOID lParam) { - IPAddr_IsErrorOccur = XFALSE; + IPAddr_IsErrorOccur = FALSE; const char* db_path = "./XEngine_DBFile/ip2region.xdb"; // 1、从 db_path 初始化 xdb 查询对象 @@ -43,9 +43,9 @@ XBOOL CModulePlugin_Interface::PluginCore_Init(XPVOID lParam) if (err != 0) { printf("failed to create xdb searcher from `%s` with errno=%d\n", db_path, err); - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -57,7 +57,7 @@ XBOOL CModulePlugin_Interface::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CModulePlugin_Interface::PluginCore_UnInit() { - IPAddr_IsErrorOccur = XFALSE; + IPAddr_IsErrorOccur = FALSE; xdb_close(&st_DBSearch); } /******************************************************************** @@ -70,13 +70,13 @@ void CModulePlugin_Interface::PluginCore_UnInit() *********************************************************************/ XBOOL CModulePlugin_Interface::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - IPAddr_IsErrorOccur = XFALSE; + IPAddr_IsErrorOccur = FALSE; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - IPAddr_IsErrorOccur = XTRUE; + IPAddr_IsErrorOccur = TRUE; IPAddr_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_IPADDR_PARAMENT; - return XFALSE; + return FALSE; } XCHAR tszKeyName[128]; XCHAR tszMsgBuffer[128]; @@ -92,12 +92,12 @@ XBOOL CModulePlugin_Interface::PluginCore_Call(XCHAR*** pppHDRList, int nListCou BaseLib_OperatorString_GetKeyValue((*pppHDRList)[1], "=", tszKeyName, st_IPAddr.tszIPAddr); if (0 != xdb_search_by_string(&st_DBSearch, st_IPAddr.tszIPAddr, tszMsgBuffer, sizeof(tszMsgBuffer))) { - IPAddr_IsErrorOccur = XTRUE; + IPAddr_IsErrorOccur = TRUE; IPAddr_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_IPADDR_NOTFOUND; - return XFALSE; + return FALSE; } //中国|0|内蒙古|通辽市|联通 - _stscanf(tszMsgBuffer, _T("%[^|]|%[^|]|%[^|]|%[^|]|%[^|]"), st_IPAddr.tszIPCountry, st_IPAddr.tszIPCounty, st_IPAddr.tszIPProvince, st_IPAddr.tszIPCity, st_IPAddr.tszIPISP); + _stxscanf(tszMsgBuffer, _X("%[^|]|%[^|]|%[^|]|%[^|]|%[^|]"), st_IPAddr.tszIPCountry, st_IPAddr.tszIPCounty, st_IPAddr.tszIPProvince, st_IPAddr.tszIPCity, st_IPAddr.tszIPISP); st_JsonObject["tszIPAddr"] = st_IPAddr.tszIPAddr; st_JsonObject["tszIPCountry"] = st_IPAddr.tszIPCountry; st_JsonObject["tszIPProvince"] = st_IPAddr.tszIPProvince; @@ -114,5 +114,5 @@ XBOOL CModulePlugin_Interface::PluginCore_Call(XCHAR*** pppHDRList, int nListCou *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp index cb8e9bb..c6b634e 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp @@ -14,5 +14,5 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp index 3384ede..8a93c19 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL IPAddr_IsErrorOccur = XFALSE; +XBOOL IPAddr_IsErrorOccur = FALSE; XLONG IPAddr_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_Interface m_PluginIPAddr; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.vcxproj b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.vcxproj index 37c1c1e..f5f2394 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.vcxproj +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.vcxproj @@ -31,27 +31,27 @@ DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp index 76e05d7..0c80d27 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp @@ -35,9 +35,9 @@ CPlugin_Meter::~CPlugin_Meter() *********************************************************************/ XBOOL CPlugin_Meter::PluginCore_Init(XPVOID lParam) { - Meter_IsErrorOccur = XFALSE; + Meter_IsErrorOccur = FALSE; - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -49,7 +49,7 @@ XBOOL CPlugin_Meter::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_Meter::PluginCore_UnInit() { - Meter_IsErrorOccur = XFALSE; + Meter_IsErrorOccur = FALSE; } /******************************************************************** 函数名称:PluginCore_Call @@ -61,13 +61,13 @@ void CPlugin_Meter::PluginCore_UnInit() *********************************************************************/ XBOOL CPlugin_Meter::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Meter_IsErrorOccur = XFALSE; + Meter_IsErrorOccur = FALSE; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Meter_IsErrorOccur = XTRUE; + Meter_IsErrorOccur = TRUE; Meter_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_METER_PARAMENT; - return XFALSE; + return FALSE; } XCHAR tszKeyName[128]; XCHAR tszParamType[128]; @@ -88,26 +88,26 @@ XBOOL CPlugin_Meter::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* p BaseLib_OperatorString_GetKeyValue((*pppHDRList)[2], "=", tszKeyName, tszParamSource); BaseLib_OperatorString_GetKeyValue((*pppHDRList)[3], "=", tszKeyName, tszParamValue); - if (0 == _ttoi(tszParamType)) + if (0 == _ttxoi(tszParamType)) { - Plugin_Meter_LengthConvert(_ttoi(tszParamSource), _ttoi64(tszParamValue), &st_JsonObject); + Plugin_Meter_LengthConvert(_ttxoi(tszParamSource), _ttxoll(tszParamValue), &st_JsonObject); } - else if (1 == _ttoi(tszParamType)) + else if (1 == _ttxoi(tszParamType)) { - Plugin_Meter_TemperatureConvert(_ttoi(tszParamSource), _ttoi64(tszParamValue), &st_JsonObject); + Plugin_Meter_TemperatureConvert(_ttxoi(tszParamSource), _ttxoll(tszParamValue), &st_JsonObject); } - else if (2 == _ttoi(tszParamType)) + else if (2 == _ttxoi(tszParamType)) { - Plugin_Meter_PowerConvert(_ttoi(tszParamSource), _ttoi64(tszParamValue), &st_JsonObject); + Plugin_Meter_PowerConvert(_ttxoi(tszParamSource), _ttxoll(tszParamValue), &st_JsonObject); } - else if (3 == _ttoi(tszParamType)) + else if (3 == _ttxoi(tszParamType)) { - Plugin_Meter_SpeedConvert(_ttoi(tszParamSource), _ttoi64(tszParamValue), &st_JsonObject); + Plugin_Meter_SpeedConvert(_ttxoi(tszParamSource), _ttxoll(tszParamValue), &st_JsonObject); } - st_JsonObject["tszParamType"] = _ttoi(tszParamType); - st_JsonObject["tszParamSource"] = _ttoi(tszParamSource); - st_JsonObject["tszParamValue"] = _ttof(tszParamValue); + st_JsonObject["tszParamType"] = _ttxoi(tszParamType); + st_JsonObject["tszParamSource"] = _ttxoi(tszParamSource); + st_JsonObject["tszParamValue"] = _ttxof(tszParamValue); st_JsonRoot["data"] = st_JsonObject; st_JsonRoot["code"] = 0; @@ -117,14 +117,14 @@ XBOOL CPlugin_Meter::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* p *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// XBOOL CPlugin_Meter::Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Json::Value *pSt_JsonObject) { - Meter_IsErrorOccur = XFALSE; + Meter_IsErrorOccur = FALSE; Json::Value st_JsonObejct; if (ENUM_APISERVICE_PLUGIN_METER_LENGTH_KILOMETRE == nSource) @@ -191,11 +191,11 @@ XBOOL CPlugin_Meter::Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Js st_JsonObejct["foot"] = double(nValue * 0.32808399); } (*pSt_JsonObject)["Length"] = st_JsonObejct; - return XTRUE; + return TRUE; } XBOOL CPlugin_Meter::Plugin_Meter_TemperatureConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) { - Meter_IsErrorOccur = XFALSE; + Meter_IsErrorOccur = FALSE; Json::Value st_JsonObejct; if (ENUM_APISERVICE_PLUGIN_METER_TEMPERATURE_C == nSource) @@ -206,11 +206,11 @@ XBOOL CPlugin_Meter::Plugin_Meter_TemperatureConvert(int nSource, __int64x nValu st_JsonObejct["degree"] = double(nValue * 0.8); } (*pSt_JsonObject)["Temperature"] = st_JsonObejct; - return XTRUE; + return TRUE; } XBOOL CPlugin_Meter::Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) { - Meter_IsErrorOccur = XFALSE; + Meter_IsErrorOccur = FALSE; Json::Value st_JsonObejct; if (ENUM_APISERVICE_PLUGIN_METER_POWER_W == nSource) @@ -220,11 +220,11 @@ XBOOL CPlugin_Meter::Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Jso st_JsonObejct["ps"] = double(nValue * 0.00136); } (*pSt_JsonObject)["Power"] = st_JsonObejct; - return XTRUE; + return TRUE; } XBOOL CPlugin_Meter::Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) { - Meter_IsErrorOccur = XFALSE; + Meter_IsErrorOccur = FALSE; Json::Value st_JsonObejct; if (ENUM_APISERVICE_PLUGIN_METER_SPEED_KNOT == nSource) @@ -243,5 +243,5 @@ XBOOL CPlugin_Meter::Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Jso st_JsonObejct["kilometer"] = double(nValue * 00.621); } (*pSt_JsonObject)["Power"] = st_JsonObejct; - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp index 52bff00..15b0e80 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return XTRUE; + return TRUE; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp index 6b3d035..0b3d2cc 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Meter_IsErrorOccur = XFALSE; +XBOOL Meter_IsErrorOccur = FALSE; XLONG Meter_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Meter m_PluginMeter; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/ModulePlugin_Password.vcxproj b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/ModulePlugin_Password.vcxproj index c692027..f3effd5 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/ModulePlugin_Password.vcxproj +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/ModulePlugin_Password.vcxproj @@ -31,27 +31,27 @@ DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp index acf0f11..c778124 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp @@ -35,9 +35,9 @@ CPlugin_Password::~CPlugin_Password() *********************************************************************/ XBOOL CPlugin_Password::PluginCore_Init(XPVOID lParam) { - Pass_IsErrorOccur = XFALSE; + Pass_IsErrorOccur = FALSE; - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -49,7 +49,7 @@ XBOOL CPlugin_Password::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_Password::PluginCore_UnInit() { - Pass_IsErrorOccur = XFALSE; + Pass_IsErrorOccur = FALSE; } /******************************************************************** 函数名称:PluginCore_Call @@ -61,13 +61,13 @@ void CPlugin_Password::PluginCore_UnInit() *********************************************************************/ XBOOL CPlugin_Password::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Pass_IsErrorOccur = XFALSE; + Pass_IsErrorOccur = FALSE; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Pass_IsErrorOccur = XTRUE; + Pass_IsErrorOccur = TRUE; Pass_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PASS_PARAMENT; - return XFALSE; + return FALSE; } XCHAR tszKeyName[128]; XCHAR tszParamType[128]; @@ -97,17 +97,17 @@ XBOOL CPlugin_Password::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// XBOOL CPlugin_Password::Plugin_Password_Creator(LPCXSTR lpszPassType, LPCXSTR lpszLength, XCHAR* ptszPassStr) { - Pass_IsErrorOccur = XFALSE; + Pass_IsErrorOccur = FALSE; - int nType = _ttoi(lpszPassType); - int nLen = _ttoi(lpszLength); + int nType = _ttxoi(lpszPassType); + int nLen = _ttxoi(lpszLength); XCHAR tszPassBuffer[MAX_PATH]; memset(tszPassBuffer, '\0', MAX_PATH); @@ -119,15 +119,15 @@ XBOOL CPlugin_Password::Plugin_Password_Creator(LPCXSTR lpszPassType, LPCXSTR lp { for (int i = 0; i < nLen; i++) { - _stprintf(&tszPassBuffer[i], _T("%d"), rand() % 9); + _xstprintf(&tszPassBuffer[i], _X("%d"), rand() % 9); } } else if (2 == nType) { for (int i = 0; i < nLen; i++) { - _stprintf(&tszPassBuffer[i], _T("%c"), (rand() % 26) + 65); + _xstprintf(&tszPassBuffer[i], _X("%c"), (rand() % 26) + 65); } } - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp index 52bff00..15b0e80 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return XTRUE; + return TRUE; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp index d511a96..616427c 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Pass_IsErrorOccur = XFALSE; +XBOOL Pass_IsErrorOccur = FALSE; XLONG Pass_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Password m_PluginPass; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp index 0d4396e..691b2c8 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp @@ -35,13 +35,13 @@ CModulePlugin_APIPhone::~CModulePlugin_APIPhone() *********************************************************************/ XBOOL CModulePlugin_APIPhone::PluginCore_Init(XPVOID lParam) { - Phone_IsErrorOccur = XFALSE; + Phone_IsErrorOccur = FALSE; - if (!m_DBPhone.ModuleDatabase_Phone_Init(_T("./XEngine_DBFile/phone.dat"))) + if (!m_DBPhone.ModuleDatabase_Phone_Init(_X("./XEngine_DBFile/phone.dat"))) { - return XFALSE; + return FALSE; } - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -53,7 +53,7 @@ XBOOL CModulePlugin_APIPhone::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CModulePlugin_APIPhone::PluginCore_UnInit() { - Phone_IsErrorOccur = XFALSE; + Phone_IsErrorOccur = FALSE; m_DBPhone.ModuleDatabase_Phone_Destory(); } @@ -67,13 +67,13 @@ void CModulePlugin_APIPhone::PluginCore_UnInit() *********************************************************************/ XBOOL CModulePlugin_APIPhone::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Phone_IsErrorOccur = XFALSE; + Phone_IsErrorOccur = FALSE; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Phone_IsErrorOccur = XTRUE; + Phone_IsErrorOccur = TRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_PARAMENT; - return XFALSE; + return FALSE; } XCHAR tszKeyName[128]; XCHAR tszKeyValue[128]; @@ -88,10 +88,10 @@ XBOOL CModulePlugin_APIPhone::PluginCore_Call(XCHAR*** pppHDRList, int nListCoun BaseLib_OperatorString_GetKeyValue((*pppHDRList)[1], "=", tszKeyName, tszKeyValue); - st_PhoneInfo.nPhoneNumber = _ttoi64(tszKeyValue); + st_PhoneInfo.nPhoneNumber = _ttxoll(tszKeyValue); if (!m_DBPhone.ModuleDatabase_Phone_Query(tszKeyValue, &st_PhoneInfo)) { - return XFALSE; + return FALSE; } st_JsonObject["nPhoneNumber"] = (Json::Value::Int64)st_PhoneInfo.nPhoneNumber; st_JsonObject["tszProvincer"] = st_PhoneInfo.tszProvincer; @@ -107,5 +107,5 @@ XBOOL CModulePlugin_APIPhone::PluginCore_Call(XCHAR*** pppHDRList, int nListCoun *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp index a711ca4..154a287 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp @@ -36,33 +36,33 @@ CModulePlugin_DBPhone::~CModulePlugin_DBPhone() *********************************************************************/ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Init(LPCXSTR lpszSQLFile) { - Phone_IsErrorOccur = XFALSE; + Phone_IsErrorOccur = FALSE; if (NULL == lpszSQLFile) { - Phone_IsErrorOccur = XTRUE; + Phone_IsErrorOccur = TRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_PARAMENT; - return XFALSE; + return FALSE; } //打开数据库 - FILE* pSt_File = _tfopen(lpszSQLFile, _T("rb")); + FILE* pSt_File = _xtfopen(lpszSQLFile, _X("rb")); if (NULL == pSt_File) { - Phone_IsErrorOccur = XTRUE; + Phone_IsErrorOccur = TRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return XFALSE; + return FALSE; } //申请内存 ptszMsgBuffer = (XCHAR*)malloc(XENGINE_APISERVICE_DATABASE_PHONE_BUFFER_SIZE); if (NULL == ptszMsgBuffer) { - Phone_IsErrorOccur = XTRUE; + Phone_IsErrorOccur = TRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_MALLOC; - return XFALSE; + return FALSE; } memset(ptszMsgBuffer, '\0', XENGINE_APISERVICE_DATABASE_PHONE_BUFFER_SIZE); //读取内容 - while (XTRUE) + while (TRUE) { int nRet = fread(ptszMsgBuffer + nFLen, 1, 2048, pSt_File); if (nRet <= 0) @@ -74,7 +74,7 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Init(LPCXSTR lpszSQLFile) fclose(pSt_File); memcpy(&st_PhoneHdr, ptszMsgBuffer, sizeof(XENGINE_DBPHONEHDR)); nCount = (nFLen - st_PhoneHdr.nOffset) / XENGINE_APISERVICE_DATABASE_PHONE_INDEX_LEN; - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_Phone_Destory @@ -86,11 +86,11 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Init(LPCXSTR lpszSQLFile) *********************************************************************/ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Destory() { - Phone_IsErrorOccur = XFALSE; + Phone_IsErrorOccur = FALSE; free(ptszMsgBuffer); ptszMsgBuffer = NULL; - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:ModuleDatabase_Phone_Query @@ -112,15 +112,15 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Destory() *********************************************************************/ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, XENGINE_PHONEINFO* pSt_PhoneInfo) { - Phone_IsErrorOccur = XFALSE; + Phone_IsErrorOccur = FALSE; if ((NULL == lpszPhoneNumber) || (NULL == pSt_PhoneInfo)) { - Phone_IsErrorOccur = XTRUE; + Phone_IsErrorOccur = TRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_PARAMENT; - return XFALSE; + return FALSE; } - size_t nPLen = _tcslen(lpszPhoneNumber); + size_t nPLen = _tcsxlen(lpszPhoneNumber); size_t nPhone = 0; //不能超过7 if (nPLen > 7) @@ -129,11 +129,11 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, memset(tszPhone, '\0', sizeof(tszPhone)); memcpy(tszPhone, lpszPhoneNumber, 7); - nPhone = _ttoi(tszPhone); + nPhone = _ttxoi(tszPhone); } else { - nPhone = _ttoi(lpszPhoneNumber); + nPhone = _ttxoi(lpszPhoneNumber); } size_t nLeft = 0; @@ -162,7 +162,7 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, else { int i = 0; - while (XTRUE) + while (TRUE) { if (ptszMsgBuffer[i + st_DBRecord.nOffset] == '\0') { @@ -174,12 +174,12 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, //转换数据 if (!ModuleDatabase_Phone_Convert(ptszMsgBuffer + st_DBRecord.nOffset, i, pSt_PhoneInfo)) { - return XFALSE; + return FALSE; } break; } } - return XTRUE; + return TRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 @@ -209,47 +209,47 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, *********************************************************************/ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Convert(LPCXSTR lpszPhoneInfo, int nMsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo) { - Phone_IsErrorOccur = XFALSE; + Phone_IsErrorOccur = FALSE; XCHAR tszMsgBuffer[128]; memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); memcpy(tszMsgBuffer, lpszPhoneInfo, nMsgLen); //省 - XCHAR* ptszTokStr = _tcstok(tszMsgBuffer, _T("|")); + XCHAR* ptszTokStr = _tcsxtok(tszMsgBuffer, _X("|")); if (NULL == ptszTokStr) { - Phone_IsErrorOccur = XTRUE; + Phone_IsErrorOccur = TRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return XFALSE; + return FALSE; } - _tcscpy(pSt_PhoneInfo->tszProvincer, ptszTokStr); + _tcsxcpy(pSt_PhoneInfo->tszProvincer, ptszTokStr); //市区 - ptszTokStr = _tcstok(NULL, _T("|")); + ptszTokStr = _tcsxtok(NULL, _X("|")); if (NULL == ptszTokStr) { - Phone_IsErrorOccur = XTRUE; + Phone_IsErrorOccur = TRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return XFALSE; + return FALSE; } - _tcscpy(pSt_PhoneInfo->tszCity, ptszTokStr); + _tcsxcpy(pSt_PhoneInfo->tszCity, ptszTokStr); //邮编 - ptszTokStr = _tcstok(NULL, _T("|")); + ptszTokStr = _tcsxtok(NULL, _X("|")); if (NULL == ptszTokStr) { - Phone_IsErrorOccur = XTRUE; + Phone_IsErrorOccur = TRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return XFALSE; + return FALSE; } - pSt_PhoneInfo->nZipCode = _ttoi(ptszTokStr); + pSt_PhoneInfo->nZipCode = _ttxoi(ptszTokStr); //区号 - ptszTokStr = _tcstok(NULL, _T("|")); + ptszTokStr = _tcsxtok(NULL, _X("|")); if (NULL == ptszTokStr) { - Phone_IsErrorOccur = XTRUE; + Phone_IsErrorOccur = TRUE; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return XFALSE; + return FALSE; } - pSt_PhoneInfo->nAreaCode = _ttoi(ptszTokStr); + pSt_PhoneInfo->nAreaCode = _ttxoi(ptszTokStr); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_Phone.vcxproj b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_Phone.vcxproj index 51c35a8..8918a35 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_Phone.vcxproj +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_Phone.vcxproj @@ -31,27 +31,27 @@ DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp index 52bff00..15b0e80 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return XTRUE; + return TRUE; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp index 1aea763..f2e1e1c 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Phone_IsErrorOccur = XFALSE; +XBOOL Phone_IsErrorOccur = FALSE; XLONG Phone_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_APIPhone m_PluginPhone; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/ModulePlugin_Timezone.vcxproj b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/ModulePlugin_Timezone.vcxproj index 462fea3..4e27953 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/ModulePlugin_Timezone.vcxproj +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/ModulePlugin_Timezone.vcxproj @@ -31,27 +31,27 @@ DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp index a9dc680..b2fb51e 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp @@ -35,469 +35,469 @@ CPlugin_Timezone::~CPlugin_Timezone() *********************************************************************/ XBOOL CPlugin_Timezone::PluginCore_Init(XPVOID lParam) { - Timezone_IsErrorOccur = XFALSE; + Timezone_IsErrorOccur = FALSE; MODULEPLUGIN_TIMEZONE st_TimeZone; memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -12; - _tcscpy(st_TimeZone.tszTimeCountry, _T("国际日期变更线,西边")); - stl_MapTimezone.insert(make_pair(_T("IDLE"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("国际日期变更线,西边")); + stl_MapTimezone.insert(make_pair(_X("IDLE"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -11; - _tcscpy(st_TimeZone.tszTimeCountry, _T("阿拉斯加诺姆时间")); - stl_MapTimezone.insert(make_pair(_T("NT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("阿拉斯加诺姆时间")); + stl_MapTimezone.insert(make_pair(_X("NT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -10; - _tcscpy(st_TimeZone.tszTimeCountry, _T("中阿拉斯加时间")); - stl_MapTimezone.insert(make_pair(_T("CAT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("中阿拉斯加时间")); + stl_MapTimezone.insert(make_pair(_X("CAT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -10; - _tcscpy(st_TimeZone.tszTimeCountry, _T("夏威夷标准时间")); - stl_MapTimezone.insert(make_pair(_T("HST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("夏威夷标准时间")); + stl_MapTimezone.insert(make_pair(_X("HST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -10; - _tcscpy(st_TimeZone.tszTimeCountry, _T("夏威夷-阿拉斯加标准时间")); - stl_MapTimezone.insert(make_pair(_T("AHST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("夏威夷-阿拉斯加标准时间")); + stl_MapTimezone.insert(make_pair(_X("AHST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -9; st_TimeZone.st_TimeZone.wMinute = -30; - _tcscpy(st_TimeZone.tszTimeCountry, _T("马克萨斯群岛时间")); - stl_MapTimezone.insert(make_pair(_T("MART"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("马克萨斯群岛时间")); + stl_MapTimezone.insert(make_pair(_X("MART"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -9; - _tcscpy(st_TimeZone.tszTimeCountry, _T("夏威夷/阿拉斯加夏时制")); - stl_MapTimezone.insert(make_pair(_T("HDT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("夏威夷/阿拉斯加夏时制")); + stl_MapTimezone.insert(make_pair(_X("HDT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -9; - _tcscpy(st_TimeZone.tszTimeCountry, _T("阿拉斯加标准时间")); - stl_MapTimezone.insert(make_pair(_T("AKST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("阿拉斯加标准时间")); + stl_MapTimezone.insert(make_pair(_X("AKST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -8; - _tcscpy(st_TimeZone.tszTimeCountry, _T("育空地区标准时")); - stl_MapTimezone.insert(make_pair(_T("YST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("育空地区标准时")); + stl_MapTimezone.insert(make_pair(_X("YST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -8; - _tcscpy(st_TimeZone.tszTimeCountry, _T("太平洋标准时间")); - stl_MapTimezone.insert(make_pair(_T("PST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("太平洋标准时间")); + stl_MapTimezone.insert(make_pair(_X("PST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -8; - _tcscpy(st_TimeZone.tszTimeCountry, _T("阿拉斯加白昼时间")); - stl_MapTimezone.insert(make_pair(_T("AKDT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("阿拉斯加白昼时间")); + stl_MapTimezone.insert(make_pair(_X("AKDT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -7; - _tcscpy(st_TimeZone.tszTimeCountry, _T("太平洋夏时制")); - stl_MapTimezone.insert(make_pair(_T("PDT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("太平洋夏时制")); + stl_MapTimezone.insert(make_pair(_X("PDT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -7; - _tcscpy(st_TimeZone.tszTimeCountry, _T("山地标准时间")); - stl_MapTimezone.insert(make_pair(_T("MST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("山地标准时间")); + stl_MapTimezone.insert(make_pair(_X("MST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -6; - _tcscpy(st_TimeZone.tszTimeCountry, _T("山地夏时制")); - stl_MapTimezone.insert(make_pair(_T("MDT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("山地夏时制")); + stl_MapTimezone.insert(make_pair(_X("MDT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -6; - _tcscpy(st_TimeZone.tszTimeCountry, _T("中部标准时间")); - stl_MapTimezone.insert(make_pair(_T("CST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("中部标准时间")); + stl_MapTimezone.insert(make_pair(_X("CST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -5; - _tcscpy(st_TimeZone.tszTimeCountry, _T("东部标准时间")); - stl_MapTimezone.insert(make_pair(_T("EST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("东部标准时间")); + stl_MapTimezone.insert(make_pair(_X("EST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -5; - _tcscpy(st_TimeZone.tszTimeCountry, _T("中部夏时制")); - stl_MapTimezone.insert(make_pair(_T("CDT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("中部夏时制")); + stl_MapTimezone.insert(make_pair(_X("CDT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -5; - _tcscpy(st_TimeZone.tszTimeCountry, _T("大西洋阿雷格里港 标准时间")); - stl_MapTimezone.insert(make_pair(_T("ACT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("大西洋阿雷格里港 标准时间")); + stl_MapTimezone.insert(make_pair(_X("ACT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -4; - _tcscpy(st_TimeZone.tszTimeCountry, _T("东部夏时制")); - stl_MapTimezone.insert(make_pair(_T("EDT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("东部夏时制")); + stl_MapTimezone.insert(make_pair(_X("EDT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -4; - _tcscpy(st_TimeZone.tszTimeCountry, _T("大西洋阿雷格里港夏令时")); - stl_MapTimezone.insert(make_pair(_T("ACST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("大西洋阿雷格里港夏令时")); + stl_MapTimezone.insert(make_pair(_X("ACST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -4; - _tcscpy(st_TimeZone.tszTimeCountry, _T("大西洋标准时间(加拿大)")); - stl_MapTimezone.insert(make_pair(_T("AST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("大西洋标准时间(加拿大)")); + stl_MapTimezone.insert(make_pair(_X("AST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -3; st_TimeZone.st_TimeZone.wMinute = -30; - _tcscpy(st_TimeZone.tszTimeCountry, _T("纽芬兰(Newfoundland)标准时间")); - stl_MapTimezone.insert(make_pair(_T("NST"), st_TimeZone)); - stl_MapTimezone.insert(make_pair(_T("NFT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("纽芬兰(Newfoundland)标准时间")); + stl_MapTimezone.insert(make_pair(_X("NST"), st_TimeZone)); + stl_MapTimezone.insert(make_pair(_X("NFT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -3; - _tcscpy(st_TimeZone.tszTimeCountry, _T("巴西利亚时间")); - stl_MapTimezone.insert(make_pair(_T("BRT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("巴西利亚时间")); + stl_MapTimezone.insert(make_pair(_X("BRT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -3; - _tcscpy(st_TimeZone.tszTimeCountry, _T("大西洋夏时制")); - stl_MapTimezone.insert(make_pair(_T("ADT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("大西洋夏时制")); + stl_MapTimezone.insert(make_pair(_X("ADT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -2; st_TimeZone.st_TimeZone.wMinute = -30; - _tcscpy(st_TimeZone.tszTimeCountry, _T("纽芬兰夏时制")); - stl_MapTimezone.insert(make_pair(_T("NDT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("纽芬兰夏时制")); + stl_MapTimezone.insert(make_pair(_X("NDT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -2; - _tcscpy(st_TimeZone.tszTimeCountry, _T("巴西利亚夏令时")); - stl_MapTimezone.insert(make_pair(_T("BRST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("巴西利亚夏令时")); + stl_MapTimezone.insert(make_pair(_X("BRST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -2; - _tcscpy(st_TimeZone.tszTimeCountry, _T("巴西费尔南多·迪诺罗尼亚岛时间")); - stl_MapTimezone.insert(make_pair(_T("FNT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("巴西费尔南多·迪诺罗尼亚岛时间")); + stl_MapTimezone.insert(make_pair(_X("FNT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -1; - _tcscpy(st_TimeZone.tszTimeCountry, _T("巴西费尔南多·迪诺罗尼亚岛 夏令时")); - stl_MapTimezone.insert(make_pair(_T("FNST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("巴西费尔南多·迪诺罗尼亚岛 夏令时")); + stl_MapTimezone.insert(make_pair(_X("FNST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = -1; - _tcscpy(st_TimeZone.tszTimeCountry, _T("西非时间")); - stl_MapTimezone.insert(make_pair(_T("WAT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("西非时间")); + stl_MapTimezone.insert(make_pair(_X("WAT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); - _tcscpy(st_TimeZone.tszTimeCountry, _T("西欧")); - stl_MapTimezone.insert(make_pair(_T("WET"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("西欧")); + stl_MapTimezone.insert(make_pair(_X("WET"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); - _tcscpy(st_TimeZone.tszTimeCountry, _T("和 UTC 相同")); - stl_MapTimezone.insert(make_pair(_T("ZULU"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("和 UTC 相同")); + stl_MapTimezone.insert(make_pair(_X("ZULU"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); - _tcscpy(st_TimeZone.tszTimeCountry, _T("校准的全球时间")); - stl_MapTimezone.insert(make_pair(_T("UTC"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("校准的全球时间")); + stl_MapTimezone.insert(make_pair(_X("UTC"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); - _tcscpy(st_TimeZone.tszTimeCountry, _T("全球时间")); - stl_MapTimezone.insert(make_pair(_T("UT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("全球时间")); + stl_MapTimezone.insert(make_pair(_X("UT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); - _tcscpy(st_TimeZone.tszTimeCountry, _T("格林尼治标准时间")); - stl_MapTimezone.insert(make_pair(_T("GMT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("格林尼治标准时间")); + stl_MapTimezone.insert(make_pair(_X("GMT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 1; - _tcscpy(st_TimeZone.tszTimeCountry, _T("西欧光照利用时间")); - stl_MapTimezone.insert(make_pair(_T("WETDST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("西欧光照利用时间")); + stl_MapTimezone.insert(make_pair(_X("WETDST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 1; - _tcscpy(st_TimeZone.tszTimeCountry, _T("瑞典冬时制")); - stl_MapTimezone.insert(make_pair(_T("SWT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("瑞典冬时制")); + stl_MapTimezone.insert(make_pair(_X("SWT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 1; - _tcscpy(st_TimeZone.tszTimeCountry, _T("挪威标准时间")); - stl_MapTimezone.insert(make_pair(_T("NOR"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("挪威标准时间")); + stl_MapTimezone.insert(make_pair(_X("NOR"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 1; - _tcscpy(st_TimeZone.tszTimeCountry, _T("中欧时间")); - stl_MapTimezone.insert(make_pair(_T("MET"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("中欧时间")); + stl_MapTimezone.insert(make_pair(_X("MET"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 1; - _tcscpy(st_TimeZone.tszTimeCountry, _T("法国夏时制")); - stl_MapTimezone.insert(make_pair(_T("FST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("法国夏时制")); + stl_MapTimezone.insert(make_pair(_X("FST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 1; - _tcscpy(st_TimeZone.tszTimeCountry, _T("丹麦正规时间")); - stl_MapTimezone.insert(make_pair(_T("DNT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("丹麦正规时间")); + stl_MapTimezone.insert(make_pair(_X("DNT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 1; - _tcscpy(st_TimeZone.tszTimeCountry, _T("中欧时间")); - stl_MapTimezone.insert(make_pair(_T("CET"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("中欧时间")); + stl_MapTimezone.insert(make_pair(_X("CET"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 1; - _tcscpy(st_TimeZone.tszTimeCountry, _T("英国夏时制")); - stl_MapTimezone.insert(make_pair(_T("BST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("英国夏时制")); + stl_MapTimezone.insert(make_pair(_X("BST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 2; - _tcscpy(st_TimeZone.tszTimeCountry, _T("瑞典夏时制")); - stl_MapTimezone.insert(make_pair(_T("SST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("瑞典夏时制")); + stl_MapTimezone.insert(make_pair(_X("SST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 2; - _tcscpy(st_TimeZone.tszTimeCountry, _T("中欧白昼时间")); - stl_MapTimezone.insert(make_pair(_T("METDST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("中欧白昼时间")); + stl_MapTimezone.insert(make_pair(_X("METDST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 2; - _tcscpy(st_TimeZone.tszTimeCountry, _T("中欧夏时制")); - stl_MapTimezone.insert(make_pair(_T("MEST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("中欧夏时制")); + stl_MapTimezone.insert(make_pair(_X("MEST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 2; - _tcscpy(st_TimeZone.tszTimeCountry, _T("以色列标准时间")); - stl_MapTimezone.insert(make_pair(_T("IST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("以色列标准时间")); + stl_MapTimezone.insert(make_pair(_X("IST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 2; - _tcscpy(st_TimeZone.tszTimeCountry, _T("法国冬时制")); - stl_MapTimezone.insert(make_pair(_T("FWT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("法国冬时制")); + stl_MapTimezone.insert(make_pair(_X("FWT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 2; - _tcscpy(st_TimeZone.tszTimeCountry, _T("东欧")); - stl_MapTimezone.insert(make_pair(_T("EET"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("东欧")); + stl_MapTimezone.insert(make_pair(_X("EET"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 2; - _tcscpy(st_TimeZone.tszTimeCountry, _T("中欧夏时制")); - stl_MapTimezone.insert(make_pair(_T("CETDST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("中欧夏时制")); + stl_MapTimezone.insert(make_pair(_X("CETDST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 2; - _tcscpy(st_TimeZone.tszTimeCountry, _T("中欧夏令时")); - stl_MapTimezone.insert(make_pair(_T("CEST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("中欧夏令时")); + stl_MapTimezone.insert(make_pair(_X("CEST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 2; - _tcscpy(st_TimeZone.tszTimeCountry, _T("英国双重标准时间")); - stl_MapTimezone.insert(make_pair(_T("BDST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("英国双重标准时间")); + stl_MapTimezone.insert(make_pair(_X("BDST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 3; - _tcscpy(st_TimeZone.tszTimeCountry, _T("希腊地中海时间")); - stl_MapTimezone.insert(make_pair(_T("HMT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("希腊地中海时间")); + stl_MapTimezone.insert(make_pair(_X("HMT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 3; - _tcscpy(st_TimeZone.tszTimeCountry, _T("东欧夏时制")); - stl_MapTimezone.insert(make_pair(_T("EETDST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("东欧夏时制")); + stl_MapTimezone.insert(make_pair(_X("EETDST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 3; - _tcscpy(st_TimeZone.tszTimeCountry, _T("巴格达时间")); - stl_MapTimezone.insert(make_pair(_T("BT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("巴格达时间")); + stl_MapTimezone.insert(make_pair(_X("BT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 3; - _tcscpy(st_TimeZone.tszTimeCountry, _T("科摩罗时间")); - stl_MapTimezone.insert(make_pair(_T("EAT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("科摩罗时间")); + stl_MapTimezone.insert(make_pair(_X("EAT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 3; st_TimeZone.st_TimeZone.wMinute = 30; - _tcscpy(st_TimeZone.tszTimeCountry, _T("伊朗时间")); - stl_MapTimezone.insert(make_pair(_T("IRT"), st_TimeZone)); - stl_MapTimezone.insert(make_pair(_T("IT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("伊朗时间")); + stl_MapTimezone.insert(make_pair(_X("IRT"), st_TimeZone)); + stl_MapTimezone.insert(make_pair(_X("IT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 4; - _tcscpy(st_TimeZone.tszTimeCountry, _T("塞舌尔马埃岛时间")); - stl_MapTimezone.insert(make_pair(_T("SCT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("塞舌尔马埃岛时间")); + stl_MapTimezone.insert(make_pair(_X("SCT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 4; - _tcscpy(st_TimeZone.tszTimeCountry, _T("法属留尼汪岛时间")); - stl_MapTimezone.insert(make_pair(_T("RET"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("法属留尼汪岛时间")); + stl_MapTimezone.insert(make_pair(_X("RET"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 4; - _tcscpy(st_TimeZone.tszTimeCountry, _T("毛里求斯时间")); - stl_MapTimezone.insert(make_pair(_T("MUT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("毛里求斯时间")); + stl_MapTimezone.insert(make_pair(_X("MUT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 4; - _tcscpy(st_TimeZone.tszTimeCountry, _T("马达加斯加塔那那利佛时间")); - stl_MapTimezone.insert(make_pair(_T("EAST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("马达加斯加塔那那利佛时间")); + stl_MapTimezone.insert(make_pair(_X("EAST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 4; st_TimeZone.st_TimeZone.wMinute = 30; - _tcscpy(st_TimeZone.tszTimeCountry, _T("阿富汗时间")); - stl_MapTimezone.insert(make_pair(_T("AFT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("阿富汗时间")); + stl_MapTimezone.insert(make_pair(_X("AFT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 5; - _tcscpy(st_TimeZone.tszTimeCountry, _T("法属凯尔盖朗岛时间")); - stl_MapTimezone.insert(make_pair(_T("TFT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("法属凯尔盖朗岛时间")); + stl_MapTimezone.insert(make_pair(_X("TFT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 5; - _tcscpy(st_TimeZone.tszTimeCountry, _T("马尔代夫时间")); - stl_MapTimezone.insert(make_pair(_T("MVT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("马尔代夫时间")); + stl_MapTimezone.insert(make_pair(_X("MVT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 5; - _tcscpy(st_TimeZone.tszTimeCountry, _T("英属印度洋领地时间")); - stl_MapTimezone.insert(make_pair(_T("IOT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("英属印度洋领地时间")); + stl_MapTimezone.insert(make_pair(_X("IOT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 6; - _tcscpy(st_TimeZone.tszTimeCountry, _T("哈萨克斯坦阿拉木图")); - stl_MapTimezone.insert(make_pair(_T("ALMT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("哈萨克斯坦阿拉木图")); + stl_MapTimezone.insert(make_pair(_X("ALMT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 6; st_TimeZone.st_TimeZone.wMinute = 30; - _tcscpy(st_TimeZone.tszTimeCountry, _T("缅甸时间")); - stl_MapTimezone.insert(make_pair(_T("MMT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("缅甸时间")); + stl_MapTimezone.insert(make_pair(_X("MMT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 7; - _tcscpy(st_TimeZone.tszTimeCountry, _T("澳大利亚圣诞岛时间")); - stl_MapTimezone.insert(make_pair(_T("CXT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("澳大利亚圣诞岛时间")); + stl_MapTimezone.insert(make_pair(_X("CXT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 7; - _tcscpy(st_TimeZone.tszTimeCountry, _T("阿拉木图")); - stl_MapTimezone.insert(make_pair(_T("ALMST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("阿拉木图")); + stl_MapTimezone.insert(make_pair(_X("ALMST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 7; st_TimeZone.st_TimeZone.wMinute = 30; - _tcscpy(st_TimeZone.tszTimeCountry, _T("爪哇时间")); - stl_MapTimezone.insert(make_pair(_T("JT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("爪哇时间")); + stl_MapTimezone.insert(make_pair(_X("JT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 8; - _tcscpy(st_TimeZone.tszTimeCountry, _T("西澳大利亚标准时间")); - stl_MapTimezone.insert(make_pair(_T("WST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("西澳大利亚标准时间")); + stl_MapTimezone.insert(make_pair(_X("WST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 8; - _tcscpy(st_TimeZone.tszTimeCountry, _T("中国北京时间")); - stl_MapTimezone.insert(make_pair(_T("CCT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("中国北京时间")); + stl_MapTimezone.insert(make_pair(_X("CCT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 8; - _tcscpy(st_TimeZone.tszTimeCountry, _T("澳大利亚西部标准时间")); - stl_MapTimezone.insert(make_pair(_T("AWST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("澳大利亚西部标准时间")); + stl_MapTimezone.insert(make_pair(_X("AWST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 9; - _tcscpy(st_TimeZone.tszTimeCountry, _T("韩国朝鲜标准时间")); - stl_MapTimezone.insert(make_pair(_T("KST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("韩国朝鲜标准时间")); + stl_MapTimezone.insert(make_pair(_X("KST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 9; - _tcscpy(st_TimeZone.tszTimeCountry, _T("日本标准时间")); - stl_MapTimezone.insert(make_pair(_T("JST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("日本标准时间")); + stl_MapTimezone.insert(make_pair(_X("JST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 9; - _tcscpy(st_TimeZone.tszTimeCountry, _T("马绍尔群岛瓜加林岛时间")); - stl_MapTimezone.insert(make_pair(_T("MHT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("马绍尔群岛瓜加林岛时间")); + stl_MapTimezone.insert(make_pair(_X("MHT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 9; st_TimeZone.st_TimeZone.wMinute = 30; - _tcscpy(st_TimeZone.tszTimeCountry, _T("中澳大利亚标准时间")); - stl_MapTimezone.insert(make_pair(_T("CAST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("中澳大利亚标准时间")); + stl_MapTimezone.insert(make_pair(_X("CAST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 9; st_TimeZone.st_TimeZone.wMinute = 30; - _tcscpy(st_TimeZone.tszTimeCountry, _T("南澳大利亚标准时间")); - stl_MapTimezone.insert(make_pair(_T("SAST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("南澳大利亚标准时间")); + stl_MapTimezone.insert(make_pair(_X("SAST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 10; - _tcscpy(st_TimeZone.tszTimeCountry, _T("澳大利亚墨尔本")); - stl_MapTimezone.insert(make_pair(_T("LIGT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("澳大利亚墨尔本")); + stl_MapTimezone.insert(make_pair(_X("LIGT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 10; - _tcscpy(st_TimeZone.tszTimeCountry, _T("关岛标准时间")); - stl_MapTimezone.insert(make_pair(_T("GST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("关岛标准时间")); + stl_MapTimezone.insert(make_pair(_X("GST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 10; - _tcscpy(st_TimeZone.tszTimeCountry, _T("东澳大利亚标准时间")); - stl_MapTimezone.insert(make_pair(_T("EAST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("东澳大利亚标准时间")); + stl_MapTimezone.insert(make_pair(_X("EAST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 10; - _tcscpy(st_TimeZone.tszTimeCountry, _T("澳大利亚东部标准时间")); - stl_MapTimezone.insert(make_pair(_T("AEST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("澳大利亚东部标准时间")); + stl_MapTimezone.insert(make_pair(_X("AEST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 10; st_TimeZone.st_TimeZone.wMinute = 30; - _tcscpy(st_TimeZone.tszTimeCountry, _T("南澳大利亚夏时制")); - stl_MapTimezone.insert(make_pair(_T("SADT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("南澳大利亚夏时制")); + stl_MapTimezone.insert(make_pair(_X("SADT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 10; st_TimeZone.st_TimeZone.wMinute = 30; - _tcscpy(st_TimeZone.tszTimeCountry, _T("中澳大利亚夏时制")); - stl_MapTimezone.insert(make_pair(_T("CADT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("中澳大利亚夏时制")); + stl_MapTimezone.insert(make_pair(_X("CADT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 10; st_TimeZone.st_TimeZone.wMinute = 30; - _tcscpy(st_TimeZone.tszTimeCountry, _T("中澳大利亚标准夏时制")); - stl_MapTimezone.insert(make_pair(_T("ACSST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("中澳大利亚标准夏时制")); + stl_MapTimezone.insert(make_pair(_X("ACSST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 11; - _tcscpy(st_TimeZone.tszTimeCountry, _T("澳大利亚东部标准夏时制")); - stl_MapTimezone.insert(make_pair(_T("AESST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("澳大利亚东部标准夏时制")); + stl_MapTimezone.insert(make_pair(_X("AESST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 12; - _tcscpy(st_TimeZone.tszTimeCountry, _T("新西兰标准时间")); - stl_MapTimezone.insert(make_pair(_T("NZST"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("新西兰标准时间")); + stl_MapTimezone.insert(make_pair(_X("NZST"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 12; - _tcscpy(st_TimeZone.tszTimeCountry, _T("新西兰时间")); - stl_MapTimezone.insert(make_pair(_T("NZT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("新西兰时间")); + stl_MapTimezone.insert(make_pair(_X("NZT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 12; - _tcscpy(st_TimeZone.tszTimeCountry, _T("国际日期变更线,东边")); - stl_MapTimezone.insert(make_pair(_T("IDLW"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("国际日期变更线,东边")); + stl_MapTimezone.insert(make_pair(_X("IDLW"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 13; - _tcscpy(st_TimeZone.tszTimeCountry, _T("新西兰夏时制")); - stl_MapTimezone.insert(make_pair(_T("NZDT"), st_TimeZone)); + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("新西兰夏时制")); + stl_MapTimezone.insert(make_pair(_X("NZDT"), st_TimeZone)); memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); st_TimeZone.st_TimeZone.wHour = 14; - _tcscpy(st_TimeZone.tszTimeCountry, _T("基里巴斯线岛时间")); - stl_MapTimezone.insert(make_pair(_T("KLT"), st_TimeZone)); - return XTRUE; + _tcsxcpy(st_TimeZone.tszTimeCountry, _X("基里巴斯线岛时间")); + stl_MapTimezone.insert(make_pair(_X("KLT"), st_TimeZone)); + return TRUE; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -509,7 +509,7 @@ XBOOL CPlugin_Timezone::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_Timezone::PluginCore_UnInit() { - Timezone_IsErrorOccur = XFALSE; + Timezone_IsErrorOccur = FALSE; stl_MapTimezone.clear(); } @@ -523,13 +523,13 @@ void CPlugin_Timezone::PluginCore_UnInit() *********************************************************************/ XBOOL CPlugin_Timezone::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Timezone_IsErrorOccur = XFALSE; + Timezone_IsErrorOccur = FALSE; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Timezone_IsErrorOccur = XTRUE; + Timezone_IsErrorOccur = TRUE; Timezone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_TIMEZONE_PARAMENT; - return XFALSE; + return FALSE; } XCHAR tszKeyName[128]; XCHAR tszParamType[128]; @@ -542,18 +542,18 @@ XBOOL CPlugin_Timezone::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int memset(tszParamTime, '\0', sizeof(tszParamTime)); BaseLib_OperatorString_GetKeyValue((*pppHDRList)[1], "=", tszKeyName, tszParamType); - if (0 == _ttoi(tszParamType)) + if (0 == _ttxoi(tszParamType)) { //如果是统计 Plugin_Timezone_Count(ptszMsgBuffer, pInt_MsgLen); } - else if (1 == _ttoi(tszParamType)) + else if (1 == _ttxoi(tszParamType)) { //如果是列举 BaseLib_OperatorString_GetKeyValue((*pppHDRList)[2], "=", tszKeyName, tszParamCvt); Plugin_Timezone_List(tszParamCvt, ptszMsgBuffer, pInt_MsgLen); } - else if (2 == _ttoi(tszParamType)) + else if (2 == _ttxoi(tszParamType)) { //如果是转换 BaseLib_OperatorString_GetKeyValue((*pppHDRList)[2], "=", tszKeyName, tszParamCvt); @@ -561,19 +561,19 @@ XBOOL CPlugin_Timezone::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int if (!Plugin_Timezone_Convert(tszParamCvt, tszParamTime, ptszMsgBuffer, pInt_MsgLen)) { *pInt_HTTPCode = 404; - return XFALSE; + return FALSE; } } *pInt_HTTPCode = 200; - return XTRUE; + return TRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// XBOOL CPlugin_Timezone::Plugin_Timezone_Count(XCHAR* ptszMsgBufer, int* pInt_Len) { - Timezone_IsErrorOccur = XFALSE; + Timezone_IsErrorOccur = FALSE; Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -587,11 +587,11 @@ XBOOL CPlugin_Timezone::Plugin_Timezone_Count(XCHAR* ptszMsgBufer, int* pInt_Len *pInt_Len = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len); - return XTRUE; + return TRUE; } XBOOL CPlugin_Timezone::Plugin_Timezone_List(LPCXSTR lpszConvert, XCHAR* ptszMsgBufer, int* pInt_Len) { - Timezone_IsErrorOccur = XFALSE; + Timezone_IsErrorOccur = FALSE; int nPosStart = 0; int nPosEnd = 0; @@ -599,7 +599,7 @@ XBOOL CPlugin_Timezone::Plugin_Timezone_List(LPCXSTR lpszConvert, XCHAR* ptszMsg Json::Value st_JsonObject; Json::StreamWriterBuilder st_JsonBuilder; - _stscanf(lpszConvert, _T("%d-%d"), &nPosStart, &nPosEnd); + _stxscanf(lpszConvert, _X("%d-%d"), &nPosStart, &nPosEnd); unordered_map::const_iterator stl_MapIterator = stl_MapTimezone.cbegin(); for (int i = 0; stl_MapIterator != stl_MapTimezone.cend(); stl_MapIterator++, i++) @@ -622,11 +622,11 @@ XBOOL CPlugin_Timezone::Plugin_Timezone_List(LPCXSTR lpszConvert, XCHAR* ptszMsg *pInt_Len = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len); - return XTRUE; + return TRUE; } XBOOL CPlugin_Timezone::Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lpszTimeStr, XCHAR* ptszMsgBufer, int* pInt_Len) { - Timezone_IsErrorOccur = XFALSE; + Timezone_IsErrorOccur = FALSE; Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -635,7 +635,7 @@ XBOOL CPlugin_Timezone::Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lps unordered_map::const_iterator stl_MapIterator = stl_MapTimezone.find(lpszConvert); if (stl_MapIterator == stl_MapTimezone.end()) { - return XFALSE; + return FALSE; } XCHAR tszTimeStr[64]; XENGINE_LIBTIMER st_TimeStart; @@ -647,9 +647,9 @@ XBOOL CPlugin_Timezone::Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lps st_TimeEnd = stl_MapIterator->second.st_TimeZone; - _stscanf(lpszTimeStr, _T("%04d-%02d-%02d_%02d:%02d:%02d"), &st_TimeStart.wYear, &st_TimeStart.wMonth, &st_TimeStart.wDay, &st_TimeStart.wHour, &st_TimeStart.wMinute, &st_TimeStart.wSecond); + _stxscanf(lpszTimeStr, _X("%04d-%02d-%02d_%02d:%02d:%02d"), &st_TimeStart.wYear, &st_TimeStart.wMonth, &st_TimeStart.wDay, &st_TimeStart.wHour, &st_TimeStart.wMinute, &st_TimeStart.wSecond); BaseLib_OperatorTimeSpan_CalForStu(&st_TimeStart, &st_TimeEnd); - _stprintf(tszTimeStr, _T("%04d-%02d-%02d %02d:%02d:%02d"), st_TimeEnd.wYear, st_TimeEnd.wMonth, st_TimeEnd.wDay, st_TimeEnd.wHour, st_TimeEnd.wMinute, st_TimeEnd.wSecond); + _xstprintf(tszTimeStr, _X("%04d-%02d-%02d %02d:%02d:%02d"), st_TimeEnd.wYear, st_TimeEnd.wMonth, st_TimeEnd.wDay, st_TimeEnd.wHour, st_TimeEnd.wMinute, st_TimeEnd.wSecond); st_JsonObject["tszTimeStr"] = tszTimeStr; st_JsonObject["tszTimeZone"] = stl_MapIterator->first.c_str(); @@ -661,5 +661,5 @@ XBOOL CPlugin_Timezone::Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lps *pInt_Len = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp index 52bff00..15b0e80 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return XTRUE; + return TRUE; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp index 75f01bc..5140f0d 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Timezone_IsErrorOccur = XFALSE; +XBOOL Timezone_IsErrorOccur = FALSE; XLONG Timezone_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Timezone m_PluginTimes; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/ModulePlugin_Zodiac.vcxproj b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/ModulePlugin_Zodiac.vcxproj index 8d82c5a..e5bd63c 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/ModulePlugin_Zodiac.vcxproj +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/ModulePlugin_Zodiac.vcxproj @@ -31,27 +31,27 @@ DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode DynamicLibrary true v143 - MultiByte + Unicode DynamicLibrary false v143 true - MultiByte + Unicode diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp index 7d396a3..57f8aad 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp @@ -13,18 +13,18 @@ *********************************************************************/ CPlugin_Zodiac::CPlugin_Zodiac() { - m_StrChinese[0] = _T("猴"); - m_StrChinese[1] = _T("鸡"); - m_StrChinese[2] = _T("狗"); - m_StrChinese[3] = _T("猪"); - m_StrChinese[4] = _T("鼠"); - m_StrChinese[5] = _T("牛"); - m_StrChinese[6] = _T("虎"); - m_StrChinese[7] = _T("兔"); - m_StrChinese[8] = _T("龙"); - m_StrChinese[9] = _T("蛇"); - m_StrChinese[10] = _T("马"); - m_StrChinese[11] = _T("羊"); + m_StrChinese[0] = _X("猴"); + m_StrChinese[1] = _X("鸡"); + m_StrChinese[2] = _X("狗"); + m_StrChinese[3] = _X("猪"); + m_StrChinese[4] = _X("鼠"); + m_StrChinese[5] = _X("牛"); + m_StrChinese[6] = _X("虎"); + m_StrChinese[7] = _X("兔"); + m_StrChinese[8] = _X("龙"); + m_StrChinese[9] = _X("蛇"); + m_StrChinese[10] = _X("马"); + m_StrChinese[11] = _X("羊"); } CPlugin_Zodiac::~CPlugin_Zodiac() { @@ -47,9 +47,9 @@ CPlugin_Zodiac::~CPlugin_Zodiac() *********************************************************************/ XBOOL CPlugin_Zodiac::PluginCore_Init(XPVOID lParam) { - Zodiac_IsErrorOccur = XFALSE; + Zodiac_IsErrorOccur = FALSE; - return XTRUE; + return TRUE; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -61,7 +61,7 @@ XBOOL CPlugin_Zodiac::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_Zodiac::PluginCore_UnInit() { - Zodiac_IsErrorOccur = XFALSE; + Zodiac_IsErrorOccur = FALSE; } /******************************************************************** 函数名称:PluginCore_Call @@ -73,13 +73,13 @@ void CPlugin_Zodiac::PluginCore_UnInit() *********************************************************************/ XBOOL CPlugin_Zodiac::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Zodiac_IsErrorOccur = XFALSE; + Zodiac_IsErrorOccur = FALSE; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Zodiac_IsErrorOccur = XTRUE; + Zodiac_IsErrorOccur = TRUE; Zodiac_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_ZODIAC_PARAMENT; - return XFALSE; + return FALSE; } XCHAR tszKeyName[128]; XCHAR tszValueName[128]; @@ -109,25 +109,25 @@ XBOOL CPlugin_Zodiac::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return XTRUE; + return TRUE; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// XBOOL CPlugin_Zodiac::Plugin_Zodiac_Chinese(LPCXSTR lpszDate, XCHAR* ptszCZodiac) { - Zodiac_IsErrorOccur = XFALSE; + Zodiac_IsErrorOccur = FALSE; - int nDate = _ttoi(lpszDate); + int nDate = _ttxoi(lpszDate); int nYear = nDate / 10000; nYear = nYear % 12; - _tcscpy(ptszCZodiac, m_StrChinese[nYear].c_str()); - return XTRUE; + _tcsxcpy(ptszCZodiac, m_StrChinese[nYear].c_str()); + return TRUE; } XBOOL CPlugin_Zodiac::Plugin_Zodiac_English(LPCXSTR lpszDate, XCHAR* ptszEZodiac) { - Zodiac_IsErrorOccur = XFALSE; + Zodiac_IsErrorOccur = FALSE; int nMonth = 0; int nDay = 0; @@ -154,6 +154,6 @@ XBOOL CPlugin_Zodiac::Plugin_Zodiac_English(LPCXSTR lpszDate, XCHAR* ptszEZodiac /*第一维输出月份,第二维由生日的日期/每个月对应的分割日期(constell_dates), 为0就表示一个月中的前一个星座,否则为后一个星座, 比如生日为5月6号,则对应输出 constells[4][0] 对应金牛座*/ - _tcscpy(ptszEZodiac, m_StrEnglish[nMonth - 1][nDay / nConstell[nMonth]].c_str()); - return XTRUE; + _tcsxcpy(ptszEZodiac, m_StrEnglish[nMonth - 1][nDay / nConstell[nMonth]].c_str()); + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp index 52bff00..15b0e80 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return XTRUE; + return TRUE; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp index 9fda7da..9b778e7 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Zodiac_IsErrorOccur = XFALSE; +XBOOL Zodiac_IsErrorOccur = FALSE; XLONG Zodiac_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Zodiac m_PluginZodiac; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp index e7c25d4..e1e23ae 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp @@ -12,35 +12,35 @@ *********************************************************************/ XBOOL XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* pSt_Configure) { - LPCXSTR lpszConfigFile = _T("./XEngine_Config/XEngine_Config.json"); + LPCXSTR lpszConfigFile = _X("./XEngine_Config/XEngine_Config.json"); if (!ModuleConfigure_Json_File(lpszConfigFile, pSt_Configure)) { printf("解析配置文件失败,ModuleConfigure_Json_File:%lX\n", ModuleConfigure_GetLastError()); - return XFALSE; + return FALSE; } for (int i = 0; i < argc; i++) { - if ((0 == _tcscmp("-h", argv[i])) || (0 == _tcscmp("-H", argv[i]))) + if ((0 == _tcsxcmp("-h", argv[i])) || (0 == _tcsxcmp("-H", argv[i]))) { XEngine_Configure_Help(); - return XFALSE; + return FALSE; } - else if (0 == _tcscmp("-d", argv[i])) + else if (0 == _tcsxcmp("-d", argv[i])) { - pSt_Configure->bDeamon = _ttoi(argv[i + 1]); + pSt_Configure->bDeamon = _ttxoi(argv[i + 1]); } } - return XTRUE; + return TRUE; } void XEngine_Configure_Help() { - printf(_T("--------------------------启动参数帮助开始--------------------------\n")); - printf(_T("网络消息队列服务启动参数:程序 参数 参数值,参数是区分大小写的。如果不指定将会加载默认的ini配置文件里面的参数\n")); - printf(_T("-h or -H:启动参数帮助提示信息\n")); - printf(_T("-d:1 启用守护进程,2不启用\n")); - printf(_T("--------------------------启动参数帮助结束--------------------------\n")); + printf(_X("--------------------------启动参数帮助开始--------------------------\n")); + printf(_X("网络消息队列服务启动参数:程序 参数 参数值,参数是区分大小写的。如果不指定将会加载默认的ini配置文件里面的参数\n")); + printf(_X("-h or -H:启动参数帮助提示信息\n")); + printf(_X("-d:1 启用守护进程,2不启用\n")); + printf(_X("--------------------------启动参数帮助结束--------------------------\n")); } diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp index e7647dc..4af235c 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp @@ -58,8 +58,8 @@ XHTHREAD CALLBACK HTTPTask_TastPost_Thread(XPVOID lParam) XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR*** ppptszHDRList, int nHDRCount) { int nMsgLen = 4096; - LPCXSTR lpszMethodPost = _T("POST"); - LPCXSTR lpszMethodGet = _T("GET"); + LPCXSTR lpszMethodPost = _X("POST"); + LPCXSTR lpszMethodGet = _X("GET"); XCHAR tszMsgBuffer[4096]; RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 @@ -67,7 +67,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 XCHAR** pptszList; XCHAR tszUrlName[128]; @@ -81,223 +81,223 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS //是不是代理转发 if (HTTPTask_TaskPost_SLProxy(lpszClientAddr, pSt_HTTPParam->tszHttpUri, ppptszHDRList, nHDRCount)) { - return XTRUE; + return TRUE; } st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; } XCHAR tszKey[MAX_PATH]; XCHAR tszValue[MAX_PATH]; - LPCXSTR lpszFuncName = _T("api"); - LPCXSTR lpszParamFuncKey = _T("function"); - LPCXSTR lpszParamName = _T("params1"); + LPCXSTR lpszFuncName = _X("api"); + LPCXSTR lpszParamFuncKey = _X("function"); + LPCXSTR lpszParamName = _X("params1"); //get - LPCXSTR lpszParamIDCard = _T("id"); - LPCXSTR lpszParamBank = _T("bank"); - LPCXSTR lpszParamLanguage = _T("language"); - LPCXSTR lpszParamTranslation = _T("translation"); - LPCXSTR lpszParamLocker = _T("lock"); + LPCXSTR lpszParamIDCard = _X("id"); + LPCXSTR lpszParamBank = _X("bank"); + LPCXSTR lpszParamLanguage = _X("language"); + LPCXSTR lpszParamTranslation = _X("translation"); + LPCXSTR lpszParamLocker = _X("lock"); //post - LPCXSTR lpszParamP2PClient = _T("p2p"); - LPCXSTR lpszParamZIPCode = _T("zipcode"); - LPCXSTR lpszParamXLog = _T("log"); - LPCXSTR lpszParamQRCode = _T("qrcode"); - LPCXSTR lpszParamSocket = _T("socket"); - LPCXSTR lpszParamDTest = _T("dtest"); - LPCXSTR lpszParamShortLink = _T("slink"); + LPCXSTR lpszParamP2PClient = _X("p2p"); + LPCXSTR lpszParamZIPCode = _X("zipcode"); + LPCXSTR lpszParamXLog = _X("log"); + LPCXSTR lpszParamQRCode = _X("qrcode"); + LPCXSTR lpszParamSocket = _X("socket"); + LPCXSTR lpszParamDTest = _X("dtest"); + LPCXSTR lpszParamShortLink = _X("slink"); memset(tszKey, '\0', MAX_PATH); memset(tszValue, '\0', MAX_PATH); - if (0 != _tcsnicmp(lpszFuncName, tszUrlName, _tcslen(lpszFuncName))) + if (0 != _tcsxnicmp(lpszFuncName, tszUrlName, _tcsxlen(lpszFuncName))) { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; } //获得函数名 BaseLib_OperatorString_GetKeyValue(pptszList[0], "=", tszKey, tszValue); - if (0 != _tcsnicmp(lpszParamFuncKey, tszKey, _tcslen(lpszParamFuncKey))) + if (0 != _tcsxnicmp(lpszParamFuncKey, tszKey, _tcsxlen(lpszParamFuncKey))) { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; } //首先处理插件 int nPluginType = 0; if (ModulePlugin_Loader_Find(tszValue, &nPluginType)) { XEngine_PluginTask_Handle(tszValue, lpszClientAddr, lpszRVBuffer, nRVLen, &pptszList, nListCount, nPluginType); - return XTRUE; + return TRUE; } - if (0 == _tcsnicmp(lpszMethodPost, pSt_HTTPParam->tszHttpMethod, _tcslen(lpszMethodPost))) + if (0 == _tcsxnicmp(lpszMethodPost, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodPost))) { - if (0 == _tcsnicmp(lpszParamP2PClient, tszValue, _tcslen(lpszParamP2PClient))) + if (0 == _tcsxnicmp(lpszParamP2PClient, tszValue, _tcsxlen(lpszParamP2PClient))) { //是不是P2P memset(tszKey, '\0', sizeof(tszKey)); memset(tszValue, '\0', sizeof(tszValue)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); - if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) + if (0 != _tcsxnicmp(lpszParamName, tszKey, _tcsxlen(lpszParamName))) { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; } - HTTPTask_TastPost_P2PClient(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); + HTTPTask_TastPost_P2PClient(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue)); } - else if (0 == _tcsnicmp(lpszParamZIPCode, tszValue, _tcslen(lpszParamZIPCode))) + else if (0 == _tcsxnicmp(lpszParamZIPCode, tszValue, _tcsxlen(lpszParamZIPCode))) { //邮政信息:http://app.xyry.org:5501/api?function=zipcode¶ms1=0 memset(tszKey, '\0', sizeof(tszKey)); memset(tszValue, '\0', sizeof(tszValue)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); - if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) + if (0 != _tcsxnicmp(lpszParamName, tszKey, _tcsxlen(lpszParamName))) { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; } - HTTPTask_TastPost_PostCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); + HTTPTask_TastPost_PostCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue)); } - else if (0 == _tcsnicmp(lpszParamXLog, tszValue, _tcslen(lpszParamXLog))) + else if (0 == _tcsxnicmp(lpszParamXLog, tszValue, _tcsxlen(lpszParamXLog))) { //日志信息:http://app.xyry.org:5501/api?function=log¶ms1=0 memset(tszKey, '\0', sizeof(tszKey)); memset(tszValue, '\0', sizeof(tszValue)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); - if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) + if (0 != _tcsxnicmp(lpszParamName, tszKey, _tcsxlen(lpszParamName))) { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; } - HTTPTask_TastPost_LogInfo(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); + HTTPTask_TastPost_LogInfo(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue)); } - else if (0 == _tcsnicmp(lpszParamQRCode, tszValue, _tcslen(lpszParamQRCode))) + else if (0 == _tcsxnicmp(lpszParamQRCode, tszValue, _tcsxlen(lpszParamQRCode))) { //二维码生成:http://app.xyry.org:5501/api?function=qrcode¶ms1=0 或者 1 memset(tszKey, '\0', sizeof(tszKey)); memset(tszValue, '\0', sizeof(tszValue)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); - if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) + if (0 != _tcsxnicmp(lpszParamName, tszKey, _tcsxlen(lpszParamName))) { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; } - HTTPTask_TaskPost_QRCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); + HTTPTask_TaskPost_QRCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue)); } - else if (0 == _tcsnicmp(lpszParamSocket, tszValue, _tcslen(lpszParamSocket))) + else if (0 == _tcsxnicmp(lpszParamSocket, tszValue, _tcsxlen(lpszParamSocket))) { //网络测试:http://app.xyry.org:5501/api?function=socket¶ms1=0 或者 1 memset(tszKey, '\0', sizeof(tszKey)); memset(tszValue, '\0', sizeof(tszValue)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); - if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) + if (0 != _tcsxnicmp(lpszParamName, tszKey, _tcsxlen(lpszParamName))) { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; } - HTTPTask_TastPost_SocketTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); + HTTPTask_TastPost_SocketTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue)); } - else if (0 == _tcsnicmp(lpszParamDTest, tszValue, _tcslen(lpszParamDTest))) + else if (0 == _tcsxnicmp(lpszParamDTest, tszValue, _tcsxlen(lpszParamDTest))) { //数据测试:http://app.xyry.org:5501/api?function=dtest¶ms1=0 或者 1 memset(tszKey, '\0', sizeof(tszKey)); memset(tszValue, '\0', sizeof(tszValue)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); - if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) + if (0 != _tcsxnicmp(lpszParamName, tszKey, _tcsxlen(lpszParamName))) { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; } - HTTPTask_TastPost_DTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); + HTTPTask_TastPost_DTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue)); } - else if (0 == _tcsnicmp(lpszParamShortLink, tszValue, _tcslen(lpszParamShortLink))) + else if (0 == _tcsxnicmp(lpszParamShortLink, tszValue, _tcsxlen(lpszParamShortLink))) { //短连接:http://app.xyry.org:5501/api?function=slink¶ms1=0 XCHAR tszType[64]; memset(tszType, '\0', sizeof(tszType)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszType); - HTTPTask_TaskPost_ShortLink(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszType)); + HTTPTask_TaskPost_ShortLink(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszType)); } else { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的请求不支持:%s,内容:\r\n%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri, lpszRVBuffer); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的请求不支持:%s,内容:\r\n%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri, lpszRVBuffer); } } - else if (0 == _tcsnicmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcslen(lpszMethodGet))) + else if (0 == _tcsxnicmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodGet))) { - if (0 == _tcsnicmp(lpszParamIDCard, tszValue, _tcslen(lpszParamIDCard))) + if (0 == _tcsxnicmp(lpszParamIDCard, tszValue, _tcsxlen(lpszParamIDCard))) { //是不是身份证查询 memset(tszKey, '\0', sizeof(tszKey)); memset(tszValue, '\0', sizeof(tszValue)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); - if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) + if (0 != _tcsxnicmp(lpszParamName, tszKey, _tcsxlen(lpszParamName))) { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; } HTTPTask_TaskGet_IDCard(lpszClientAddr, tszValue); } - else if (0 == _tcsnicmp(lpszParamBank, tszValue, _tcslen(lpszParamBank))) + else if (0 == _tcsxnicmp(lpszParamBank, tszValue, _tcsxlen(lpszParamBank))) { //是不是银行卡信息 memset(tszKey, '\0', sizeof(tszKey)); memset(tszValue, '\0', sizeof(tszValue)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); - if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) + if (0 != _tcsxnicmp(lpszParamName, tszKey, _tcsxlen(lpszParamName))) { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; } HTTPTask_TaskGet_BankInfo(lpszClientAddr, tszValue); } - else if (0 == _tcsnicmp(lpszParamLanguage, tszValue, _tcslen(lpszParamLanguage))) + else if (0 == _tcsxnicmp(lpszParamLanguage, tszValue, _tcsxlen(lpszParamLanguage))) { //是不是语言转换 XCHAR tszCvtType[64]; @@ -307,21 +307,21 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS memset(tszValue, '\0', sizeof(tszValue)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); - if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) + if (0 != _tcsxnicmp(lpszParamName, tszKey, _tcsxlen(lpszParamName))) { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; } memset(tszKey, '\0', sizeof(tszKey)); BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszCvtType); - HTTPTask_TaskGet_Language(lpszClientAddr, tszValue, _ttoi(tszCvtType)); + HTTPTask_TaskGet_Language(lpszClientAddr, tszValue, _ttxoi(tszCvtType)); } - else if (0 == _tcsnicmp(lpszParamTranslation, tszValue, _tcslen(lpszParamTranslation))) + else if (0 == _tcsxnicmp(lpszParamTranslation, tszValue, _tcsxlen(lpszParamTranslation))) { //是不是翻译 XCHAR tszCvtType[64]; @@ -331,21 +331,21 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS memset(tszValue, '\0', sizeof(tszValue)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); - if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) + if (0 != _tcsxnicmp(lpszParamName, tszKey, _tcsxlen(lpszParamName))) { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; } memset(tszKey, '\0', sizeof(tszKey)); BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszCvtType); - HTTPTask_TaskGet_Translation(lpszClientAddr, tszValue, _ttoi(tszCvtType)); + HTTPTask_TaskGet_Translation(lpszClientAddr, tszValue, _ttxoi(tszCvtType)); } - else if (0 == _tcsnicmp(lpszParamLocker, tszValue, _tcslen(lpszParamLocker))) + else if (0 == _tcsxnicmp(lpszParamLocker, tszValue, _tcsxlen(lpszParamLocker))) { //是不是分布式锁 XCHAR tszLockToken[128]; @@ -357,20 +357,20 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszLockToken); BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszLockType); - HTTPTask_TaskGet_Locker(lpszClientAddr, _ttoi64(tszLockToken), (ENUM_XENGINE_APISERVICE_LOCKER_TYPE)_ttoi(tszLockType)); + HTTPTask_TaskGet_Locker(lpszClientAddr, _ttxoll(tszLockToken), (ENUM_XENGINE_APISERVICE_LOCKER_TYPE)_ttxoi(tszLockType)); } else { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送的请求不支持:%s,内容:\r\n%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri, lpszRVBuffer); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的请求不支持:%s,内容:\r\n%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri, lpszRVBuffer); } } else { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("HTTP客户端:%s,协议错误"), lpszClientAddr); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:%s,协议错误"), lpszClientAddr); } BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp index 473c59e..a93d2f8 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp @@ -10,7 +10,7 @@ // Purpose: 主要入口函数 // History: *********************************************************************/ -XBOOL bIsRun = XFALSE; +XBOOL bIsRun = FALSE; XHANDLE xhLog = NULL; //HTTP服务器 XHANDLE xhHTTPSocket = NULL; @@ -28,8 +28,8 @@ void ServiceApp_Stop(int signo) { if (bIsRun) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("服务器退出...")); - bIsRun = XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("服务器退出...")); + bIsRun = FALSE; //销毁HTTP资源 NetCore_TCPXCore_DestroyEx(xhHTTPSocket); SocketOpt_HeartBeat_DestoryEx(xhHTTPHeart); @@ -90,10 +90,10 @@ int main(int argc, char** argv) WSADATA st_WSAData; WSAStartup(MAKEWORD(2, 2), &st_WSAData); #endif - bIsRun = XTRUE; - LPCXSTR lpszHTTPMime = _T("./XEngine_Config/HttpMime.types"); - LPCXSTR lpszHTTPCode = _T("./XEngine_Config/HttpCode.types"); - LPCXSTR lpszLogFile = _T("./XEngine_Log/XEngine_HttpApp.Log"); + bIsRun = TRUE; + LPCXSTR lpszHTTPMime = _X("./XEngine_Config/HttpMime.types"); + LPCXSTR lpszHTTPCode = _X("./XEngine_Config/HttpCode.types"); + LPCXSTR lpszLogFile = _X("./XEngine_Log/XEngine_HttpApp.Log"); HELPCOMPONENTS_XLOG_CONFIGURE st_XLogConfig; THREADPOOL_PARAMENT** ppSt_ListHTTPParam; @@ -106,7 +106,7 @@ int main(int argc, char** argv) st_XLogConfig.XLog_MaxBackupFile = 10; st_XLogConfig.XLog_MaxSize = 1024000; - _tcscpy(st_XLogConfig.tszFileName, lpszLogFile); + _tcsxcpy(st_XLogConfig.tszFileName, lpszLogFile); //初始化参数 if (!XEngine_Configure_Parament(argc, argv, &st_ServiceConfig)) { @@ -126,77 +126,77 @@ int main(int argc, char** argv) } //设置日志打印级别 HelpComponents_XLog_SetLogPriority(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化日志系统成功")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化日志系统成功")); signal(SIGINT, ServiceApp_Stop); signal(SIGTERM, ServiceApp_Stop); signal(SIGABRT, ServiceApp_Stop); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化信号量成功")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化信号量成功")); //初始化OPENCC配置 if (!ModuleConfigure_Json_OPenccFile(st_ServiceConfig.st_XConfig.tszConfigOPencc, &st_OPenccConfig)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化OPenCC配置文件失败,错误:%lX"), ModuleConfigure_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化OPenCC配置文件失败,错误:%lX"), ModuleConfigure_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化OPenCC配置文件:%s 成功"), st_ServiceConfig.st_XConfig.tszConfigOPencc); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化OPenCC配置文件:%s 成功"), st_ServiceConfig.st_XConfig.tszConfigOPencc); if (!ModuleConfigure_Json_QRCodeFile(st_ServiceConfig.st_XConfig.tszConfigQRCode, &st_QRCodeConfig)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化二维码配置文件失败,错误:%lX"), ModuleConfigure_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化二维码配置文件失败,错误:%lX"), ModuleConfigure_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化二维码配置文件:%s 成功"), st_ServiceConfig.st_XConfig.tszConfigQRCode); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化二维码配置文件:%s 成功"), st_ServiceConfig.st_XConfig.tszConfigQRCode); //初始化插件配置 if (st_ServiceConfig.st_XPlugin.bEnable) { if (!ModuleConfigure_Json_PluginFile(st_ServiceConfig.st_XPlugin.tszPluginLib, &st_PluginLibConfig)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化Lib插件配置文件失败,错误:%lX"), ModuleConfigure_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化Lib插件配置文件失败,错误:%lX"), ModuleConfigure_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化Lib插件配置文件成功")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化Lib插件配置文件成功")); if (!ModuleConfigure_Json_PluginFile(st_ServiceConfig.st_XPlugin.tszPluginLua, &st_PluginLuaConfig)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化Lua插件配置文件失败,错误:%lX"), ModuleConfigure_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化Lua插件配置文件失败,错误:%lX"), ModuleConfigure_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化Lua插件配置文件成功")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化Lua插件配置文件成功")); } else { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("启动服务中,插件系统被禁用")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,插件系统被禁用")); } //初始化数据库 if (!ModuleDatabase_IDCard_Init((DATABASE_MYSQL_CONNECTINFO*)&st_ServiceConfig.st_XSql)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化ID数据库失败,错误:%lX"), ModuleDB_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化ID数据库失败,错误:%lX"), ModuleDB_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化ID数据库成功")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化ID数据库成功")); if (!ModuleDatabase_Bank_Init((DATABASE_MYSQL_CONNECTINFO*)&st_ServiceConfig.st_XSql)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化银行卡数据库失败,错误:%lX"), ModuleDB_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化银行卡数据库失败,错误:%lX"), ModuleDB_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化银行卡数据库成功")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化银行卡数据库成功")); if (!ModuleDatabase_ZIPCode_Init((DATABASE_MYSQL_CONNECTINFO*)&st_ServiceConfig.st_XSql)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化行政邮编信息数据库失败,错误:%lX"), ModuleDB_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化行政邮编信息数据库失败,错误:%lX"), ModuleDB_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化行政邮编信息数据库成功")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化行政邮编信息数据库成功")); if (!ModuleDatabase_XLog_Init((DATABASE_MYSQL_CONNECTINFO*)&st_ServiceConfig.st_XSql)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化日志信息数据库失败,错误:%lX"), ModuleDB_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化日志信息数据库失败,错误:%lX"), ModuleDB_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化日志信息数据库成功")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化日志信息数据库成功")); if (!ModuleDatabase_ShortLink_Init((DATABASE_MYSQL_CONNECTINFO*)&st_ServiceConfig.st_XSql)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化短连接数据库失败,错误:%lX"), ModuleDB_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化短连接数据库失败,错误:%lX"), ModuleDB_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化短连接数据库成功")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化短连接数据库成功")); //启动HTTP服务相关代码 if (st_ServiceConfig.nHttpPort > 0) { @@ -204,35 +204,35 @@ int main(int argc, char** argv) xhHTTPPacket = HttpProtocol_Server_InitEx(lpszHTTPCode, lpszHTTPMime, st_ServiceConfig.st_XMax.nHTTPThread); if (NULL == xhHTTPPacket) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化HTTP组包失败,错误:%lX"), HttpProtocol_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化HTTP组包失败,错误:%lX"), HttpProtocol_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化HTTP组包成功,IO线程个数:%d"), st_ServiceConfig.st_XMax.nHTTPThread); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化HTTP组包成功,IO线程个数:%d"), st_ServiceConfig.st_XMax.nHTTPThread); //启动心跳 if (st_ServiceConfig.st_XTime.nHTTPTimeOut > 0) { xhHTTPHeart = SocketOpt_HeartBeat_InitEx(st_ServiceConfig.st_XTime.nHTTPTimeOut, st_ServiceConfig.st_XTime.nTimeCheck, Network_Callback_HTTPHeart); if (NULL == xhHTTPHeart) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化HTTP心跳服务失败,错误:%lX"), NetCore_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化HTTP心跳服务失败,错误:%lX"), NetCore_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化HTTP心跳服务成功,时间:%d,次数:%d"), st_ServiceConfig.st_XTime.nHTTPTimeOut, st_ServiceConfig.st_XTime.nTimeCheck); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化HTTP心跳服务成功,时间:%d,次数:%d"), st_ServiceConfig.st_XTime.nHTTPTimeOut, st_ServiceConfig.st_XTime.nTimeCheck); } else { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("启动服务中,HTTP心跳服务被设置为不启用")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,HTTP心跳服务被设置为不启用")); } //网络 xhHTTPSocket = NetCore_TCPXCore_StartEx(st_ServiceConfig.nHttpPort, st_ServiceConfig.st_XMax.nMaxClient, st_ServiceConfig.st_XMax.nIOThread); if (NULL == xhHTTPSocket) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,启动HTTP网络服务器失败,错误:%lX"), NetCore_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,启动HTTP网络服务器失败,错误:%lX"), NetCore_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,启动HTTP网络服务器成功,HTTP端口:%d,IO:%d"), st_ServiceConfig.nHttpPort, st_ServiceConfig.st_XMax.nIOThread); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,启动HTTP网络服务器成功,HTTP端口:%d,IO:%d"), st_ServiceConfig.nHttpPort, st_ServiceConfig.st_XMax.nIOThread); NetCore_TCPXCore_RegisterCallBackEx(xhHTTPSocket, Network_Callback_HTTPLogin, Network_Callback_HTTPRecv, Network_Callback_HTTPLeave); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,注册HTTP网络事件成功")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,注册HTTP网络事件成功")); //HTTP任务池 BaseLib_OperatorMemory_Malloc((XPPPMEM)&ppSt_ListHTTPParam, st_ServiceConfig.st_XMax.nHTTPThread, sizeof(THREADPOOL_PARAMENT)); for (int i = 0; i < st_ServiceConfig.st_XMax.nHTTPThread; i++) @@ -246,31 +246,31 @@ int main(int argc, char** argv) xhHTTPPool = ManagePool_Thread_NQCreate(&ppSt_ListHTTPParam, st_ServiceConfig.st_XMax.nHTTPThread); if (NULL == xhHTTPPool) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,启动HTTP线程池服务失败,错误:%lX"), ManagePool_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,启动HTTP线程池服务失败,错误:%lX"), ManagePool_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,启动HTTP线程池服务成功,启动个数:%d"), st_ServiceConfig.st_XMax.nHTTPThread); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,启动HTTP线程池服务成功,启动个数:%d"), st_ServiceConfig.st_XMax.nHTTPThread); } else { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("启动服务中,HTTP消息服务没有被启用")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,HTTP消息服务没有被启用")); } //初始化P2P if (!ModuleHelp_P2PClient_Init(st_ServiceConfig.st_XTime.nP2PTimeOut, HTTPTask_TastPost_P2PCallback)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,启动P2P客户端管理器失败,错误:%lX"), ModuleHelp_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,启动P2P客户端管理器失败,错误:%lX"), ModuleHelp_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,启动P2P客户端管理器成功,超时时间设置:%d 秒"), st_ServiceConfig.st_XTime.nP2PTimeOut); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,启动P2P客户端管理器成功,超时时间设置:%d 秒"), st_ServiceConfig.st_XTime.nP2PTimeOut); //启动插件 if (!ModulePlugin_LibCore_Init()) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化Lib插件系统失败,错误:%lX"), ModulePlugin_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化Lib插件系统失败,错误:%lX"), ModulePlugin_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } //加载插件 - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化Lib插件系统成功,开始加载插件")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化Lib插件系统成功,开始加载插件")); { list::const_iterator stl_ListIterator = st_PluginLibConfig.pStl_ListPlugin->begin(); for (int i = 1; stl_ListIterator != st_PluginLibConfig.pStl_ListPlugin->end(); stl_ListIterator++, i++) @@ -279,25 +279,25 @@ int main(int argc, char** argv) { if (ModulePlugin_Loader_Insert(stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile, 0)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,加载Lib模块插件中,当前第:%d 个加载成功,方法:%s,路径:%s"), i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,加载Lib模块插件中,当前第:%d 个加载成功,方法:%s,路径:%s"), i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile); } else { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,加载Lib模块插件中,当前第:%d 个加载失败,方法:%s,路径:%s,错误:%lX"), i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile, ModulePlugin_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,加载Lib模块插件中,当前第:%d 个加载失败,方法:%s,路径:%s,错误:%lX"), i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile, ModulePlugin_GetLastError()); } } else { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("启动服务中,加载Lib模块插件中,当前第:%d 个加载失败,因为没有启用,方法:%s,路径:%s"), i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,加载Lib模块插件中,当前第:%d 个加载失败,因为没有启用,方法:%s,路径:%s"), i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile); } } } if (!ModulePlugin_LuaCore_Init()) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化Lua插件系统失败,错误:%lX"), ModulePlugin_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化Lua插件系统失败,错误:%lX"), ModulePlugin_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化Lua插件系统成功,开始加载插件")); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化Lua插件系统成功,开始加载插件")); { list::const_iterator stl_ListIterator = st_PluginLuaConfig.pStl_ListPlugin->begin(); for (int i = 1; stl_ListIterator != st_PluginLuaConfig.pStl_ListPlugin->end(); stl_ListIterator++, i++) @@ -306,24 +306,24 @@ int main(int argc, char** argv) { if (ModulePlugin_Loader_Insert(stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile, 1)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,加载Lua模块插件中,当前第:%d 个加载成功,方法:%s,路径:%s"), i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,加载Lua模块插件中,当前第:%d 个加载成功,方法:%s,路径:%s"), i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile); } else { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,加载Lua模块插件中,当前第:%d 个加载失败,方法:%s,路径:%s,错误:%lX"), i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile, ModulePlugin_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,加载Lua模块插件中,当前第:%d 个加载失败,方法:%s,路径:%s,错误:%lX"), i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile, ModulePlugin_GetLastError()); } } else { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("启动服务中,加载Lua模块插件中,当前第:%d 个加载失败,因为没有启用,方法:%s,路径:%s"), i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,加载Lua模块插件中,当前第:%d 个加载失败,因为没有启用,方法:%s,路径:%s"), i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile); } } } //展示能力 - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,加载的Lib插件:%d 个,Lua插件:%d 个"), st_PluginLibConfig.pStl_ListPlugin->size(), st_PluginLuaConfig.pStl_ListPlugin->size()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,加载的Lib插件:%d 个,Lua插件:%d 个"), st_PluginLibConfig.pStl_ListPlugin->size(), st_PluginLuaConfig.pStl_ListPlugin->size()); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("所有服务成功启动,服务运行中,XEngine版本:%s,发行版本次数:%d,当前版本:%s。。。"), BaseLib_OperatorVer_XGetStr(), st_ServiceConfig.st_XVer.pStl_ListVer->size(), st_ServiceConfig.st_XVer.pStl_ListVer->front().c_str()); - while (XTRUE) + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("所有服务成功启动,服务运行中,XEngine版本:%s,发行版本次数:%d,当前版本:%s。。。"), BaseLib_OperatorVer_XGetStr(), st_ServiceConfig.st_XVer.pStl_ListVer->size(), st_ServiceConfig.st_XVer.pStl_ListVer->front().c_str()); + while (TRUE) { std::this_thread::sleep_for(std::chrono::seconds(1)); } @@ -331,8 +331,8 @@ int main(int argc, char** argv) XENGINE_SERVICEAPP_EXIT: if (bIsRun) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("有服务启动失败,服务器退出...")); - bIsRun = XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("有服务启动失败,服务器退出...")); + bIsRun = FALSE; //销毁HTTP资源 NetCore_TCPXCore_DestroyEx(xhHTTPSocket); SocketOpt_HeartBeat_DestoryEx(xhHTTPHeart); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj index 7ffcebf..d77cf17 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj @@ -30,27 +30,27 @@ Application true v143 - MultiByte + Unicode Application false v143 true - MultiByte + Unicode Application true v143 - MultiByte + Unicode Application false v143 true - MultiByte + Unicode diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp index 7f76302..db7882d 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp @@ -15,26 +15,26 @@ XBOOL CALLBACK Network_Callback_HTTPLogin(LPCXSTR lpszClientAddr, XSOCKET hSocke { SocketOpt_HeartBeat_InsertAddrEx(xhHTTPHeart, lpszClientAddr); HttpProtocol_Server_CreateClientEx(xhHTTPPacket, lpszClientAddr, 0); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,连接到服务器"), lpszClientAddr); - return XTRUE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,连接到服务器"), lpszClientAddr); + return TRUE; } void CALLBACK Network_Callback_HTTPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam) { if (!HttpProtocol_Server_InserQueueEx(xhHTTPPacket, lpszClientAddr, lpszRecvMsg, nMsgLen)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,投递HTTP数据包到消息队列失败,错误:%lX"), lpszClientAddr, HttpProtocol_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,投递HTTP数据包到消息队列失败,错误:%lX"), lpszClientAddr, HttpProtocol_GetLastError()); return; } SocketOpt_HeartBeat_ActiveAddrEx(xhHTTPHeart, lpszClientAddr); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DEBUG, _T("HTTP客户端:%s,投递数据包到组包队列成功,大小:%d"), lpszClientAddr, nMsgLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DEBUG, _X("HTTP客户端:%s,投递数据包到组包队列成功,大小:%d"), lpszClientAddr, nMsgLen); } void CALLBACK Network_Callback_HTTPLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { - XEngine_Network_Close(lpszClientAddr, XFALSE); + XEngine_Network_Close(lpszClientAddr, FALSE); } void CALLBACK Network_Callback_HTTPHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam) { - XEngine_Network_Close(lpszClientAddr, XTRUE); + XEngine_Network_Close(lpszClientAddr, TRUE); } //////////////////////////////////////////////////////////////////////////网络IO关闭操作 void XEngine_Network_Close(LPCXSTR lpszClientAddr, XBOOL bHeart) @@ -48,7 +48,7 @@ void XEngine_Network_Close(LPCXSTR lpszClientAddr, XBOOL bHeart) SocketOpt_HeartBeat_DeleteAddrEx(xhHTTPHeart, lpszClientAddr); } HttpProtocol_Server_CloseClinetEx(xhHTTPPacket, lpszClientAddr); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,离开服务器"), lpszClientAddr); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,离开服务器"), lpszClientAddr); } ////////////////////////////////////////////////////////////////////////// XBOOL XEngine_Network_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen) @@ -56,10 +56,10 @@ XBOOL XEngine_Network_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nM //发送数据给指定客户端 if (!NetCore_TCPXCore_SendEx(xhHTTPSocket, lpszClientAddr, lpszMsgBuffer, nMsgLen)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,发送数据失败,错误:%lX"), lpszClientAddr, NetCore_GetLastError()); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送数据失败,错误:%lX"), lpszClientAddr, NetCore_GetLastError()); + return FALSE; } //发送成功激活一次心跳 SocketOpt_HeartBeat_ActiveAddrEx(xhHTTPHeart, lpszClientAddr); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp index 531b44a..9250849 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp @@ -22,21 +22,21 @@ XBOOL XEngine_PluginTask_Handle(LPCXSTR lpszMethodName, LPCXSTR lpszClientAddr, memset(tszPktBuffer, '\0', sizeof(tszPktBuffer)); memset(&st_HDRParament, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); - st_HDRParament.bIsClose = XTRUE; + st_HDRParament.bIsClose = TRUE; st_HDRParament.nHttpCode = 200; - _tcscpy(st_HDRParament.tszMimeType, "json"); + _tcsxcpy(st_HDRParament.tszMimeType, "json"); if (ModulePlugin_Loader_Exec(lpszMethodName, ppptszList, nListCount, &st_HDRParament.nHttpCode, tszPktBuffer, &nPktLen)) { HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParament, tszPktBuffer, nPktLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的方法:%s,由%s插件模块处理成功"), lpszClientAddr, lpszMethodName, 0 == nPluginType ? "Lib" : "Lua"); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的方法:%s,由%s插件模块处理成功"), lpszClientAddr, lpszMethodName, 0 == nPluginType ? "Lib" : "Lua"); } else { st_HDRParament.nHttpCode = 400; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParament); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的方法:%s,由%s插件模块处理失败,错误:%lX"), lpszClientAddr, lpszMethodName, 0 == nPluginType ? "Lib" : "Lua", ModulePlugin_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的方法:%s,由%s插件模块处理失败,错误:%lX"), lpszClientAddr, lpszMethodName, 0 == nPluginType ? "Lib" : "Lua", ModulePlugin_GetLastError()); } XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp index 1e0fb2f..32dd5db 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp @@ -20,35 +20,35 @@ XBOOL HTTPTask_TaskGet_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber) memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 - _tcscpy(st_BankInfo.tszBankNumber, lpszBankNumber); - _stprintf(tszUrlBuffer, st_ServiceConfig.st_XApi.tszBankUrl, lpszBankNumber); - APIClient_Http_Request(_T("GET"), tszUrlBuffer, NULL, NULL, &ptszBodyBuffer, &nBLen); + _tcsxcpy(st_BankInfo.tszBankNumber, lpszBankNumber); + _xstprintf(tszUrlBuffer, st_ServiceConfig.st_XApi.tszBankUrl, lpszBankNumber); + APIClient_Http_Request(_X("GET"), tszUrlBuffer, NULL, NULL, &ptszBodyBuffer, &nBLen); //解析JSON信息 if (!ModuleProtocol_Parse_Bank(ptszBodyBuffer, nBLen, &st_BankInfo)) { - ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, NULL, 1001, _T("banknumber is corrent")); + ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, NULL, 1001, _X("banknumber is corrent")); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的银行卡号码错误:%s"), lpszClientAddr, lpszBankNumber); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的银行卡号码错误:%s"), lpszClientAddr, lpszBankNumber); + return FALSE; } BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); //查询对应名称 if (!ModuleDatabase_Bank_Query(&st_BankInfo)) { - ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, NULL, 1010, _T("not found")); + ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, NULL, 1010, _X("not found")); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的银行卡信息没有找到:%s"), lpszClientAddr, lpszBankNumber); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的银行卡信息没有找到:%s"), lpszClientAddr, lpszBankNumber); + return FALSE; } //打包发送 ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, &st_BankInfo); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,发送银行卡信息获取请求给服务器,查询号码:%s"), lpszClientAddr, lpszBankNumber); - return XTRUE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,发送银行卡信息获取请求给服务器,查询号码:%s"), lpszClientAddr, lpszBankNumber); + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp index bbca1bb..d7b300f 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp @@ -17,37 +17,37 @@ XBOOL HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer) memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 if (!ModuleProtocol_Parse_IDCard(lpszMsgBuffer, &st_IDCardInfo)) { - ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1001, _T("idnumber is incorrent")); + ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1001, _X("idnumber is incorrent")); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的身份证编号不正确:%s"), lpszClientAddr, lpszMsgBuffer); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的身份证编号不正确:%s"), lpszClientAddr, lpszMsgBuffer); + return FALSE; } //验证身份证是否正确 if (!ModuleHelp_IDCard_CheckBirth(&st_IDCardInfo)) { - ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1002, _T("idnumber is incorrent")); + ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1002, _X("idnumber is incorrent")); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的身份证验证生日失败:%s"), lpszClientAddr, lpszMsgBuffer); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的身份证验证生日失败:%s"), lpszClientAddr, lpszMsgBuffer); + return FALSE; } if (!ModuleHelp_IDCard_CheckSum(&st_IDCardInfo)) { - ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1010, _T("not found")); + ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1010, _X("not found")); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的身份证验证校验码失败:%s"), lpszClientAddr, lpszMsgBuffer); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的身份证验证校验码失败:%s"), lpszClientAddr, lpszMsgBuffer); + return FALSE; } ModuleDatabase_IDCard_QueryRegion(&st_IDRegion, &st_IDCardInfo); ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, &st_IDCardInfo, &st_IDRegion); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求身份证号码验证与信息查询成功,号码:%s"), lpszClientAddr, lpszMsgBuffer); - return XTRUE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求身份证号码验证与信息查询成功,号码:%s"), lpszClientAddr, lpszMsgBuffer); + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp index d8485fc..452c02f 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp @@ -16,10 +16,10 @@ XBOOL HTTPTask_TaskGet_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 st_LanguageInfo.enType = nConvertType; - OPenSsl_Codec_UrlDeCodec(lpszMsgBuffer, _tcslen(lpszMsgBuffer), st_LanguageInfo.tszSourceStr); + OPenSsl_Codec_UrlDeCodec(lpszMsgBuffer, _tcsxlen(lpszMsgBuffer), st_LanguageInfo.tszSourceStr); if (ENUM_XENGINE_APISERVICE_LANGUAGE_TYPE_S2T == nConvertType) { ModuleHelp_Language_ConvertZh(st_OPenccConfig.tszFiles2t, st_LanguageInfo.tszSourceStr, st_LanguageInfo.tszDestStr); @@ -80,6 +80,6 @@ XBOOL HTTPTask_TaskGet_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, &st_LanguageInfo); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求语言转换成功,原始语言:%s,目标语言:%s"), lpszClientAddr, st_LanguageInfo.tszSourceStr, st_LanguageInfo.tszDestStr); - return XTRUE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求语言转换成功,原始语言:%s,目标语言:%s"), lpszClientAddr, st_LanguageInfo.tszSourceStr, st_LanguageInfo.tszDestStr); + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp index 21ac6a3..2593791 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp @@ -13,7 +13,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_CREATE == enLockType) { //创建 @@ -22,7 +22,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求创建锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求创建锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); } else if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_OPEN == enLockType) { @@ -33,13 +33,13 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求打开锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求打开锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); + return FALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求打开锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求打开锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); } else if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_CLOSE == enLockType) { @@ -47,7 +47,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求关闭锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求关闭锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); } else if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_READ == enLockType) { @@ -57,13 +57,13 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求读加锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求读加锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); + return FALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求读加锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求读加锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); } else if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_UNREAD == enLockType) { @@ -73,13 +73,13 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求读解锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求读解锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); + return FALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求读解锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求读解锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); } else if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_WRITE == enLockType) { @@ -89,13 +89,13 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求写加锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求写加锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); + return FALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求写加锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求写加锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); } else if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_UNWRITE == enLockType) { @@ -105,20 +105,20 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken, dwRet, "request is failed"); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求写解锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求写解锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); + return FALSE; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求写解锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求写解锁成功,锁句柄:%lld"), lpszClientAddr, xhToken); } else { st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求了一条未知的子协议:%d"), lpszClientAddr, enLockType); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求了一条未知的子协议:%d"), lpszClientAddr, enLockType); } - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp index 5ef5796..6a7c62c 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp @@ -21,36 +21,36 @@ XBOOL HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 st_LanguageInfo.enType = nConvertType; //转换类型 if (!ModuleHelp_Translation_Convert((ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE)nConvertType, tszTypeBuffer)) { - ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, NULL, 1001, _T("type not support")); + ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, NULL, 1001, _X("type not support")); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的翻译类型不正确:%d,原始字符串:%s"), lpszClientAddr, nConvertType, lpszMsgBuffer); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的翻译类型不正确:%d,原始字符串:%s"), lpszClientAddr, nConvertType, lpszMsgBuffer); + return FALSE; } - _stprintf(tszUrlBuffer, st_ServiceConfig.st_XApi.tszTranslationUrl, tszTypeBuffer, lpszMsgBuffer); - APIClient_Http_Request(_T("GET"), tszUrlBuffer, NULL, NULL, &ptszBodyBuffer, &nBLen); + _xstprintf(tszUrlBuffer, st_ServiceConfig.st_XApi.tszTranslationUrl, tszTypeBuffer, lpszMsgBuffer); + APIClient_Http_Request(_X("GET"), tszUrlBuffer, NULL, NULL, &ptszBodyBuffer, &nBLen); //解析数据 if (!ModuleProtocol_Parse_Translation(ptszBodyBuffer, nBLen, &st_LanguageInfo)) { - ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, NULL, 1002, _T("translation failed")); + ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, NULL, 1002, _X("translation failed")); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的翻译失败,类型:%d,原始字符串:%s"), lpszClientAddr, nConvertType, lpszMsgBuffer); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的翻译失败,类型:%d,原始字符串:%s"), lpszClientAddr, nConvertType, lpszMsgBuffer); + return FALSE; } //打包发送 ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, &st_LanguageInfo); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求语言翻译成功,原始语言:%s,目标语言:%s"), lpszClientAddr, st_LanguageInfo.tszSourceStr, st_LanguageInfo.tszDestStr); - return XTRUE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求语言翻译成功,原始语言:%s,目标语言:%s"), lpszClientAddr, st_LanguageInfo.tszSourceStr, st_LanguageInfo.tszDestStr); + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp index df900c9..f765005 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp @@ -10,7 +10,7 @@ XBOOL HTTPTask_TastPost_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 //0发什么返回什么,1 仅仅返回确认 if (0 == nType) { @@ -21,6 +21,6 @@ XBOOL HTTPTask_TastPost_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); } XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求数据用例测试成功,请求的大小:%d,请求的类型:%d"), lpszClientAddr, nMsgLen, nType); - return XTRUE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求数据用例测试成功,请求的大小:%d,请求的类型:%d"), lpszClientAddr, nMsgLen, nType); + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp index dde33bd..d25d5bb 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp @@ -15,7 +15,7 @@ XBOOL HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 ModuleProtocol_Parse_XLog(lpszMsgBuffer, nMsgLen, &st_XLogInfo); if (0 == nType) @@ -24,7 +24,7 @@ XBOOL HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求日志表创建成功,创建的表:%s,"), lpszClientAddr, st_XLogInfo.tszTableName); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求日志表创建成功,创建的表:%s,"), lpszClientAddr, st_XLogInfo.tszTableName); } else if (1 == nType) { @@ -32,7 +32,7 @@ XBOOL HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求日志插入成功,插入的表:%s,日志大小:%d"), lpszClientAddr, st_XLogInfo.tszTableName, st_XLogInfo.nLogSize); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求日志插入成功,插入的表:%s,日志大小:%d"), lpszClientAddr, st_XLogInfo.tszTableName, st_XLogInfo.nLogSize); } else if (2 == nType) { @@ -42,7 +42,7 @@ XBOOL HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i ModuleProtocol_Packet_Log(tszRVBuffer, &nRVLen, &ppSt_XLogInfo, nListCount); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求日志查询成功,查询的表:%s,查询日期:%s - %s,查询条数:%d"), lpszClientAddr, st_XLogInfo.tszTableName, st_XLogInfo.tszTimeStart, st_XLogInfo.tszTimeEnd, nListCount); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求日志查询成功,查询的表:%s,查询日期:%s - %s,查询条数:%d"), lpszClientAddr, st_XLogInfo.tszTableName, st_XLogInfo.tszTimeStart, st_XLogInfo.tszTimeEnd, nListCount); } else { @@ -50,7 +50,7 @@ XBOOL HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求日志删除成功,删除的表:%s"), lpszClientAddr, st_XLogInfo.tszTableName); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求日志删除成功,删除的表:%s"), lpszClientAddr, st_XLogInfo.tszTableName); } - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp index 44974f3..3d29104 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp @@ -2,7 +2,7 @@ void CALLBACK HTTPTask_TastPost_P2PCallback(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XPVOID lParam) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("HTTP客户端:公网:%s,私网:%s,连接:%s P2P离开"), pSt_P2PProtocol->tszPublicAddr, pSt_P2PProtocol->tszPrivateAddr, pSt_P2PProtocol->tszConnectAddr); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:公网:%s,私网:%s,连接:%s P2P离开"), pSt_P2PProtocol->tszPublicAddr, pSt_P2PProtocol->tszPrivateAddr, pSt_P2PProtocol->tszConnectAddr); } XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int unOperatorCode) { @@ -17,7 +17,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_P2XP_REQLOGIN == unOperatorCode) { XENGINE_P2XP_PEERINFO st_ClientPeer; @@ -28,13 +28,13 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen, 400, "协议错误"); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,处理登录错误,解析协议失败,错误码:%lX"), lpszClientAddr, ModuleProtocol_GetLastError()); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,处理登录错误,解析协议失败,错误码:%lX"), lpszClientAddr, ModuleProtocol_GetLastError()); + return FALSE; } //如果没有填充公用地址,用他的连接地址代替,外网服务器都可以这样做 - if (_tcslen(st_ClientPeer.st_PeerAddr.tszPublicAddr) <= 0) + if (_tcsxlen(st_ClientPeer.st_PeerAddr.tszPublicAddr) <= 0) { - _tcscpy(st_ClientPeer.st_PeerAddr.tszPublicAddr, lpszClientAddr); + _tcsxcpy(st_ClientPeer.st_PeerAddr.tszPublicAddr, lpszClientAddr); BaseLib_OperatorIPAddr_SegAddr(st_ClientPeer.st_PeerAddr.tszPublicAddr, NULL); } //获取外网IP所在位置 @@ -42,20 +42,20 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, st_ClientPeer.st_PeerTimer.dwUserTime = time(NULL); st_ClientPeer.st_PeerTimer.dwKeepAlive = time(NULL); - st_ClientPeer.bIsLogin = XTRUE; - _tcscpy(st_ClientPeer.st_PeerAddr.tszConnectAddr, lpszClientAddr); + st_ClientPeer.bIsLogin = TRUE; + _tcsxcpy(st_ClientPeer.st_PeerAddr.tszConnectAddr, lpszClientAddr); if (!ModuleHelp_P2PClient_Add(&st_ClientPeer)) { ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen, 500, "内部错误"); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,处理登录错误,设置用户信息失败,错误码:%lX"), lpszClientAddr, ModuleHelp_GetLastError()); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,处理登录错误,设置用户信息失败,错误码:%lX"), lpszClientAddr, ModuleHelp_GetLastError()); + return FALSE; } ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,处理用户登录请求成功,用户名:%s"), lpszClientAddr, st_ClientPeer.st_PeerAddr.tszUserName); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,处理用户登录请求成功,用户名:%s"), lpszClientAddr, st_ClientPeer.st_PeerAddr.tszUserName); } else if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_P2XP_REQLANLIST == unOperatorCode) { @@ -67,11 +67,11 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen, 400, "协议错误"); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,列表请求失败,协议解析错误,错误码:%lX"), lpszClientAddr, ModuleProtocol_GetLastError()); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,列表请求失败,协议解析错误,错误码:%lX"), lpszClientAddr, ModuleProtocol_GetLastError()); + return FALSE; } //请求同步列表 - if (_tcslen(st_P2PProtocol.tszPrivateAddr) > 0) + if (_tcsxlen(st_P2PProtocol.tszPrivateAddr) > 0) { int nListCount = 0; XENGINE_P2XPPEER_PROTOCOL** ppSt_ListClients; @@ -80,14 +80,14 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen, 500, "内部错误"); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,列表请求失败,请求同步局域网列表失败,公有地址:%s,私有地址:%s,错误码:%lX"), lpszClientAddr, st_P2PProtocol.tszPublicAddr, st_P2PProtocol.tszPrivateAddr, ModuleHelp_GetLastError()); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,列表请求失败,请求同步局域网列表失败,公有地址:%s,私有地址:%s,错误码:%lX"), lpszClientAddr, st_P2PProtocol.tszPublicAddr, st_P2PProtocol.tszPrivateAddr, ModuleHelp_GetLastError()); + return FALSE; } ModuleProtocol_Packet_P2PLan(tszRVBuffer, &nRVLen, &ppSt_ListClients, nListCount); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_ListClients, nListCount); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求同步局域网列表成功,公有地址:%s,私有地址:%s"), lpszClientAddr, st_P2PProtocol.tszPublicAddr, st_P2PProtocol.tszPrivateAddr); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求同步局域网列表成功,公有地址:%s,私有地址:%s"), lpszClientAddr, st_P2PProtocol.tszPublicAddr, st_P2PProtocol.tszPrivateAddr); } else { @@ -103,7 +103,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, XENGINE_P2XPPEER_PROTOCOL** ppSt_ListClients; memset(st_P2PProtocol.tszPrivateAddr, '\0', sizeof(st_P2PProtocol.tszPrivateAddr)); - _tcscpy(st_P2PProtocol.tszPrivateAddr, ppszClientList[i]); + _tcsxcpy(st_P2PProtocol.tszPrivateAddr, ppszClientList[i]); if (ModuleHelp_P2PClient_GetLan(&st_P2PProtocol, &ppSt_ListClients, &nLanCount)) { @@ -119,7 +119,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, ModuleProtocol_Packet_P2PWLan(tszRVBuffer, &nRVLen, &stl_ListClient); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求同步公有局域网列表成功,公有地址:%s"), lpszClientAddr, st_P2PProtocol.tszPublicAddr); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求同步公有局域网列表成功,公有地址:%s"), lpszClientAddr, st_P2PProtocol.tszPublicAddr); } } else @@ -127,7 +127,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("客户端:%s,请求了一条未知的子协议:%lX"), lpszClientAddr, unOperatorCode); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求了一条未知的子协议:%lX"), lpszClientAddr, unOperatorCode); } - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp index 1c3a951..f889d3a 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp @@ -15,7 +15,7 @@ XBOOL HTTPTask_TastPost_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 ModuleProtocol_Parse_ZIPCode(lpszMsgBuffer, nMsgLen, &st_ZIPInfo); if (0 == nType) @@ -30,6 +30,6 @@ XBOOL HTTPTask_TastPost_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, ModuleProtocol_Packet_ZIPCode(tszRVBuffer, &nRVLen, &st_ZIPInfo); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求查询邮政编码地址信息查询成功,查询邮编;%d,查询地址:%s"), lpszClientAddr, st_ZIPInfo.nZipCode, st_ZIPInfo.tszCounty); - return XTRUE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求查询邮政编码地址信息查询成功,查询邮编;%d,查询地址:%s"), lpszClientAddr, st_ZIPInfo.nZipCode, st_ZIPInfo.tszCounty); + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp index c033347..8560b32 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp @@ -15,28 +15,28 @@ XBOOL HTTPTask_TaskPost_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 //0创建,1解析 if (0 == nType) { ModuleProtocol_Parse_QRCode(lpszMsgBuffer, nMsgLen, &st_QRCode); - _tcscpy(st_HDRParam.tszMimeType, st_QRCode.tszFmtBuffer + 1); + _tcsxcpy(st_HDRParam.tszMimeType, st_QRCode.tszFmtBuffer + 1); ModuleHelp_QRCode_QREncodecMemory(st_QRCode.tszMsgBuffer, ptszRVBuffer, &nRVLen, st_QRCode.tszFmtBuffer); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam, ptszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求创建二维码成功,创建的二维码数据:%s"), lpszClientAddr, st_QRCode.tszMsgBuffer); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求创建二维码成功,创建的二维码数据:%s"), lpszClientAddr, st_QRCode.tszMsgBuffer); } else { ModuleHelp_QRCode_QRDecodecMemory(lpszMsgBuffer, nMsgLen, ptszRVBuffer, st_QRCodeConfig.tszProtoDetect, st_QRCodeConfig.tszModelDetect, st_QRCodeConfig.tszProtoSr, st_QRCodeConfig.tszModelSr); - nRVLen = _tcslen(ptszRVBuffer); + nRVLen = _tcsxlen(ptszRVBuffer); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, ptszSDBuffer, &nSDLen, &st_HDRParam, ptszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, ptszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求二维码解析成功,解析的数据:%s"), lpszClientAddr, ptszRVBuffer); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求二维码解析成功,解析的数据:%s"), lpszClientAddr, ptszRVBuffer); } free(ptszRVBuffer); free(ptszSDBuffer); ptszRVBuffer = NULL; ptszSDBuffer = NULL; - return XTRUE; + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp index a12cfb9..06d38b3 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp @@ -3,7 +3,7 @@ XBOOL HTTPTask_TaskPost_SLProxy(LPCXSTR lpszClientAddr, LPCXSTR lpszUriStr, XCHAR*** ppptszHDRList, int nHDRCount) { //是不是代理转发 - XBOOL bFound = XFALSE; + XBOOL bFound = FALSE; for (int i = 0; i < nHDRCount; i++) { XCHAR tszKey[MAX_PATH]; @@ -13,15 +13,15 @@ XBOOL HTTPTask_TaskPost_SLProxy(LPCXSTR lpszClientAddr, LPCXSTR lpszUriStr, XCHA memset(tszValue, '\0', sizeof(tszValue)); BaseLib_OperatorString_GetKeyValue((*ppptszHDRList)[i], ": ", tszKey, tszValue); - if (0 == _tcsnicmp(st_ServiceConfig.st_XShortLink.tszHostUrl, tszValue, _tcslen(st_ServiceConfig.st_XShortLink.tszHostUrl))) + if (0 == _tcsxnicmp(st_ServiceConfig.st_XShortLink.tszHostUrl, tszValue, _tcsxlen(st_ServiceConfig.st_XShortLink.tszHostUrl))) { - bFound = XTRUE; + bFound = TRUE; break; } } if (!bFound) { - return XFALSE; + return FALSE; } int nSDLen = 0; XCHAR tszSDBuffer[4096]; @@ -34,19 +34,19 @@ XBOOL HTTPTask_TaskPost_SLProxy(LPCXSTR lpszClientAddr, LPCXSTR lpszUriStr, XCHA memset(&st_ShortLink, '\0', sizeof(XENGINE_SHORTLINK)); memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); - _stprintf(st_ShortLink.tszMapUrl, _T("http://%s%s"), st_ServiceConfig.st_XShortLink.tszHostUrl, lpszUriStr); + _xstprintf(st_ShortLink.tszMapUrl, _X("http://%s%s"), st_ServiceConfig.st_XShortLink.tszHostUrl, lpszUriStr); if (!ModuleDatabase_ShortLink_Query(&st_ShortLink)) { - return XFALSE; + return FALSE; } st_HDRParam.nHttpCode = st_ServiceConfig.st_XShortLink.nHTTPCode; - st_HDRParam.bIsClose = XTRUE; + st_HDRParam.bIsClose = TRUE; - _stprintf(tszRVBuffer, _T("Location: %s\r\n"), st_ShortLink.tszFullUrl); + _xstprintf(tszRVBuffer, _X("Location: %s\r\n"), st_ShortLink.tszFullUrl); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszRVBuffer); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的短连接地址重定向成功,短连接:%s,长连接:%s"), lpszClientAddr, st_ShortLink.tszMapUrl, st_ShortLink.tszFullUrl); - return XTRUE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的短连接地址重定向成功,短连接:%s,长连接:%s"), lpszClientAddr, st_ShortLink.tszMapUrl, st_ShortLink.tszFullUrl); + return TRUE; } XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { @@ -63,7 +63,7 @@ XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 ModuleProtocol_Parse_ShortLink(lpszMsgBuffer, nMsgLen, &st_ShortLink); //0生成,1还原,2删除 @@ -75,17 +75,17 @@ XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, st_HDRParam.nHttpCode = 400; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,请求生成短连接生成错误,生成的连接:%s,替换的连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszCvtUrl, HttpProtocol_GetLastError()); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求生成短连接生成错误,生成的连接:%s,替换的连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszCvtUrl, HttpProtocol_GetLastError()); + return FALSE; } - _stprintf(st_ShortLink.tszMapUrl, _T("%s/%s"), st_ShortLink.tszShotUrl, st_ShortLink.tszKeyUrl); + _xstprintf(st_ShortLink.tszMapUrl, _X("%s/%s"), st_ShortLink.tszShotUrl, st_ShortLink.tszKeyUrl); if (!ModuleDatabase_ShortLink_Insert(&st_ShortLink)) { st_HDRParam.nHttpCode = 400; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,请求生成短连接插入数据库错误,生成的连接:%s,替换的连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszCvtUrl, ModuleDB_GetLastError()); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求生成短连接插入数据库错误,生成的连接:%s,替换的连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszCvtUrl, ModuleDB_GetLastError()); + return FALSE; } } else if (1 == nType) @@ -95,8 +95,8 @@ XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, st_HDRParam.nHttpCode = 400; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,请求获取短连接错误,连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszMapUrl, ModuleDB_GetLastError()); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求获取短连接错误,连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszMapUrl, ModuleDB_GetLastError()); + return FALSE; } } else @@ -106,13 +106,13 @@ XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, st_HDRParam.nHttpCode = 400; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("HTTP客户端:%s,请求删除短连接错误,完整地址:%s,映射地址:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszMapUrl, ModuleDB_GetLastError()); - return XFALSE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求删除短连接错误,完整地址:%s,映射地址:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszMapUrl, ModuleDB_GetLastError()); + return FALSE; } } ModuleProtocol_Packet_ShortLink(tszRVBuffer, &nRVLen, &st_ShortLink); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求操作短连接成功,操作类型:%d,完整地址URL:%s,映射URL:%s"), lpszClientAddr, nType, st_ShortLink.tszFullUrl, st_ShortLink.tszMapUrl); - return XTRUE; + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求操作短连接成功,操作类型:%d,完整地址URL:%s,映射URL:%s"), lpszClientAddr, nType, st_ShortLink.tszFullUrl, st_ShortLink.tszMapUrl); + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp index 56a0b18..9272790 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp @@ -11,7 +11,7 @@ void CALLBACK HTTPTask_TastPost_CBSocketTest(XNETHANDLE xhToken, LPCXSTR lpszAdd { //每次都报告 ModuleProtocol_Packet_TestReport(tszMsgBuffer, &nMsgLen, xhToken, lpszAddr, nPort, nNumber, nFailed, nSuccess, nStatus); - if (_tcslen(pSt_SocketTest->tszAPIUrl) > 0) + if (_tcsxlen(pSt_SocketTest->tszAPIUrl) > 0) { APIClient_Http_Request("POST", pSt_SocketTest->tszAPIUrl, tszMsgBuffer); } @@ -20,7 +20,7 @@ void CALLBACK HTTPTask_TastPost_CBSocketTest(XNETHANDLE xhToken, LPCXSTR lpszAdd { //成功报告 ModuleProtocol_Packet_TestReport(tszMsgBuffer, &nMsgLen, xhToken, lpszAddr, nPort, nNumber, nFailed, nSuccess, nStatus); - if (_tcslen(pSt_SocketTest->tszAPIUrl) > 0) + if (_tcsxlen(pSt_SocketTest->tszAPIUrl) > 0) { APIClient_Http_Request("POST", pSt_SocketTest->tszAPIUrl, tszMsgBuffer); } @@ -29,7 +29,7 @@ void CALLBACK HTTPTask_TastPost_CBSocketTest(XNETHANDLE xhToken, LPCXSTR lpszAdd { //失败报告 ModuleProtocol_Packet_TestReport(tszMsgBuffer, &nMsgLen, xhToken, lpszAddr, nPort, nNumber, nFailed, nSuccess, nStatus); - if (_tcslen(pSt_SocketTest->tszAPIUrl) > 0) + if (_tcsxlen(pSt_SocketTest->tszAPIUrl) > 0) { APIClient_Http_Request("POST", pSt_SocketTest->tszAPIUrl, tszMsgBuffer); } @@ -40,7 +40,7 @@ void CALLBACK HTTPTask_TastPost_CBSocketTest(XNETHANDLE xhToken, LPCXSTR lpszAdd { //结束报告 ModuleProtocol_Packet_TestReport(tszMsgBuffer, &nMsgLen, xhToken, lpszAddr, nPort, nNumber, nFailed, nSuccess, nStatus); - if (_tcslen(pSt_SocketTest->tszAPIUrl) > 0) + if (_tcsxlen(pSt_SocketTest->tszAPIUrl) > 0) { APIClient_Http_Request("POST", pSt_SocketTest->tszAPIUrl, tszMsgBuffer); } @@ -62,7 +62,7 @@ XBOOL HTTPTask_TastPost_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = XTRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 ModuleProtocol_Parse_SocketTest(lpszMsgBuffer, nMsgLen, pSt_SocketTest); //0创建,1删除 @@ -80,7 +80,7 @@ XBOOL HTTPTask_TastPost_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer ModuleProtocol_Packet_TestReply(tszRVBuffer, &nRVLen, pSt_SocketTest->xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求创建套接字测试成功,句柄:%lld,地址:%s:%d,TCP:%d,测试类型:%d"), lpszClientAddr, pSt_SocketTest->xhToken, pSt_SocketTest->st_SocketConn.tszAddr, pSt_SocketTest->st_SocketConn.nPort, pSt_SocketTest->bTCP, pSt_SocketTest->bConn); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求创建套接字测试成功,句柄:%lld,地址:%s:%d,TCP:%d,测试类型:%d"), lpszClientAddr, pSt_SocketTest->xhToken, pSt_SocketTest->st_SocketConn.tszAddr, pSt_SocketTest->st_SocketConn.nPort, pSt_SocketTest->bTCP, pSt_SocketTest->bConn); } else { @@ -95,9 +95,9 @@ XBOOL HTTPTask_TastPost_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求销毁套接字测试成功,句柄:%lld"), lpszClientAddr, pSt_SocketTest->xhToken); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求销毁套接字测试成功,句柄:%lld"), lpszClientAddr, pSt_SocketTest->xhToken); delete pSt_SocketTest; pSt_SocketTest = NULL; } - return XTRUE; + return TRUE; } \ No newline at end of file -- Gitee From 3dfd0be3c0a7fa932859dfb8fc91e38d17f6bff1 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Mon, 17 Apr 2023 09:29:51 +0800 Subject: [PATCH 21/26] update:match xengine v8.10 --- .../ModuleConfig_Define.h | 16 +- .../ModuleConfigure_Json.cpp | 116 +++++++------- .../ModuleConfigure_Json.h | 8 +- .../XEngine_ModuleConfigure/dllmain.cpp | 4 +- .../XEngine_ModuleConfigure/pch.cpp | 10 +- XEngine_Source/XEngine_ModuleConfigure/pch.h | 2 +- .../XEngine_ModuleDatabase/ModuleDB_Define.h | 42 ++--- .../ModuleDatabase_Bank.cpp | 38 ++--- .../ModuleDatabase_Bank/ModuleDatabase_Bank.h | 6 +- .../ModuleDatabase_IDCard.cpp | 80 +++++----- .../ModuleDatabase_IDCard.h | 12 +- .../ModuleDatabase_ShortLink.cpp | 66 ++++---- .../ModuleDatabase_ShortLink.h | 10 +- .../ModuleDatabase_XLog.cpp | 80 +++++----- .../ModuleDatabase_XLog/ModuleDatabase_XLog.h | 12 +- .../ModuleDatabase_ZIPCode.cpp | 92 +++++------ .../ModuleDatabase_ZIPCode.h | 12 +- .../XEngine_ModuleDatabase/dllmain.cpp | 4 +- XEngine_Source/XEngine_ModuleDatabase/pch.cpp | 46 +++--- XEngine_Source/XEngine_ModuleDatabase/pch.h | 4 +- .../XEngine_ModuleHelp/ModuleHelp_Define.h | 64 ++++---- .../ModuleHelp_IDCard/ModuleHelp_IDCard.cpp | 36 ++--- .../ModuleHelp_IDCard/ModuleHelp_IDCard.h | 4 +- .../ModuleHelp_Language.cpp | 32 ++-- .../ModuleHelp_Language/ModuleHelp_Language.h | 4 +- .../ModuleHelp_Locker/ModuleHelp_Locker.cpp | 90 +++++------ .../ModuleHelp_Locker/ModuleHelp_Locker.h | 14 +- .../ModuleHelp_P2PClient.cpp | 148 +++++++++--------- .../ModuleHelp_P2PClient.h | 22 +-- .../ModuleHelp_QRCode/ModuleHelp_QRCode.cpp | 88 +++++------ .../ModuleHelp_QRCode/ModuleHelp_QRCode.h | 8 +- .../ModuleHelp_SocketTest.cpp | 96 ++++++------ .../ModuleHelp_SocketTest.h | 18 +-- XEngine_Source/XEngine_ModuleHelp/dllmain.cpp | 4 +- XEngine_Source/XEngine_ModuleHelp/pch.cpp | 64 ++++---- XEngine_Source/XEngine_ModuleHelp/pch.h | 2 +- .../ModulePlugin_Define.h | 24 +-- .../ModulePlugin_LibCore.cpp | 84 +++++----- .../ModulePlugin_LibCore.h | 20 +-- .../ModulePlugin_Loader.cpp | 52 +++--- .../ModulePlugin_Loader/ModulePlugin_Loader.h | 8 +- .../ModulePlugin_LuaCore.cpp | 88 +++++------ .../ModulePlugin_LuaCore.h | 12 +- .../XEngine_ModulePlugin/dllmain.cpp | 4 +- XEngine_Source/XEngine_ModulePlugin/pch.cpp | 26 +-- XEngine_Source/XEngine_ModulePlugin/pch.h | 2 +- .../ModuleProtocol_Define.h | 46 +++--- .../ModuleProtocol_Packet.cpp | 140 ++++++++--------- .../ModuleProtocol_Packet.h | 28 ++-- .../ModuleProtocol_Parse.cpp | 138 ++++++++-------- .../ModuleProtocol_Parse.h | 18 +-- .../XEngine_ModuleProtocol/dllmain.cpp | 4 +- XEngine_Source/XEngine_ModuleProtocol/pch.cpp | 48 +++--- XEngine_Source/XEngine_ModuleProtocol/pch.h | 2 +- .../ModulePlugin_BMIndex/BMIndex_Define.h | 4 +- .../Plugin_BMIndex/Plugin_BMIndex.cpp | 24 +-- .../Plugin_BMIndex/Plugin_BMIndex.h | 6 +- .../ModulePlugin_BMIndex/dllmain.cpp | 4 +- .../ModulePlugin_BMIndex/pch.cpp | 6 +- .../ModulePlugin_BMIndex/pch.h | 2 +- .../ModulePlugin_Interface.cpp | 24 +-- .../ModulePlugin_Interface.h | 4 +- .../ModulePlugin_IPAddr/PluginIPAddr_Define.h | 4 +- .../ModulePlugin_IPAddr/dllmain.cpp | 4 +- .../ModulePlugin_IPAddr/pch.cpp | 6 +- .../ModulePlugin_IPAddr/pch.h | 2 +- .../ModulePlugin_Meter/PluginMeter_Define.h | 4 +- .../Plugin_Meter/Plugin_Meter.cpp | 42 ++--- .../Plugin_Meter/Plugin_Meter.h | 12 +- .../ModulePlugin_Meter/dllmain.cpp | 4 +- .../ModulePlugin_Meter/pch.cpp | 6 +- .../ModulePlugin_Meter/pch.h | 2 +- .../ModulePlugin_Password/PluginPass_Define.h | 4 +- .../Plugin_Password/Plugin_Password.cpp | 24 +-- .../Plugin_Password/Plugin_Password.h | 6 +- .../ModulePlugin_Password/dllmain.cpp | 4 +- .../ModulePlugin_Password/pch.cpp | 6 +- .../ModulePlugin_Password/pch.h | 2 +- .../ModulePlugin_APIPhone.cpp | 22 +-- .../ModulePlugin_APIPhone.h | 4 +- .../ModulePlugin_DBPhone.cpp | 62 ++++---- .../ModulePlugin_DBPhone.h | 8 +- .../ModulePlugin_Phone/PluginPhone_Define.h | 4 +- .../ModulePlugin_Phone/dllmain.cpp | 4 +- .../ModulePlugin_Phone/pch.cpp | 6 +- .../ModulePlugin_Phone/pch.h | 2 +- .../Plugin_Timezone/Plugin_Timezone.cpp | 40 ++--- .../Plugin_Timezone/Plugin_Timezone.h | 10 +- .../ModulePlugin_Timezone/Timezone_Define.h | 4 +- .../ModulePlugin_Timezone/dllmain.cpp | 4 +- .../ModulePlugin_Timezone/pch.cpp | 6 +- .../ModulePlugin_Timezone/pch.h | 2 +- .../ModulePlugin_Zodiac/PluginZodiac_Define.h | 4 +- .../Plugin_Zodiac/Plugin_Zodiac.cpp | 30 ++-- .../Plugin_Zodiac/Plugin_Zodiac.h | 8 +- .../ModulePlugin_Zodiac/dllmain.cpp | 4 +- .../ModulePlugin_Zodiac/pch.cpp | 6 +- .../ModulePlugin_Zodiac/pch.h | 2 +- .../XEngine_HttpApp/XEngine_Configure.cpp | 8 +- .../XEngine_HttpApp/XEngine_Configure.h | 2 +- .../XEngine_HttpApp/XEngine_HTTPTask.cpp | 36 ++--- .../XEngine_HttpApp/XEngine_HTTPTask.h | 2 +- .../XEngine_HttpApp/XEngine_Hdr.h | 2 +- .../XEngine_HttpApp/XEngine_HttpApp.cpp | 10 +- .../XEngine_HttpApp/XEngine_Network.cpp | 16 +- .../XEngine_HttpApp/XEngine_Network.h | 6 +- .../XEngine_HttpApp/XEngine_PluginTask.cpp | 6 +- .../XEngine_HttpApp/XEngine_PluginTask.h | 2 +- .../XEngine_TaskGet/TaskGet_Bank.cpp | 10 +- .../XEngine_TaskGet/TaskGet_Bank.h | 2 +- .../XEngine_TaskGet/TaskGet_IDCard.cpp | 12 +- .../XEngine_TaskGet/TaskGet_IDCard.h | 2 +- .../XEngine_TaskGet/TaskGet_Language.cpp | 6 +- .../XEngine_TaskGet/TaskGet_Language.h | 2 +- .../XEngine_TaskGet/TaskGet_Locker.cpp | 16 +- .../XEngine_TaskGet/TaskGet_Locker.h | 2 +- .../XEngine_TaskGet/TaskGet_Translation.cpp | 10 +- .../XEngine_TaskGet/TaskGet_Translation.h | 2 +- .../XEngine_TaskPost/TaskPost_DTest.cpp | 6 +- .../XEngine_TaskPost/TaskPost_DTest.h | 2 +- .../XEngine_TaskPost/TaskPost_Log.cpp | 6 +- .../XEngine_TaskPost/TaskPost_Log.h | 2 +- .../XEngine_TaskPost/TaskPost_P2PClient.cpp | 16 +- .../XEngine_TaskPost/TaskPost_P2PClient.h | 2 +- .../XEngine_TaskPost/TaskPost_PostCode.cpp | 6 +- .../XEngine_TaskPost/TaskPost_PostCode.h | 2 +- .../XEngine_TaskPost/TaskPost_QRCode.cpp | 6 +- .../XEngine_TaskPost/TaskPost_QRCode.h | 2 +- .../XEngine_TaskPost/TaskPost_ShortLink.cpp | 28 ++-- .../XEngine_TaskPost/TaskPost_ShortLink.h | 4 +- .../XEngine_TaskPost/TaskPost_SocketTest.cpp | 6 +- .../XEngine_TaskPost/TaskPost_SocketTest.h | 2 +- XEngine_Source/XEngine_UserProtocol.h | 2 +- 133 files changed, 1391 insertions(+), 1391 deletions(-) diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h index c1c5964..70a67d6 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h @@ -16,7 +16,7 @@ typedef struct { XCHAR tszIPAddr[128]; //本机IP地址,根据需要配置 - XBOOL bDeamon; //是否以守护进程启动,LINUX有效 + bool bDeamon; //是否以守护进程启动,LINUX有效 int nHttpPort; //HTTP服务端口 struct { @@ -52,7 +52,7 @@ typedef struct }st_XApi; struct { - XBOOL bEnable; //是否启用 + bool bEnable; //是否启用 XCHAR tszPluginLib[MAX_PATH]; //配置文件地址 XCHAR tszPluginLua[MAX_PATH]; //配置文件地址 }st_XPlugin; @@ -100,7 +100,7 @@ typedef struct //插件 typedef struct { - XBOOL bEnable; + bool bEnable; XCHAR tszPluginMethod[MAX_PATH]; XCHAR tszPluginFile[MAX_PATH]; }XENGINE_PLUGININFO; @@ -111,7 +111,7 @@ typedef struct ////////////////////////////////////////////////////////////////////////// typedef struct { - XBOOL bEnable; + bool bEnable; XCHAR tszOPMethod[MAX_PATH]; XCHAR tszOPNote[MAX_PATH]; XCHAR tszOPExample[MAX_PATH]; @@ -145,7 +145,7 @@ extern "C" XLONG ModuleConfigure_GetLastError(int* pInt_ErrorCode = NULL); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVICECONFIG* pSt_ServerConfig); +extern "C" bool ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVICECONFIG* pSt_ServerConfig); /******************************************************************** 函数名称:ModuleConfigure_Json_OPenccFile 函数功能:读取JSON配置文件 @@ -164,7 +164,7 @@ extern "C" XBOOL ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVI 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE_OPENCCCONFIG* pSt_OPenccConfig); +extern "C" bool ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE_OPENCCCONFIG* pSt_OPenccConfig); /******************************************************************** 函数名称:ModuleConfigure_Json_QRCodeFile 函数功能:读取JSON配置文件 @@ -183,7 +183,7 @@ extern "C" XBOOL ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE_QRCODECONFIG* pSt_QRCodeConfig); +extern "C" bool ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE_QRCODECONFIG* pSt_QRCodeConfig); /******************************************************************** 函数名称:ModuleConfigure_Json_PluginFile 函数功能:读取JSON配置文件 @@ -202,4 +202,4 @@ extern "C" XBOOL ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig); \ No newline at end of file +extern "C" bool ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp index a25ee5d..fc28b60 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp @@ -40,15 +40,15 @@ CModuleConfigure_Json::~CModuleConfigure_Json() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVICECONFIG* pSt_ServerConfig) +bool CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVICECONFIG* pSt_ServerConfig) { - Config_IsErrorOccur = FALSE; + Config_IsErrorOccur = false; if ((NULL == lpszConfigFile) || (NULL == pSt_ServerConfig)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -57,9 +57,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X FILE* pSt_File = _xtfopen(lpszConfigFile, _X("rb")); if (NULL == pSt_File) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_OPENFILE; - return FALSE; + return false; } size_t nCount = 0; XCHAR tszMsgBuffer[4096]; @@ -77,9 +77,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARSE; - return FALSE; + return false; } _tcsxcpy(pSt_ServerConfig->tszIPAddr, st_JsonRoot["tszIPAddr"].asCString()); pSt_ServerConfig->bDeamon = st_JsonRoot["bDeamon"].asInt(); @@ -87,9 +87,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XMax"].empty() || (4 != st_JsonRoot["XMax"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XMAX; - return FALSE; + return false; } Json::Value st_JsonXMax = st_JsonRoot["XMax"]; pSt_ServerConfig->st_XMax.nMaxClient = st_JsonXMax["nMaxClient"].asInt(); @@ -99,9 +99,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XTime"].empty() || (3 != st_JsonRoot["XTime"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XTIME; - return FALSE; + return false; } Json::Value st_JsonXTime = st_JsonRoot["XTime"]; pSt_ServerConfig->st_XTime.nTimeCheck = st_JsonXTime["nTimeCheck"].asInt(); @@ -110,9 +110,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XLog"].empty() || (3 != st_JsonRoot["XLog"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XLOG; - return FALSE; + return false; } Json::Value st_JsonXLog = st_JsonRoot["XLog"]; pSt_ServerConfig->st_XLog.nMaxSize = st_JsonXLog["MaxSize"].asInt(); @@ -121,9 +121,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XApi"].empty() || (2 != st_JsonRoot["XApi"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XAPI; - return FALSE; + return false; } Json::Value st_JsonXApi = st_JsonRoot["XApi"]; _tcsxcpy(pSt_ServerConfig->st_XApi.tszBankUrl, st_JsonXApi["tszBankUrl"].asCString()); @@ -131,9 +131,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XSql"].empty() || (4 != st_JsonRoot["XSql"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XDB; - return FALSE; + return false; } Json::Value st_JsonXSql = st_JsonRoot["XSql"]; pSt_ServerConfig->st_XSql.nSQLPort = st_JsonXSql["SQLPort"].asInt(); @@ -143,9 +143,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XPlugin"].empty() || (3 != st_JsonRoot["XPlugin"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XPLUGIN; - return FALSE; + return false; } Json::Value st_JsonXPlugin = st_JsonRoot["XPlugin"]; pSt_ServerConfig->st_XPlugin.bEnable = st_JsonXPlugin["bEnable"].asBool(); @@ -154,9 +154,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XConfig"].empty() || (2 != st_JsonRoot["XConfig"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XCONFIG; - return FALSE; + return false; } Json::Value st_JsonXConfig = st_JsonRoot["XConfig"]; _tcsxcpy(pSt_ServerConfig->st_XConfig.tszConfigOPencc, st_JsonXConfig["tszConfigOPencc"].asCString()); @@ -164,9 +164,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XShortLink"].empty() || (2 != st_JsonRoot["XShortLink"].size())) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XSLINK; - return FALSE; + return false; } Json::Value st_JsonXShort = st_JsonRoot["XShortLink"]; _tcsxcpy(pSt_ServerConfig->st_XShortLink.tszHostUrl, st_JsonXShort["tszHostUrl"].asCString()); @@ -174,23 +174,23 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X if (st_JsonRoot["XVer"].empty()) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XVER; - return FALSE; + return false; } pSt_ServerConfig->st_XVer.pStl_ListVer = new list; if (NULL == pSt_ServerConfig->st_XVer.pStl_ListVer) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_MALLOC; - return FALSE; + return false; } Json::Value st_JsonXVer = st_JsonRoot["XVer"]; for (unsigned int i = 0; i < st_JsonXVer.size(); i++) { pSt_ServerConfig->st_XVer.pStl_ListVer->push_back(st_JsonXVer[i].asCString()); } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleConfigure_Json_OPenccFile @@ -210,15 +210,15 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, X 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE_OPENCCCONFIG* pSt_OPenccConfig) +bool CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE_OPENCCCONFIG* pSt_OPenccConfig) { - Config_IsErrorOccur = FALSE; + Config_IsErrorOccur = false; if ((NULL == lpszConfigFile) || (NULL == pSt_OPenccConfig)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -227,9 +227,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigF FILE* pSt_File = _xtfopen(lpszConfigFile, _X("rb")); if (NULL == pSt_File) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_OPENFILE; - return FALSE; + return false; } size_t nCount = 0; XCHAR tszMsgBuffer[4096]; @@ -247,9 +247,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigF std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARSE; - return FALSE; + return false; } _tcsxcpy(pSt_OPenccConfig->tszFiles2t, st_JsonRoot["tszFiles2t"].asCString()); _tcsxcpy(pSt_OPenccConfig->tszFilet2s, st_JsonRoot["tszFilet2s"].asCString()); @@ -265,7 +265,7 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigF _tcsxcpy(pSt_OPenccConfig->tszFilet2jp, st_JsonRoot["tszFilet2jp"].asCString()); _tcsxcpy(pSt_OPenccConfig->tszFilejp2t, st_JsonRoot["tszFilejp2t"].asCString()); _tcsxcpy(pSt_OPenccConfig->tszFiletw2t, st_JsonRoot["tszFiletw2t"].asCString()); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleConfigure_Json_QRCodeFile @@ -285,15 +285,15 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigF 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE_QRCODECONFIG* pSt_QRCodeConfig) +bool CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE_QRCODECONFIG* pSt_QRCodeConfig) { - Config_IsErrorOccur = FALSE; + Config_IsErrorOccur = false; if ((NULL == lpszConfigFile) || (NULL == pSt_QRCodeConfig)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -302,9 +302,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigF FILE* pSt_File = _xtfopen(lpszConfigFile, _X("rb")); if (NULL == pSt_File) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_OPENFILE; - return FALSE; + return false; } size_t nCount = 0; XCHAR tszMsgBuffer[4096]; @@ -322,15 +322,15 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigF std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARSE; - return FALSE; + return false; } _tcsxcpy(pSt_QRCodeConfig->tszModelDetect, st_JsonRoot["tszModelDetect"].asCString()); _tcsxcpy(pSt_QRCodeConfig->tszModelSr, st_JsonRoot["tszModelSr"].asCString()); _tcsxcpy(pSt_QRCodeConfig->tszProtoDetect, st_JsonRoot["tszProtoDetect"].asCString()); _tcsxcpy(pSt_QRCodeConfig->tszProtoSr, st_JsonRoot["tszProtoSr"].asCString()); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleConfigure_Json_PluginFile @@ -350,15 +350,15 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigF 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig) +bool CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig) { - Config_IsErrorOccur = FALSE; + Config_IsErrorOccur = false; if ((NULL == lpszConfigFile) || (NULL == pSt_PluginConfig)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -367,9 +367,9 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigF FILE* pSt_File = _xtfopen(lpszConfigFile, _X("rb")); if (NULL == pSt_File) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_OPENFILE; - return FALSE; + return false; } size_t nCount = 0; XCHAR tszMsgBuffer[4096]; @@ -387,17 +387,17 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigF std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError)) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_PARSE; - return FALSE; + return false; } //申请内存 pSt_PluginConfig->pStl_ListPlugin = new list; if (NULL == pSt_PluginConfig->pStl_ListPlugin) { - Config_IsErrorOccur = TRUE; + Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_MALLOC; - return FALSE; + return false; } //解析列表 Json::Value st_JsonArray = st_JsonRoot["PluginArray"]; @@ -423,5 +423,5 @@ XBOOL CModuleConfigure_Json::ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigF _tcsxcpy(st_PluginInfo.tszPluginMethod, st_JsonArray[i]["PluginMethod"].asCString()); pSt_PluginConfig->pStl_ListPlugin->push_back(st_PluginInfo); } - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.h b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.h index 5b81023..24495db 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.h +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.h @@ -17,10 +17,10 @@ public: CModuleConfigure_Json(); ~CModuleConfigure_Json(); public: - XBOOL ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVICECONFIG* pSt_ServerConfig); - XBOOL ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE_OPENCCCONFIG* pSt_OPenccConfig); - XBOOL ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE_QRCODECONFIG* pSt_QRCodeConfig); - XBOOL ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig); + bool ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVICECONFIG* pSt_ServerConfig); + bool ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE_OPENCCCONFIG* pSt_OPenccConfig); + bool ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE_QRCODECONFIG* pSt_QRCodeConfig); + bool ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigFile, XENGINE_PLUGINCONFIG* pSt_PluginConfig); protected: private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp b/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp index 15b0e80..594ff21 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/dllmain.cpp @@ -1,7 +1,7 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -XBOOL APIENTRY DllMain( HMODULE hModule, +bool APIENTRY DllMain( HMODULE hModule, XLONG ul_reason_for_call, XPVOID lpReserved ) @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return true; } diff --git a/XEngine_Source/XEngine_ModuleConfigure/pch.cpp b/XEngine_Source/XEngine_ModuleConfigure/pch.cpp index 579874d..f3c383d 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/pch.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出函数实现 // History: *********************************************************************/ -XBOOL Config_IsErrorOccur = FALSE; +bool Config_IsErrorOccur = false; XLONG Config_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////// CModuleConfigure_Json m_ConfigJson; @@ -29,19 +29,19 @@ extern "C" XLONG ModuleConfigure_GetLastError(int* pInt_ErrorCode) /************************************************************************/ /* 配置文件读取 */ /************************************************************************/ -extern "C" XBOOL ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVICECONFIG * pSt_ServerConfig) +extern "C" bool ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XENGINE_SERVICECONFIG * pSt_ServerConfig) { return m_ConfigJson.ModuleConfigure_Json_File(lpszConfigFile, pSt_ServerConfig); } -extern "C" XBOOL ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE_OPENCCCONFIG * pSt_OPenccConfig) +extern "C" bool ModuleConfigure_Json_OPenccFile(LPCXSTR lpszConfigFile, XENGINE_OPENCCCONFIG * pSt_OPenccConfig) { return m_ConfigJson.ModuleConfigure_Json_OPenccFile(lpszConfigFile, pSt_OPenccConfig); } -extern "C" XBOOL ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE_QRCODECONFIG * pSt_QRCodeConfig) +extern "C" bool ModuleConfigure_Json_QRCodeFile(LPCXSTR lpszConfigFile, XENGINE_QRCODECONFIG * pSt_QRCodeConfig) { return m_ConfigJson.ModuleConfigure_Json_QRCodeFile(lpszConfigFile, pSt_QRCodeConfig); } -extern "C" XBOOL ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigFile, XENGINE_PLUGINCONFIG * pSt_PluginConfig) +extern "C" bool ModuleConfigure_Json_PluginFile(LPCXSTR lpszConfigFile, XENGINE_PLUGINCONFIG * pSt_PluginConfig) { return m_ConfigJson.ModuleConfigure_Json_PluginFile(lpszConfigFile, pSt_PluginConfig); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleConfigure/pch.h b/XEngine_Source/XEngine_ModuleConfigure/pch.h index 9f407ba..82a39fd 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/pch.h +++ b/XEngine_Source/XEngine_ModuleConfigure/pch.h @@ -36,7 +36,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern XBOOL Config_IsErrorOccur; +extern bool Config_IsErrorOccur; extern XLONG Config_dwErrorCode; #ifdef _MSC_BUILD diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h index e3e7fb0..9263ba5 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h @@ -30,7 +30,7 @@ extern "C" XLONG ModuleDB_GetLastError(int *pInt_SysError = NULL); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector); +extern "C" bool ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector); /******************************************************************** 函数名称:ModuleDatabase_IDCard_Destory 函数功能:销毁 @@ -39,7 +39,7 @@ extern "C" XBOOL ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBC 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_IDCard_Destory(); +extern "C" bool ModuleDatabase_IDCard_Destory(); /******************************************************************** 函数名称:ModuleDatabase_IDCard_QueryRegion 函数功能:查询身份证位置信息 @@ -58,7 +58,7 @@ extern "C" XBOOL ModuleDatabase_IDCard_Destory(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION * pSt_IDRegion, XENGINE_IDCARDINFO * pSt_IDInfo); +extern "C" bool ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION * pSt_IDRegion, XENGINE_IDCARDINFO * pSt_IDInfo); /************************************************************************/ /* 导出的银行卡信息函数 */ /************************************************************************/ @@ -75,7 +75,7 @@ extern "C" XBOOL ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION * pSt_IDRegi 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector); +extern "C" bool ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector); /******************************************************************** 函数名称:ModuleDatabase_Bank_Destory 函数功能:销毁 @@ -84,7 +84,7 @@ extern "C" XBOOL ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBCon 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_Bank_Destory(); +extern "C" bool ModuleDatabase_Bank_Destory(); /******************************************************************** 函数名称:ModuleDatabase_Bank_Query 函数功能:通过银行缩写获得银行名称 @@ -98,7 +98,7 @@ extern "C" XBOOL ModuleDatabase_Bank_Destory(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_Bank_Query(XENGINE_BANKINFO * pSt_BankInfo); +extern "C" bool ModuleDatabase_Bank_Query(XENGINE_BANKINFO * pSt_BankInfo); /************************************************************************/ /* 导出的邮编行政信息函数 */ /************************************************************************/ @@ -115,7 +115,7 @@ extern "C" XBOOL ModuleDatabase_Bank_Query(XENGINE_BANKINFO * pSt_BankInfo); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector); +extern "C" bool ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector); /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_Destory 函数功能:销毁 @@ -124,7 +124,7 @@ extern "C" XBOOL ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DB 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_ZIPCode_Destory(); +extern "C" bool ModuleDatabase_ZIPCode_Destory(); /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_QueryZIPCode 函数功能:通过邮编查询行政地址信息 @@ -138,7 +138,7 @@ extern "C" XBOOL ModuleDatabase_ZIPCode_Destory(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo); +extern "C" bool ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo); /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_QueryName 函数功能:通过行政名称查询内容 @@ -152,7 +152,7 @@ extern "C" XBOOL ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInf 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo); +extern "C" bool ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo); /************************************************************************/ /* 导出的日志服务数据库函数 */ /************************************************************************/ @@ -169,7 +169,7 @@ extern "C" XBOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); +extern "C" bool ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); /******************************************************************** 函数名称:ModuleDatabase_XLog_Destory 函数功能:销毁 @@ -178,7 +178,7 @@ extern "C" XBOOL ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConn 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_XLog_Destory(); +extern "C" bool ModuleDatabase_XLog_Destory(); /******************************************************************** 函数名称:ModuleDatabase_XLog_Create 函数功能:创建一个日志服务表 @@ -192,7 +192,7 @@ extern "C" XBOOL ModuleDatabase_XLog_Destory(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_XLog_Create(LPCXSTR lpszTableName); +extern "C" bool ModuleDatabase_XLog_Create(LPCXSTR lpszTableName); /******************************************************************** 函数名称:ModuleDatabase_XLog_Insert 函数功能:查询身份证位置信息 @@ -206,7 +206,7 @@ extern "C" XBOOL ModuleDatabase_XLog_Create(LPCXSTR lpszTableName); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo); +extern "C" bool ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo); /******************************************************************** 函数名称:ModuleDatabase_XLog_Query 函数功能:日志信息查询 @@ -240,7 +240,7 @@ extern "C" XBOOL ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, int* pInt_ListCount, LPCXSTR lpszTableName, LPCXSTR lpszTimeStart, LPCXSTR lpszTimeEnd); +extern "C" bool ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, int* pInt_ListCount, LPCXSTR lpszTableName, LPCXSTR lpszTimeStart, LPCXSTR lpszTimeEnd); /******************************************************************** 函数名称:ModuleDatabase_XLog_Delete 函数功能:删除日志表 @@ -254,7 +254,7 @@ extern "C" XBOOL ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, i 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName); +extern "C" bool ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName); /************************************************************************/ /* 导出的短连接数据库函数 */ /************************************************************************/ @@ -271,7 +271,7 @@ extern "C" XBOOL ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); +extern "C" bool ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); /******************************************************************** 函数名称:ModuleDatabase_ShortLink_Destory 函数功能:销毁 @@ -280,7 +280,7 @@ extern "C" XBOOL ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CONNECTINFO* pSt_D 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_ShortLink_Destory(); +extern "C" bool ModuleDatabase_ShortLink_Destory(); /******************************************************************** 函数名称:ModuleDatabase_ShortLink_Insert 函数功能:插入一个短连接到数据库中 @@ -294,7 +294,7 @@ extern "C" XBOOL ModuleDatabase_ShortLink_Destory(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLINK* pSt_SLinkInfo); +extern "C" bool ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLINK* pSt_SLinkInfo); /******************************************************************** 函数名称:ModuleDatabase_ShortLink_Query 函数功能:查询短连接 @@ -308,7 +308,7 @@ extern "C" XBOOL ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLINK* pSt_SLinkInf 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_ShortLink_Query(XENGINE_SHORTLINK* pSt_SLinkInfo); +extern "C" bool ModuleDatabase_ShortLink_Query(XENGINE_SHORTLINK* pSt_SLinkInfo); /******************************************************************** 函数名称:ModuleDatabase_ShortLink_Delete 函数功能:删除短连接 @@ -322,4 +322,4 @@ extern "C" XBOOL ModuleDatabase_ShortLink_Query(XENGINE_SHORTLINK* pSt_SLinkInfo 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleDatabase_ShortLink_Delete(XENGINE_SHORTLINK* pSt_SLinkInfo); \ No newline at end of file +extern "C" bool ModuleDatabase_ShortLink_Delete(XENGINE_SHORTLINK* pSt_SLinkInfo); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp index 351eace..0da876f 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp @@ -34,25 +34,25 @@ CModuleDatabase_Bank::~CModuleDatabase_Bank() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) +bool CModuleDatabase_Bank::ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if (NULL == pSt_DBConnector) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } //连接数据库 _tcsxcpy(pSt_DBConnector->tszDBName, _X("XEngine_APIInfo")); if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_Bank_Destory @@ -62,12 +62,12 @@ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Destory() +bool CModuleDatabase_Bank::ModuleDatabase_Bank_Destory() { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; DataBase_MySQL_Close(xhDBSQL); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_Bank_Query @@ -82,15 +82,15 @@ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Destory() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_BankInfo) +bool CModuleDatabase_Bank::ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_BankInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if (NULL == pSt_BankInfo) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } //查询 __int64u nLine = 0; @@ -102,19 +102,19 @@ XBOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_Bank _xstprintf(tszSQLStatement, _X("SELECT * FROM `BankList` WHERE tszBankAbridge = '%s'"), pSt_BankInfo->tszBankAbridge); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return false; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); _tcsxcpy(pSt_BankInfo->tszBankName, pptszResult[2]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.h index fc123b8..6da6943 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.h @@ -18,9 +18,9 @@ public: CModuleDatabase_Bank(); ~CModuleDatabase_Bank(); public: - XBOOL ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); - XBOOL ModuleDatabase_Bank_Destory(); - XBOOL ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_BankInfo); + bool ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); + bool ModuleDatabase_Bank_Destory(); + bool ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_BankInfo); protected: private: XNETHANDLE xhDBSQL; diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp index 38974bd..4acd167 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp @@ -34,25 +34,25 @@ CModuleDatabase_IDCard::~CModuleDatabase_IDCard() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) +bool CModuleDatabase_IDCard::ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if (NULL == pSt_DBConnector) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } //连接数据库 _tcsxcpy(pSt_DBConnector->tszDBName, _X("XEngine_APIInfo")); if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_Destory @@ -62,12 +62,12 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTI 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Destory() +bool CModuleDatabase_IDCard::ModuleDatabase_IDCard_Destory() { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; DataBase_MySQL_Close(xhDBSQL); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_QueryRegion @@ -87,14 +87,14 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_Destory() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) +bool CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; ModuleDatabase_IDCard_QueryProvincer(pSt_IDRegion, pSt_IDInfo); ModuleDatabase_IDCard_QueryCity(pSt_IDRegion, pSt_IDInfo); ModuleDatabase_IDCard_QueryCounty(pSt_IDRegion, pSt_IDInfo); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_QueryProvincer @@ -114,15 +114,15 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) +bool CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if ((NULL == pSt_IDRegion) || (NULL == pSt_IDInfo)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } //查询 __int64u nLine = 0; @@ -134,21 +134,21 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREG _xstprintf(tszSQLStatement, _X("SELECT * FROM `RegionID` WHERE code = '%02d0000'"), pSt_IDInfo->nIDProvince); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return false; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); _tcsxcpy(pSt_IDRegion->tszProvincer, pptszResult[1]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_QueryCity @@ -168,15 +168,15 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREG 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) +bool CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if ((NULL == pSt_IDRegion) || (NULL == pSt_IDInfo)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } //查询 __int64u nLine = 0; @@ -188,21 +188,21 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* _xstprintf(tszSQLStatement, _X("SELECT * FROM `RegionID` WHERE code = '%02d%02d00'"), pSt_IDInfo->nIDProvince, pSt_IDInfo->nIDCity); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return false; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); _tcsxcpy(pSt_IDRegion->tszCity, pptszResult[1]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_IDCard_QueryCounty @@ -222,15 +222,15 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) +bool CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if ((NULL == pSt_IDRegion) || (NULL == pSt_IDInfo)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } //查询 __int64u nLine = 0; @@ -242,19 +242,19 @@ XBOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION _xstprintf(tszSQLStatement, _X("SELECT * FROM `RegionID` WHERE code = '%02d%02d%02d'"), pSt_IDInfo->nIDProvince, pSt_IDInfo->nIDCity, pSt_IDInfo->nIDCounty); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return false; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); _tcsxcpy(pSt_IDRegion->tszCounty, pptszResult[1]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.h index ac9bcb9..e75a7bb 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.h @@ -18,13 +18,13 @@ public: CModuleDatabase_IDCard(); ~CModuleDatabase_IDCard(); public: - XBOOL ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); - XBOOL ModuleDatabase_IDCard_Destory(); - XBOOL ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); + bool ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); + bool ModuleDatabase_IDCard_Destory(); + bool ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); protected: - XBOOL ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); - XBOOL ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); - XBOOL ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); + bool ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); + bool ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); + bool ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION* pSt_IDRegion, XENGINE_IDCARDINFO* pSt_IDInfo); private: XNETHANDLE xhDBSQL; }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp index 33eb953..abdedf1 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.cpp @@ -34,25 +34,25 @@ CModuleDatabase_ShortLink::~CModuleDatabase_ShortLink() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) +bool CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if (NULL == pSt_DBConnector) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } //连接数据库 _tcsxcpy(pSt_DBConnector->tszDBName, _X("XEngine_APISLink")); if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_ShortLink_Destory @@ -62,12 +62,12 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CO 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Destory() +bool CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Destory() { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; DataBase_MySQL_Close(xhDBSQL); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_ShortLink_Insert @@ -82,15 +82,15 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Destory() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLINK* pSt_SLinkInfo) +bool CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLINK* pSt_SLinkInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if (NULL == pSt_SLinkInfo) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } XCHAR tszSQLStatement[2024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); @@ -98,11 +98,11 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLI _xstprintf(tszSQLStatement, _X("INSERT INTO `XEngine_ShortLink` (tszFullUrl,tszShortUrl,tszKeyUrl,tszMapUrl,tszCreateTime) VALUES('%s','%s','%s','%s','%s')"), pSt_SLinkInfo->tszFullUrl, pSt_SLinkInfo->tszShotUrl, pSt_SLinkInfo->tszKeyUrl, pSt_SLinkInfo->tszMapUrl, pSt_SLinkInfo->tszCreateTime); if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_ShortLink_Query @@ -117,15 +117,15 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLI 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Query(XENGINE_SHORTLINK* pSt_SLinkInfo) +bool CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Query(XENGINE_SHORTLINK* pSt_SLinkInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if ((NULL == pSt_SLinkInfo)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } //查询 XNETHANDLE xhTable = 0; @@ -138,15 +138,15 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Query(XENGINE_SHORTLIN _xstprintf(tszSQLStatement, _X("SELECT * FROM `XEngine_ShortLink` WHERE tszMapUrl = '%s'"), pSt_SLinkInfo->tszMapUrl); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nllLine, &nllRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } if (nllLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return false; } for (__int64u i = 0; i < nllLine; i++) { @@ -178,7 +178,7 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Query(XENGINE_SHORTLIN } } DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_ShortLink_Delete @@ -193,15 +193,15 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Query(XENGINE_SHORTLIN 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Delete(XENGINE_SHORTLINK* pSt_SLinkInfo) +bool CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Delete(XENGINE_SHORTLINK* pSt_SLinkInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if (NULL == pSt_SLinkInfo) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } XCHAR tszSQLStatement[1024]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); @@ -217,9 +217,9 @@ XBOOL CModuleDatabase_ShortLink::ModuleDatabase_ShortLink_Delete(XENGINE_SHORTLI if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.h index c48bf57..7d17e60 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ShortLink/ModuleDatabase_ShortLink.h @@ -18,11 +18,11 @@ public: CModuleDatabase_ShortLink(); ~CModuleDatabase_ShortLink(); public: - XBOOL ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); - XBOOL ModuleDatabase_ShortLink_Destory(); - XBOOL ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLINK* pSt_SLinkInfo); - XBOOL ModuleDatabase_ShortLink_Query(XENGINE_SHORTLINK* pSt_SLinkInfo); - XBOOL ModuleDatabase_ShortLink_Delete(XENGINE_SHORTLINK* pSt_SLinkInfo); + bool ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); + bool ModuleDatabase_ShortLink_Destory(); + bool ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLINK* pSt_SLinkInfo); + bool ModuleDatabase_ShortLink_Query(XENGINE_SHORTLINK* pSt_SLinkInfo); + bool ModuleDatabase_ShortLink_Delete(XENGINE_SHORTLINK* pSt_SLinkInfo); protected: private: XNETHANDLE xhDBSQL; diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp index 522ab6f..5ca75f6 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.cpp @@ -34,25 +34,25 @@ CModuleDatabase_XLog::~CModuleDatabase_XLog() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) +bool CModuleDatabase_XLog::ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if (NULL == pSt_DBConnector) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } //连接数据库 _tcsxcpy(pSt_DBConnector->tszDBName, _X("XEngine_APILog")); if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Destory @@ -62,12 +62,12 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Destory() +bool CModuleDatabase_XLog::ModuleDatabase_XLog_Destory() { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; DataBase_MySQL_Close(xhDBSQL); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Create @@ -82,15 +82,15 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Destory() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Create(LPCXSTR lpszTableName) +bool CModuleDatabase_XLog::ModuleDatabase_XLog_Create(LPCXSTR lpszTableName) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if (NULL == lpszTableName) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } XCHAR tszSQLStatement[10240]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); @@ -108,11 +108,11 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Create(LPCXSTR lpszTableName) if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Insert @@ -127,15 +127,15 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Create(LPCXSTR lpszTableName) 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo) +bool CModuleDatabase_XLog::ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if (NULL == pSt_XLogInfo) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } XCHAR tszSQLStatement[11240]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); @@ -143,11 +143,11 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLo _xstprintf(tszSQLStatement, _X("INSERT INTO `%s` (tszFileName,tszFuncName,nLogLine,nLogLevel,tszLogBuffer,tszLogTime) VALUES('%s','%s',%d,%d,'%s','%s')"), pSt_XLogInfo->tszTableName, pSt_XLogInfo->st_ProtocolLog.tszFileName, pSt_XLogInfo->st_ProtocolLog.tszFuncName, pSt_XLogInfo->st_ProtocolLog.nLogLine, pSt_XLogInfo->st_ProtocolLog.nLogLevel, pSt_XLogInfo->tszLogBuffer, pSt_XLogInfo->st_ProtocolLog.tszLogTimer); if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Query @@ -182,15 +182,15 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLo 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, int* pInt_ListCount, LPCXSTR lpszTableName, LPCXSTR lpszTimeStart, LPCXSTR lpszTimeEnd) +bool CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, int* pInt_ListCount, LPCXSTR lpszTableName, LPCXSTR lpszTimeStart, LPCXSTR lpszTimeEnd) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if ((NULL == lpszTableName) || (NULL == lpszTimeStart) || (NULL == lpszTimeEnd)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } //查询 XNETHANDLE xhTable = 0; @@ -203,15 +203,15 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_ _xstprintf(tszSQLStatement, _X("SELECT * FROM `%s` WHERE tszLogTime BETWEEN '%s' AND '%s'"), lpszTableName, lpszTimeStart, lpszTimeEnd); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nllLine, &nllRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } if (nllLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return false; } *pInt_ListCount = (int)nllLine; BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_XLogInfo, (int)nllLine, sizeof(XENGINE_XLOGINFO)); @@ -246,7 +246,7 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_ } } DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_XLog_Delete @@ -261,15 +261,15 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_ 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName) +bool CModuleDatabase_XLog::ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if (NULL == lpszTableName) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } XCHAR tszSQLStatement[10240]; memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); @@ -277,9 +277,9 @@ XBOOL CModuleDatabase_XLog::ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName) _xstprintf(tszSQLStatement, _X("DROP TABLE IF EXISTS '%s'"), lpszTableName); if (!DataBase_MySQL_Execute(xhDBSQL, tszSQLStatement)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.h index f28af3d..91eebf5 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_XLog/ModuleDatabase_XLog.h @@ -18,12 +18,12 @@ public: CModuleDatabase_XLog(); ~CModuleDatabase_XLog(); public: - XBOOL ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); - XBOOL ModuleDatabase_XLog_Destory(); - XBOOL ModuleDatabase_XLog_Create(LPCXSTR lpszTableName); - XBOOL ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo); - XBOOL ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, int* pInt_ListCount, LPCXSTR lpszTableName, LPCXSTR lpszTimeStart, LPCXSTR lpszTimeEnd); - XBOOL ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName); + bool ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); + bool ModuleDatabase_XLog_Destory(); + bool ModuleDatabase_XLog_Create(LPCXSTR lpszTableName); + bool ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO* pSt_XLogInfo); + bool ModuleDatabase_XLog_Query(XENGINE_XLOGINFO*** pppSt_XLogInfo, int* pInt_ListCount, LPCXSTR lpszTableName, LPCXSTR lpszTimeStart, LPCXSTR lpszTimeEnd); + bool ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName); protected: private: XNETHANDLE xhDBSQL; diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp index f3ba3f7..bec66a7 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp @@ -34,25 +34,25 @@ CModuleDatabase_ZIPCode::~CModuleDatabase_ZIPCode() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) +bool CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if (NULL == pSt_DBConnector) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } //连接数据库 _tcsxcpy(pSt_DBConnector->tszDBName, _X("XEngine_APIInfo")); if (!DataBase_MySQL_Connect(&xhDBSQL, pSt_DBConnector)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_Destory @@ -62,12 +62,12 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNEC 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Destory() +bool CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Destory() { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; DataBase_MySQL_Close(xhDBSQL); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_QueryZIPCode @@ -82,9 +82,9 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Destory() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo) +bool CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; //查询 __int64u nLine = 0; @@ -96,15 +96,15 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPIN _xstprintf(tszSQLStatement, _X("SELECT * FROM `AdministrativeArea` WHERE zip_code = %d"), pSt_ZIPInfo->nZipCode); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return false; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); //三个级别 省->市->区/县 @@ -132,7 +132,7 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPIN } DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_QueryName @@ -147,15 +147,15 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPIN 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo) +bool CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if (NULL == pSt_ZIPInfo) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } //查询 __int64u nLine = 0; @@ -184,22 +184,22 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* } else { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTSET; - return FALSE; + return false; } //查询内容 if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return false; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); pSt_ZIPInfo->nLevel = _ttxoi(pptszResult[5]); @@ -210,7 +210,7 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* _tcsxcpy(pSt_ZIPInfo->tszPinYin, pptszResult[6]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return true; } ////////////////////////////////////////////////////////////////////////// // 保护函数 @@ -238,15 +238,15 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParentID, XCHAR* ptszParentStr, int* pInt_ParentID /* = NULL */) +bool CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParentID, XCHAR* ptszParentStr, int* pInt_ParentID /* = NULL */) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if (NULL == ptszParentStr) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } //查询 __int64u nLine = 0; @@ -258,15 +258,15 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParen _xstprintf(tszSQLStatement, _X("SELECT * FROM `AdministrativeArea` WHERE id = %d"), nParentID); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return false; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); @@ -277,7 +277,7 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParen _tcsxcpy(ptszParentStr, pptszResult[3]); DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_ZIPCode_QueryParentByName @@ -297,15 +297,15 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParen 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByName(LPCXSTR lpszName, int* pInt_ParentID /* = NULL */) +bool CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByName(LPCXSTR lpszName, int* pInt_ParentID /* = NULL */) { - DBModule_IsErrorOccur = FALSE; + DBModule_IsErrorOccur = false; if (NULL == lpszName) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PARAMENT; - return FALSE; + return false; } //查询 __int64u nLine = 0; @@ -317,15 +317,15 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByName(LPCXSTR _xstprintf(tszSQLStatement, _X("SELECT * FROM `AdministrativeArea` WHERE name = '%s'"), lpszName); if (!DataBase_MySQL_ExecuteQuery(xhDBSQL, &xhTable, tszSQLStatement, &nLine, &nRow)) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = DataBase_GetLastError(); - return FALSE; + return false; } if (nLine <= 0) { - DBModule_IsErrorOccur = TRUE; + DBModule_IsErrorOccur = true; DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_NOTFOUND; - return FALSE; + return false; } XCHAR** pptszResult = DataBase_MySQL_GetResult(xhDBSQL, xhTable); if (NULL != pInt_ParentID) @@ -333,5 +333,5 @@ XBOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByName(LPCXSTR *pInt_ParentID = _ttxoi(pptszResult[1]); } DataBase_MySQL_FreeResult(xhDBSQL, xhTable); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.h index 2827c55..68e79b5 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.h @@ -18,13 +18,13 @@ public: CModuleDatabase_ZIPCode(); ~CModuleDatabase_ZIPCode(); public: - XBOOL ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); - XBOOL ModuleDatabase_ZIPCode_Destory(); - XBOOL ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo); - XBOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo); + bool ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector); + bool ModuleDatabase_ZIPCode_Destory(); + bool ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo); + bool ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo); protected: - XBOOL ModuleDatabase_ZIPCode_QueryParentByID(int nParentID, XCHAR* ptszParentStr, int* pInt_ParentID = NULL); - XBOOL ModuleDatabase_ZIPCode_QueryParentByName(LPCXSTR lpszName, int* pInt_ParentID = NULL); + bool ModuleDatabase_ZIPCode_QueryParentByID(int nParentID, XCHAR* ptszParentStr, int* pInt_ParentID = NULL); + bool ModuleDatabase_ZIPCode_QueryParentByName(LPCXSTR lpszName, int* pInt_ParentID = NULL); private: XNETHANDLE xhDBSQL; }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp b/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp index 15b0e80..594ff21 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/dllmain.cpp @@ -1,7 +1,7 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -XBOOL APIENTRY DllMain( HMODULE hModule, +bool APIENTRY DllMain( HMODULE hModule, XLONG ul_reason_for_call, XPVOID lpReserved ) @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return true; } diff --git a/XEngine_Source/XEngine_ModuleDatabase/pch.cpp b/XEngine_Source/XEngine_ModuleDatabase/pch.cpp index fc35659..8d822a5 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/pch.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/pch.cpp @@ -15,8 +15,8 @@ // Purpose: 导出函数实现 // History: *********************************************************************/ -XLONG DBModule_IsErrorOccur = FALSE; -XBOOL DBModule_dwErrorCode = 0; +bool DBModule_IsErrorOccur = false; +XLONG DBModule_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleDatabase_IDCard m_IDCard; CModuleDatabase_Bank m_Bank; @@ -37,99 +37,99 @@ extern "C" XLONG ModuleDB_GetLastError(int* pInt_SysError) /************************************************************************/ /* 导出的身份证地址操作函数 */ /************************************************************************/ -extern "C" XBOOL ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) +extern "C" bool ModuleDatabase_IDCard_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) { return m_IDCard.ModuleDatabase_IDCard_Init(pSt_DBConnector); } -extern "C" XBOOL ModuleDatabase_IDCard_Destory() +extern "C" bool ModuleDatabase_IDCard_Destory() { return m_IDCard.ModuleDatabase_IDCard_Destory(); } -extern "C" XBOOL ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION * pSt_IDRegion, XENGINE_IDCARDINFO * pSt_IDInfo) +extern "C" bool ModuleDatabase_IDCard_QueryRegion(XENGINE_IDREGION * pSt_IDRegion, XENGINE_IDCARDINFO * pSt_IDInfo) { return m_IDCard.ModuleDatabase_IDCard_QueryRegion(pSt_IDRegion, pSt_IDInfo); } /************************************************************************/ /* 导出的银行卡信息函数 */ /************************************************************************/ -extern "C" XBOOL ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) +extern "C" bool ModuleDatabase_Bank_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) { return m_Bank.ModuleDatabase_Bank_Init(pSt_DBConnector); } -extern "C" XBOOL ModuleDatabase_Bank_Destory() +extern "C" bool ModuleDatabase_Bank_Destory() { return m_Bank.ModuleDatabase_Bank_Destory(); } -extern "C" XBOOL ModuleDatabase_Bank_Query(XENGINE_BANKINFO * pSt_BankInfo) +extern "C" bool ModuleDatabase_Bank_Query(XENGINE_BANKINFO * pSt_BankInfo) { return m_Bank.ModuleDatabase_Bank_Query(pSt_BankInfo); } /************************************************************************/ /* 导出的邮编行政信息函数 */ /************************************************************************/ -extern "C" XBOOL ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) +extern "C" bool ModuleDatabase_ZIPCode_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) { return m_ZIPCode.ModuleDatabase_ZIPCode_Init(pSt_DBConnector); } -extern "C" XBOOL ModuleDatabase_ZIPCode_Destory() +extern "C" bool ModuleDatabase_ZIPCode_Destory() { return m_ZIPCode.ModuleDatabase_ZIPCode_Destory(); } -extern "C" XBOOL ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO * pSt_ZIPInfo) +extern "C" bool ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO * pSt_ZIPInfo) { return m_ZIPCode.ModuleDatabase_ZIPCode_QueryZIPCode(pSt_ZIPInfo); } -extern "C" XBOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO * pSt_ZIPInfo) +extern "C" bool ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO * pSt_ZIPInfo) { return m_ZIPCode.ModuleDatabase_ZIPCode_QueryName(pSt_ZIPInfo); } /************************************************************************/ /* 导出的日志服务数据库函数 */ /************************************************************************/ -extern "C" XBOOL ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) +extern "C" bool ModuleDatabase_XLog_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) { return m_XLog.ModuleDatabase_XLog_Init(pSt_DBConnector); } -extern "C" XBOOL ModuleDatabase_XLog_Destory() +extern "C" bool ModuleDatabase_XLog_Destory() { return m_XLog.ModuleDatabase_XLog_Destory(); } -extern "C" XBOOL ModuleDatabase_XLog_Create(LPCXSTR lpszTableName) +extern "C" bool ModuleDatabase_XLog_Create(LPCXSTR lpszTableName) { return m_XLog.ModuleDatabase_XLog_Create(lpszTableName); } -extern "C" XBOOL ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO * pSt_XLogInfo) +extern "C" bool ModuleDatabase_XLog_Insert(XENGINE_XLOGINFO * pSt_XLogInfo) { return m_XLog.ModuleDatabase_XLog_Insert(pSt_XLogInfo); } -extern "C" XBOOL ModuleDatabase_XLog_Query(XENGINE_XLOGINFO * **pppSt_XLogInfo, int* pInt_ListCount, LPCXSTR lpszTableName, LPCXSTR lpszTimeStart, LPCXSTR lpszTimeEnd) +extern "C" bool ModuleDatabase_XLog_Query(XENGINE_XLOGINFO * **pppSt_XLogInfo, int* pInt_ListCount, LPCXSTR lpszTableName, LPCXSTR lpszTimeStart, LPCXSTR lpszTimeEnd) { return m_XLog.ModuleDatabase_XLog_Query(pppSt_XLogInfo, pInt_ListCount, lpszTableName, lpszTimeStart, lpszTimeEnd); } -extern "C" XBOOL ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName) +extern "C" bool ModuleDatabase_XLog_Delete(LPCXSTR lpszTableName) { return m_XLog.ModuleDatabase_XLog_Delete(lpszTableName); } /************************************************************************/ /* 导出的短连接数据库函数 */ /************************************************************************/ -extern "C" XBOOL ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) +extern "C" bool ModuleDatabase_ShortLink_Init(DATABASE_MYSQL_CONNECTINFO * pSt_DBConnector) { return m_ShortLink.ModuleDatabase_ShortLink_Init(pSt_DBConnector); } -extern "C" XBOOL ModuleDatabase_ShortLink_Destory() +extern "C" bool ModuleDatabase_ShortLink_Destory() { return m_ShortLink.ModuleDatabase_ShortLink_Destory(); } -extern "C" XBOOL ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLINK * pSt_SLinkInfo) +extern "C" bool ModuleDatabase_ShortLink_Insert(XENGINE_SHORTLINK * pSt_SLinkInfo) { return m_ShortLink.ModuleDatabase_ShortLink_Insert(pSt_SLinkInfo); } -extern "C" XBOOL ModuleDatabase_ShortLink_Query(XENGINE_SHORTLINK * pSt_SLinkInfo) +extern "C" bool ModuleDatabase_ShortLink_Query(XENGINE_SHORTLINK * pSt_SLinkInfo) { return m_ShortLink.ModuleDatabase_ShortLink_Query(pSt_SLinkInfo); } -extern "C" XBOOL ModuleDatabase_ShortLink_Delete(XENGINE_SHORTLINK * pSt_SLinkInfo) +extern "C" bool ModuleDatabase_ShortLink_Delete(XENGINE_SHORTLINK * pSt_SLinkInfo) { return m_ShortLink.ModuleDatabase_ShortLink_Delete(pSt_SLinkInfo); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/pch.h b/XEngine_Source/XEngine_ModuleDatabase/pch.h index 66e3436..3587ed1 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/pch.h +++ b/XEngine_Source/XEngine_ModuleDatabase/pch.h @@ -43,8 +43,8 @@ // Purpose: // History: *********************************************************************/ -extern XLONG DBModule_IsErrorOccur; -extern XBOOL DBModule_dwErrorCode; +extern bool DBModule_IsErrorOccur; +extern XLONG DBModule_dwErrorCode; #ifdef _MSC_BUILD #pragma comment(lib,"Ws2_32") diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h index fc2645d..af2ea75 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Define.h @@ -32,7 +32,7 @@ typedef struct { XENGINE_P2XPPEER_PROTOCOL st_PeerAddr; //P2P通信的时候使用的地址(客户方使用) P2XP_TIMER_INFOMATION st_PeerTimer; //节点时间信息 - XBOOL bIsLogin; + bool bIsLogin; }XENGINE_P2XP_PEERINFO, * LPNETENGINE_P2XP_PEERINFO; ////////////////////////////////////////////////////////////////////////// /// 导出的函数 @@ -54,7 +54,7 @@ extern "C" XLONG ModuleHelp_GetLastError(int *pInt_SysError = NULL); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO* pSt_IDInfo); +extern "C" bool ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO* pSt_IDInfo); /******************************************************************** 函数名称:ModuleHelp_IDCard_CheckBirth 函数功能:检查身份证的校验码是否正确 @@ -68,7 +68,7 @@ extern "C" XBOOL ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO* pSt_IDInfo); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo); +extern "C" bool ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo); /************************************************************************/ /* 导出的语言转换帮助函数 */ /************************************************************************/ @@ -95,7 +95,7 @@ extern "C" XBOOL ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lpszSourceStr, XCHAR* ptszDestStr); +extern "C" bool ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lpszSourceStr, XCHAR* ptszDestStr); /******************************************************************** 函数名称:ModuleHelp_Translation_Convert 函数功能:翻译类型转换 @@ -114,7 +114,7 @@ extern "C" XBOOL ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lps 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, XCHAR* ptszTranslationType); +extern "C" bool ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, XCHAR* ptszTranslationType); /************************************************************************/ /* 节点管理器导出函数 */ /************************************************************************/ @@ -141,7 +141,7 @@ extern "C" XBOOL ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLAT 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, XPVOID lParam = NULL); +extern "C" bool ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, XPVOID lParam = NULL); /******************************************************************** 函数名称:ModuleHelp_P2PClient_Destory 函数功能:销毁 @@ -150,7 +150,7 @@ extern "C" XBOOL ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MOD 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_P2PClient_Destory(); +extern "C" bool ModuleHelp_P2PClient_Destory(); /******************************************************************** 函数名称:ModuleHelp_P2PClient_Add 函数功能:添加一个客户到一个节点信息 @@ -164,7 +164,7 @@ extern "C" XBOOL ModuleHelp_P2PClient_Destory(); 意思:是否添加成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO * pSt_PeerInfo); +extern "C" bool ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO * pSt_PeerInfo); /******************************************************************** 函数名称:ModuleHelp_P2PClient_Get 函数功能:获取P2P节点对应信息 @@ -183,7 +183,7 @@ extern "C" XBOOL ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO * pSt_PeerInfo); 意思:是否查找成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XP_PEERINFO * pSt_PeerInfo = NULL); +extern "C" bool ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XP_PEERINFO * pSt_PeerInfo = NULL); /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetLan 函数功能:获取局域网IP地址列表 @@ -207,7 +207,7 @@ extern "C" XBOOL ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PPro 意思:是否成功 备注:参数二需要调用基础库的BaseLib_OperatorMemory_Free函数进行内存释放 *********************************************************************/ -extern "C" XBOOL ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL * **pppSt_P2XPClient, int* pInt_ListCount); +extern "C" bool ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL * **pppSt_P2XPClient, int* pInt_ListCount); /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetLList 函数功能:获取同一公网下所有局域网主IP列表 @@ -231,7 +231,7 @@ extern "C" XBOOL ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL * pSt_P2P 意思:是否成功 备注:参数二需要调用基础库的BaseLib_OperatorMemory_Free函数进行内存释放 *********************************************************************/ -extern "C" XBOOL ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR * **pppszP2XPClient, int* pInt_ListCount); +extern "C" bool ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR * **pppszP2XPClient, int* pInt_ListCount); /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetWList 函数功能:获取所有连接到的公网地址列表 @@ -250,7 +250,7 @@ extern "C" XBOOL ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR * **pp 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_P2PClient_GetWList(XCHAR * **pppszP2XPClient, int* pInt_ListCount); +extern "C" bool ModuleHelp_P2PClient_GetWList(XCHAR * **pppszP2XPClient, int* pInt_ListCount); /******************************************************************** 函数名称:ModuleHelp_P2PClient_Delete 函数功能:删除一个指定的节点 @@ -264,7 +264,7 @@ extern "C" XBOOL ModuleHelp_P2PClient_GetWList(XCHAR * **pppszP2XPClient, int* p 意思:是否成功删除 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol); +extern "C" bool ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol); /******************************************************************** 函数名称:ModuleHelp_P2PClient_DelAll 函数功能:清空节点列表数据 @@ -273,7 +273,7 @@ extern "C" XBOOL ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL * pSt_P2P 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_P2PClient_DelAll(); +extern "C" bool ModuleHelp_P2PClient_DelAll(); /******************************************************************** 函数名称:ModuleHelp_P2PClient_Heart 函数功能:触发一次心跳 @@ -287,7 +287,7 @@ extern "C" XBOOL ModuleHelp_P2PClient_DelAll(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol); +extern "C" bool ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol); /************************************************************************/ /* 分布式锁导出函数 */ /************************************************************************/ @@ -304,7 +304,7 @@ extern "C" XBOOL ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PPr 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_Locker_Create(XNETHANDLE* pxhToken); +extern "C" bool ModuleHelp_Locker_Create(XNETHANDLE* pxhToken); /******************************************************************** 函数名称:ModuleHelp_Locker_OPen 函数功能:打开一个锁 @@ -318,7 +318,7 @@ extern "C" XBOOL ModuleHelp_Locker_Create(XNETHANDLE* pxhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_Locker_OPen(XNETHANDLE xhToken); +extern "C" bool ModuleHelp_Locker_OPen(XNETHANDLE xhToken); /******************************************************************** 函数名称:ModuleHelp_Locker_ReadLock 函数功能:读加锁 @@ -332,7 +332,7 @@ extern "C" XBOOL ModuleHelp_Locker_OPen(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken); +extern "C" bool ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken); /******************************************************************** 函数名称:ModuleHelp_Locker_ReadUNLock 函数功能:读解锁 @@ -346,7 +346,7 @@ extern "C" XBOOL ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken); +extern "C" bool ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken); /******************************************************************** 函数名称:ModuleHelp_Locker_WriteLock 函数功能:写加锁 @@ -360,7 +360,7 @@ extern "C" XBOOL ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken); +extern "C" bool ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken); /******************************************************************** 函数名称:ModuleHelp_Locker_WriteUNLock 函数功能:写解锁 @@ -374,7 +374,7 @@ extern "C" XBOOL ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken); +extern "C" bool ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken); /******************************************************************** 函数名称:ModuleHelp_Locker_Close 函数功能:关闭锁 @@ -388,7 +388,7 @@ extern "C" XBOOL ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_Locker_Close(XNETHANDLE xhToken); +extern "C" bool ModuleHelp_Locker_Close(XNETHANDLE xhToken); /************************************************************************/ /* 二维码导出函数 */ /************************************************************************/ @@ -410,7 +410,7 @@ extern "C" XBOOL ModuleHelp_Locker_Close(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer); +extern "C" bool ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer); /******************************************************************** 函数名称:ModuleHelp_QRCode_QREncodecMemory 函数功能:编码数据为二维码格式PNG图片 @@ -440,7 +440,7 @@ extern "C" XBOOL ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR l 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt); +extern "C" bool ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt); /******************************************************************** 函数名称:ModuleHelp_QRCode_QRDecodecFile 函数功能:从文件解码二维码 @@ -479,7 +479,7 @@ extern "C" XBOOL ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR* 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); +extern "C" bool ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); /******************************************************************** 函数名称:ModuleHelp_QRCode_QRDecodecMemory 函数功能:从内存解析二维码 @@ -523,7 +523,7 @@ extern "C" XBOOL ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR* pt 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); +extern "C" bool ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); /************************************************************************/ /* 网络测试导出函数 */ /************************************************************************/ @@ -555,7 +555,7 @@ extern "C" XBOOL ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffer, int nM 意思:成功返回连接的句柄,失败返回NULL 备注:链接测试函数,链接一次后就关闭 *********************************************************************/ -extern "C" XBOOL ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_RECONNECT* pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, XPVOID lParam = NULL); +extern "C" bool ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_RECONNECT* pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, XPVOID lParam = NULL); /******************************************************************** 函数名称:ModuleHelp_SocketTest_GetConnect 函数功能:获取是否在处理中 @@ -574,7 +574,7 @@ extern "C" XBOOL ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULE 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, XBOOL* pbRun); +extern "C" bool ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, bool* pbRun); /******************************************************************** 函数名称:ModuleHelp_SocketTest_StopConnect 函数功能:停止短连接测试 @@ -588,7 +588,7 @@ extern "C" XBOOL ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, XBOOL* pbR 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken); +extern "C" bool ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken); /******************************************************************** 函数名称:ModuleHelp_SocketTest_StartDatas 函数功能:数据包测试函数 @@ -617,7 +617,7 @@ extern "C" XBOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP = TRUE, XPVOID lParam = NULL); +extern "C" bool ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, bool bTCP = true, XPVOID lParam = NULL); /******************************************************************** 函数名称:ModuleHelp_SocketTest_GetDatas 函数功能:获取是否在处理中 @@ -636,7 +636,7 @@ extern "C" XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHE 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, XBOOL* pbRun); +extern "C" bool ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, bool* pbRun); /************************************************************************ 函数名称:ModuleHelp_SocketTest_DatasStop 函数功能:停止大数据包测试 @@ -650,4 +650,4 @@ extern "C" XBOOL ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, XBOOL* pbRun 意思:是否成功 备注: ************************************************************************/ -extern "C" XBOOL ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken); \ No newline at end of file +extern "C" bool ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp index 9b4fb69..b1617d5 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.cpp @@ -34,35 +34,35 @@ CModuleHelp_IDCard::~CModuleHelp_IDCard() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO *pSt_IDInfo) +bool CModuleHelp_IDCard::ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO *pSt_IDInfo) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if (NULL == pSt_IDInfo) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_PARAMENT; - return FALSE; + return false; } if (pSt_IDInfo->nBirthYear < 1949 || pSt_IDInfo->nBirthYear > 2999) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_FMT; - return FALSE; + return false; } if (pSt_IDInfo->nBirthMonth < 1 || pSt_IDInfo->nBirthMonth > 12) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_FMT; - return FALSE; + return false; } if (pSt_IDInfo->nBirthDay < 1 || pSt_IDInfo->nBirthDay > 31) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_FMT; - return FALSE; + return false; } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_IDCard_CheckBirth @@ -77,15 +77,15 @@ XBOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO *pSt_I 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo) +bool CModuleHelp_IDCard::ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if (NULL == pSt_IDInfo) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_PARAMENT; - return FALSE; + return false; } int nCheck = 0; int nIDArray[18]; @@ -103,9 +103,9 @@ XBOOL CModuleHelp_IDCard::ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDI } if ((nIDArray[17] != nTable[nCheck % 11]) && (pSt_IDInfo->nCheck != 'x' || nTable[nCheck % 11] != 2)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_IDCARD_SUM; - return FALSE; + return false; } - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.h index 8f47379..f816401 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_IDCard/ModuleHelp_IDCard.h @@ -18,7 +18,7 @@ public: CModuleHelp_IDCard(); ~CModuleHelp_IDCard(); public: - XBOOL ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO* pSt_IDInfo); - XBOOL ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo); + bool ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO* pSt_IDInfo); + bool ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO* pSt_IDInfo); private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp index f75d342..0c95e61 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.cpp @@ -44,32 +44,32 @@ CModuleHelp_Language::~CModuleHelp_Language() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_Language::ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lpszSourceStr, XCHAR* ptszDestStr) +bool CModuleHelp_Language::ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lpszSourceStr, XCHAR* ptszDestStr) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if ((NULL == lpszJsonFile) || (NULL == lpszSourceStr) || (NULL == ptszDestStr)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_PARAMENT; - return FALSE; + return false; } opencc_t m_OPencc = opencc_open(lpszJsonFile); if ((opencc_t)-1 == m_OPencc) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_FAILED; - return FALSE; + return false; } if ((size_t)-1 == opencc_convert_utf8_to_buffer(m_OPencc, lpszSourceStr, strlen(lpszSourceStr), ptszDestStr)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_NOTSUPPORT; - return FALSE; + return false; } opencc_close(m_OPencc); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_Translation_Convert @@ -89,15 +89,15 @@ XBOOL CModuleHelp_Language::ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_Language::ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, XCHAR* ptszTranslationType) +bool CModuleHelp_Language::ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, XCHAR* ptszTranslationType) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if (NULL == ptszTranslationType) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_PARAMENT; - return FALSE; + return false; } //转换为服务需要的类型 if (ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE_AUTO == enTranslationType) @@ -154,9 +154,9 @@ XBOOL CModuleHelp_Language::ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVI } else { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LANGUAGE_NOTSUPPORT; - return FALSE; + return false; } - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.h index f906dcf..f42bc05 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Language/ModuleHelp_Language.h @@ -17,7 +17,7 @@ public: CModuleHelp_Language(); ~CModuleHelp_Language(); public: - XBOOL ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lpszSourceStr, XCHAR* ptszDestStr); - XBOOL ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, XCHAR* ptszTranslationType); + bool ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lpszSourceStr, XCHAR* ptszDestStr); + bool ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, XCHAR* ptszTranslationType); private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp index c0cc4f5..60e8a5a 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.cpp @@ -34,22 +34,22 @@ CModuleHelp_Locker::~CModuleHelp_Locker() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Create(XNETHANDLE* pxhToken) +bool CModuleHelp_Locker::ModuleHelp_Locker_Create(XNETHANDLE* pxhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if (NULL == pxhToken) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_PARAMENT; - return FALSE; + return false; } MODULEHELP_LOCKINFO *pSt_LockInfo = new MODULEHELP_LOCKINFO; if (NULL == pSt_LockInfo) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_MALLOC; - return FALSE; + return false; } pSt_LockInfo->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_NOTUSED; @@ -58,7 +58,7 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Create(XNETHANDLE* pxhToken) st_Locker.lock(); stl_MapLocker.insert(make_pair(*pxhToken, pSt_LockInfo)); st_Locker.unlock(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_Locker_OPen @@ -73,35 +73,35 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Create(XNETHANDLE* pxhToken) 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_Locker::ModuleHelp_Locker_OPen(XNETHANDLE xhToken) +bool CModuleHelp_Locker::ModuleHelp_Locker_OPen(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator != stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_EXIST; st_Locker.unlock_shared(); - return FALSE; + return false; } st_Locker.unlock_shared(); //不存在插入 MODULEHELP_LOCKINFO* pSt_LockInfo = new MODULEHELP_LOCKINFO; if (NULL == pSt_LockInfo) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_MALLOC; - return FALSE; + return false; } pSt_LockInfo->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_NOTUSED; st_Locker.lock(); stl_MapLocker.insert(make_pair(xhToken, pSt_LockInfo)); st_Locker.unlock(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_Locker_ReadLock @@ -116,33 +116,33 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_OPen(XNETHANDLE xhToken) 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken) +bool CModuleHelp_Locker::ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator == stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return false; } //判断锁状态,如果是写,返回错误 if (ENUM_MODULEHELP_LOCKSTATUS_WRITE == stl_MapIterator->second->enLockStatus) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_LOCKED; st_Locker.unlock_shared(); - return FALSE; + return false; } //没有加锁,开始加锁 stl_MapIterator->second->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_READ; st_Locker.unlock_shared(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_Locker_ReadUNLock @@ -157,32 +157,32 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken) 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken) +bool CModuleHelp_Locker::ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator == stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return false; } //是不是READ锁定,不是返回错误 if (ENUM_MODULEHELP_LOCKSTATUS_READ != stl_MapIterator->second->enLockStatus) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_STATUS; st_Locker.unlock_shared(); - return FALSE; + return false; } stl_MapIterator->second->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_NOTUSED; st_Locker.unlock_shared(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_Locker_WriteLock @@ -197,32 +197,32 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken) 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken) +bool CModuleHelp_Locker::ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator == stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return false; } //有没有锁定状态 if ((ENUM_MODULEHELP_LOCKSTATUS_READ == stl_MapIterator->second->enLockStatus) || (ENUM_MODULEHELP_LOCKSTATUS_WRITE == stl_MapIterator->second->enLockStatus)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_LOCKED; st_Locker.unlock_shared(); - return FALSE; + return false; } stl_MapIterator->second->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_WRITE; st_Locker.unlock_shared(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_Locker_WriteUNLock @@ -237,32 +237,32 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken) 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken) +bool CModuleHelp_Locker::ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; //看看存在不存在 st_Locker.lock_shared(); auto stl_MapIterator = stl_MapLocker.find(xhToken); if (stl_MapIterator == stl_MapLocker.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return false; } //有没有锁定状态 if (ENUM_MODULEHELP_LOCKSTATUS_WRITE == stl_MapIterator->second->enLockStatus) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_LOCK_STATUS; st_Locker.unlock_shared(); - return FALSE; + return false; } stl_MapIterator->second->enLockStatus = ENUM_MODULEHELP_LOCKSTATUS_NOTUSED; st_Locker.unlock_shared(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_Locker_Close @@ -277,9 +277,9 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken) 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Close(XNETHANDLE xhToken) +bool CModuleHelp_Locker::ModuleHelp_Locker_Close(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; //看看存在不存在 st_Locker.lock(); @@ -291,5 +291,5 @@ XBOOL CModuleHelp_Locker::ModuleHelp_Locker_Close(XNETHANDLE xhToken) stl_MapLocker.erase(stl_MapIterator); } st_Locker.unlock(); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.h index 22a7dfe..4b97beb 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_Locker/ModuleHelp_Locker.h @@ -29,13 +29,13 @@ public: CModuleHelp_Locker(); ~CModuleHelp_Locker(); public: - XBOOL ModuleHelp_Locker_Create(XNETHANDLE* pxhToken); - XBOOL ModuleHelp_Locker_OPen(XNETHANDLE xhToken); - XBOOL ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken); - XBOOL ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken); - XBOOL ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken); - XBOOL ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken); - XBOOL ModuleHelp_Locker_Close(XNETHANDLE xhToken); + bool ModuleHelp_Locker_Create(XNETHANDLE* pxhToken); + bool ModuleHelp_Locker_OPen(XNETHANDLE xhToken); + bool ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken); + bool ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken); + bool ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken); + bool ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken); + bool ModuleHelp_Locker_Close(XNETHANDLE xhToken); private: shared_mutex st_Locker; private: diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp index 3ae40f0..5dacd2a 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.cpp @@ -43,11 +43,11 @@ CModuleHelp_P2PClient::~CModuleHelp_P2PClient() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, XPVOID lParam /* = NULL */) +bool CModuleHelp_P2PClient::ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, XPVOID lParam /* = NULL */) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; - m_bIsRun = TRUE; + m_bIsRun = true; m_nTimeout = nTimeout; m_lParam = lParam; lpCall_P2PClient = fpCall_P2PClient; @@ -55,11 +55,11 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_AP pSTDThread = make_shared(ModuleHelp_P2PClient_Thread, this); if (NULL == pSTDThread) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_THREAD; - return FALSE; + return false; } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Destory @@ -69,19 +69,19 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_AP 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Destory() +bool CModuleHelp_P2PClient::ModuleHelp_P2PClient_Destory() { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if (m_bIsRun) { - m_bIsRun = FALSE; + m_bIsRun = false; if (pSTDThread->joinable()) { pSTDThread->join(); } } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Add @@ -96,9 +96,9 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Destory() 意思:是否添加成功 备注: *********************************************************************/ -XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt_PeerInfo) +bool CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt_PeerInfo) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; st_Locker.lock(); unordered_map > >::iterator stl_MapIteratorAddr = stl_MapClients.find(pSt_PeerInfo->st_PeerAddr.tszPublicAddr); @@ -116,9 +116,9 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt if (!BaseLib_OperatorIPAddr_IsIPV4Addr(pSt_PeerInfo->st_PeerAddr.tszPrivateAddr, &st_LibAddr)) { //没有内网地址不加入. - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = BaseLib_GetLastError(); - return FALSE; + return false; } _xstprintf(tszPrivateAddr, _X("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); //然后加入到私网地址 @@ -139,9 +139,9 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt if (!BaseLib_OperatorIPAddr_IsIPV4Addr(pSt_PeerInfo->st_PeerAddr.tszPrivateAddr, &st_LibAddr)) { //没有内网地址不加入. - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = BaseLib_GetLastError(); - return FALSE; + return false; } //内网地址192.168.1.2 内网出口192.168.1.1 链接地址10.0.1.0:13444 _xstprintf(tszPrivateAddr, _X("%d.%d.%d"), st_LibAddr.nIPAddr1, st_LibAddr.nIPAddr2, st_LibAddr.nIPAddr3); @@ -166,7 +166,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt } } st_Locker.unlock(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Get @@ -186,25 +186,25 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt 意思:是否查找成功 备注: *********************************************************************/ -XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL *pSt_P2PProtocol, XENGINE_P2XP_PEERINFO* pSt_PeerInfo /* = NULL */) +bool CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL *pSt_P2PProtocol, XENGINE_P2XP_PEERINFO* pSt_PeerInfo /* = NULL */) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if (NULL == pSt_P2PProtocol) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return FALSE; + return false; } //查找元素 st_Locker.lock_shared(); unordered_map > >::const_iterator stl_MapPubIterator = stl_MapClients.find(pSt_P2PProtocol->tszPublicAddr); if (stl_MapPubIterator == stl_MapClients.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return false; } //转换地址 XENGINE_LIBADDR st_LibAddr; @@ -219,18 +219,18 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL unordered_map >::const_iterator stl_MapPriIterator = stl_MapPubIterator->second.find(tszPrivateAddr); if (stl_MapPriIterator == stl_MapPubIterator->second.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return false; } unordered_map::const_iterator stl_MapConnIterator = stl_MapPriIterator->second.find(pSt_P2PProtocol->tszConnectAddr); if (stl_MapConnIterator == stl_MapPriIterator->second.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return false; } //判断是否导出节点信息 if (NULL != pSt_PeerInfo) @@ -238,7 +238,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL *pSt_PeerInfo = stl_MapConnIterator->second; } st_Locker.unlock_shared(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetLan @@ -263,25 +263,25 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL 意思:是否成功 备注:参数二需要调用基础库的BaseLib_OperatorMemory_Free函数进行内存释放 *********************************************************************/ -XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL*** pppSt_P2XPClient, int* pInt_ListCount) +bool CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL*** pppSt_P2XPClient, int* pInt_ListCount) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if ((NULL == pSt_P2PProtocol) || (NULL == pppSt_P2XPClient) || (NULL == pInt_ListCount)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return FALSE; + return false; } //查找公网IP地址 st_Locker.lock_shared(); unordered_map > >::const_iterator stl_MapPubIterator = stl_MapClients.find(pSt_P2PProtocol->tszPublicAddr); if (stl_MapPubIterator == stl_MapClients.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTPUBADDRR; st_Locker.unlock_shared(); - return FALSE; + return false; } XENGINE_LIBADDR st_LibAddr; XCHAR tszPrivateAddr[64]; @@ -295,17 +295,17 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOC unordered_map >::const_iterator stl_MapPriIterator = stl_MapPubIterator->second.find(tszPrivateAddr); if (stl_MapPriIterator == stl_MapPubIterator->second.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTPRIADDR; st_Locker.unlock_shared(); - return FALSE; + return false; } if (stl_MapPriIterator->second.empty()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOLIST; st_Locker.unlock_shared(); - return FALSE; + return false; } BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_P2XPClient, stl_MapPriIterator->second.size(), sizeof(XENGINE_P2XPPEER_PROTOCOL)); unordered_map::const_iterator stl_MapConnIterator = stl_MapPriIterator->second.begin(); @@ -320,17 +320,17 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOC unordered_map >::const_iterator stl_MapPriIterator = stl_MapPubIterator->second.find(pSt_P2PProtocol->tszPrivateAddr); if (stl_MapPriIterator == stl_MapPubIterator->second.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTPRIADDR; st_Locker.unlock_shared(); - return FALSE; + return false; } if (stl_MapPriIterator->second.empty()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOLIST; st_Locker.unlock_shared(); - return FALSE; + return false; } BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_P2XPClient, stl_MapPriIterator->second.size(), sizeof(XENGINE_P2XPPEER_PROTOCOL)); unordered_map::const_iterator stl_MapConnIterator = stl_MapPriIterator->second.begin(); @@ -341,7 +341,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOC *pInt_ListCount = stl_MapPriIterator->second.size(); } st_Locker.unlock_shared(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetLList @@ -366,24 +366,24 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOC 意思:是否成功 备注:参数二需要调用基础库的BaseLib_OperatorMemory_Free函数进行内存释放 *********************************************************************/ -XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR*** pppszP2XPClient, int* pInt_ListCount) +bool CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR*** pppszP2XPClient, int* pInt_ListCount) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if ((NULL == lpszPubAddr) || (NULL == pppszP2XPClient) || (NULL == pInt_ListCount)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return FALSE; + return false; } st_Locker.lock_shared(); unordered_map > >::const_iterator stl_MapPubIterator = stl_MapClients.find(lpszPubAddr); if (stl_MapPubIterator == stl_MapClients.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return false; } BaseLib_OperatorMemory_Malloc((XPPPMEM)pppszP2XPClient, stl_MapPubIterator->second.size(), 128); unordered_map >::const_iterator stl_MapPriIterator = stl_MapPubIterator->second.begin(); @@ -393,7 +393,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, } *pInt_ListCount = stl_MapPubIterator->second.size(); st_Locker.unlock_shared(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_GetWList @@ -413,21 +413,21 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetWList(XCHAR*** pppszP2XPClient, int* pInt_ListCount) +bool CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetWList(XCHAR*** pppszP2XPClient, int* pInt_ListCount) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if ((NULL == pppszP2XPClient) || (NULL == pInt_ListCount)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return FALSE; + return false; } if (stl_MapClients.size() <= 0) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; - return FALSE; + return false; } BaseLib_OperatorMemory_Malloc((XPPPMEM)pppszP2XPClient, stl_MapClients.size(), 128); @@ -439,7 +439,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetWList(XCHAR*** pppszP2XPCli } *pInt_ListCount = stl_MapClients.size(); st_Locker.unlock_shared(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Delete @@ -454,9 +454,9 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_GetWList(XCHAR*** pppszP2XPCli 意思:是否成功删除 备注: *********************************************************************/ -XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol) +bool CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; //查找公网地址 unordered_map > >::iterator stl_MapPubIteartor = stl_MapClients.find(pSt_P2PProtocol->tszPublicAddr); if (stl_MapPubIteartor != stl_MapClients.end()) @@ -492,7 +492,7 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOC stl_MapClients.erase(stl_MapPubIteartor); //如果这个公有网络IP地址列表为空,那么就删除他. } } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_DelAll @@ -502,15 +502,15 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOC 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_DelAll() +bool CModuleHelp_P2PClient::ModuleHelp_P2PClient_DelAll() { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; st_Locker.lock(); stl_MapClients.clear(); st_Locker.unlock(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_P2PClient_Heart @@ -525,25 +525,25 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_DelAll() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol) +bool CModuleHelp_P2PClient::ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if (NULL == pSt_P2PProtocol) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_PARAMENT; - return FALSE; + return false; } //查找元素 st_Locker.lock_shared(); unordered_map > >::iterator stl_MapPubIterator = stl_MapClients.find(pSt_P2PProtocol->tszPublicAddr); if (stl_MapPubIterator == stl_MapClients.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return false; } //转换地址 XENGINE_LIBADDR st_LibAddr; @@ -558,22 +558,22 @@ XBOOL CModuleHelp_P2PClient::ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCO unordered_map >::iterator stl_MapPriIterator = stl_MapPubIterator->second.find(tszPrivateAddr); if (stl_MapPriIterator == stl_MapPubIterator->second.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return false; } unordered_map::iterator stl_MapConnIterator = stl_MapPriIterator->second.find(pSt_P2PProtocol->tszConnectAddr); if (stl_MapConnIterator == stl_MapPriIterator->second.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_P2P_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return false; } stl_MapConnIterator->second.st_PeerTimer.dwUserTime = time(NULL); st_Locker.unlock_shared(); - return TRUE; + return true; } ////////////////////////////////////////////////////////////////////////// // 保护函数 diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.h index d20b4c4..2856750 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_P2PClient/ModuleHelp_P2PClient.h @@ -16,20 +16,20 @@ public: CModuleHelp_P2PClient(); ~CModuleHelp_P2PClient(); public: - XBOOL ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, XPVOID lParam = NULL); - XBOOL ModuleHelp_P2PClient_Destory(); - XBOOL ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt_PeerInfo); - XBOOL ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XENGINE_P2XP_PEERINFO* pSt_PeerInfo = NULL); - XBOOL ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL*** pppSt_P2XPClient, int* pInt_ListCount); - XBOOL ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR*** pppszP2XPClient, int* pInt_ListCount); - XBOOL ModuleHelp_P2PClient_GetWList(XCHAR*** pppszP2XPClient, int* pInt_ListCount); - XBOOL ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol); - XBOOL ModuleHelp_P2PClient_DelAll(); - XBOOL ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol); + bool ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, XPVOID lParam = NULL); + bool ModuleHelp_P2PClient_Destory(); + bool ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO* pSt_PeerInfo); + bool ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XENGINE_P2XP_PEERINFO* pSt_PeerInfo = NULL); + bool ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL*** pppSt_P2XPClient, int* pInt_ListCount); + bool ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR*** pppszP2XPClient, int* pInt_ListCount); + bool ModuleHelp_P2PClient_GetWList(XCHAR*** pppszP2XPClient, int* pInt_ListCount); + bool ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol); + bool ModuleHelp_P2PClient_DelAll(); + bool ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol); protected: static XHTHREAD CALLBACK ModuleHelp_P2PClient_Thread(XPVOID lParam); private: - XBOOL m_bIsRun; + bool m_bIsRun; int m_nTimeout; XPVOID m_lParam; CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT lpCall_P2PClient; diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp index 6fc87ac..f9fbdf3 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.cpp @@ -41,24 +41,24 @@ CModuleHelp_QRCode::~CModuleHelp_QRCode() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer) +bool CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if ((NULL == lpszFileName) || (NULL == lpszMsgBuffer)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_PARAMENT; - return FALSE; + return false; } #ifdef _MSC_BUILD //使用qrencode进行字符串编码 QRcode* pSt_QRCodec = QRcode_encodeString(lpszMsgBuffer, 0, QR_ECLEVEL_H, QR_MODE_8, 1); if (NULL == pSt_QRCodec) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_FAILED; - return FALSE; + return false; } cv::Mat m_SrcFrame; //转换数据 @@ -76,16 +76,16 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, cv::cvtColor(m_SrcFrame, m_SrcFrame, cv::COLOR_GRAY2BGR); if (!cv::imwrite(lpszFileName, m_SrcFrame)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_WRITE; - return FALSE; + return false; } #else - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTSUPPORT; - return FALSE; + return false; #endif - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_QRCode_QREncodecMemory @@ -115,24 +115,24 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt) +bool CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if ((NULL == lpszMsgBuffer) || (NULL == ptszMsgBuffer)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_PARAMENT; - return FALSE; + return false; } #ifdef _MSC_BUILD //使用qrencode进行字符串编码 QRcode* pSt_QRCodec = QRcode_encodeString(lpszMsgBuffer, 0, QR_ECLEVEL_H, QR_MODE_8, 1); if (NULL == pSt_QRCodec) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_FAILED; - return FALSE; + return false; } cv::Mat m_SrcFrame; vector stl_VecImg; @@ -152,9 +152,9 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffe //是否成功 if (!cv::imencode(lpszFmt, m_SrcFrame, stl_VecImg)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_FAILED; - return FALSE; + return false; } *pInt_MsgLen = stl_VecImg.size(); for (int i = 0; i < (*pInt_MsgLen); i++) @@ -162,11 +162,11 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffe ptszMsgBuffer[i] = stl_VecImg[i]; } #else - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTSUPPORT; - return FALSE; + return false; #endif - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_QRCode_QRDecodecFile @@ -206,15 +206,15 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffe 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) +bool CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if ((NULL == lpszFileName) || (NULL == ptszMsgBuffer)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_PARAMENT; - return FALSE; + return false; } #ifdef _MSC_BUILD cv::Mat m_Frame; @@ -224,26 +224,26 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, //是否成功 if (m_Frame.empty()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_EMPTY; - return FALSE; + return false; } m_QRDetector = cv::makePtr(lpszDetectProto, lpszDetectModel, lpszSrProto, lpszSrModel); vector stl_VectorQRList = m_QRDetector->detectAndDecode(m_Frame, m_MatPoint); if (stl_VectorQRList.empty()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTQR; - return FALSE; + return false; } strcpy(ptszMsgBuffer, stl_VectorQRList[0].c_str()); #else - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTSUPPORT; - return FALSE; + return false; #endif - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_QRCode_QRDecodecMemory @@ -288,15 +288,15 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) +bool CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if ((NULL == lpszMsgBuffer) || (NULL == ptszMsgBuffer)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_PARAMENT; - return FALSE; + return false; } #ifdef _MSC_BUILD cv::Mat m_Frame; @@ -308,24 +308,24 @@ XBOOL CModuleHelp_QRCode::ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffe //是否成功 if (m_Frame.empty()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_EMPTY; - return FALSE; + return false; } m_QRDetector = cv::makePtr(lpszDetectProto, lpszDetectModel, lpszSrProto, lpszSrModel); vector stl_VectorQRList = m_QRDetector->detectAndDecode(m_Frame, m_MatPoint); if (stl_VectorQRList.empty()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTQR; - return FALSE; + return false; } strcpy(ptszMsgBuffer, stl_VectorQRList[0].c_str()); #else - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_QRCODE_NOTSUPPORT; - return FALSE; + return false; #endif - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.h index 98f30bb..dc30943 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_QRCode/ModuleHelp_QRCode.h @@ -17,10 +17,10 @@ public: CModuleHelp_QRCode(); ~CModuleHelp_QRCode(); public: - XBOOL ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer); - XBOOL ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt); - XBOOL ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); - XBOOL ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); + bool ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer); + bool ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt); + bool ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); + bool ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR* ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel); protected: private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp index 9523398..b25e0ce 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.cpp @@ -48,26 +48,26 @@ CModuleHelp_SocketTest::~CModuleHelp_SocketTest() 意思:成功返回连接的句柄,失败返回NULL 备注:链接测试函数,链接一次后就关闭 *********************************************************************/ -XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_RECONNECT* pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, XPVOID lParam /* = NULL */) +bool CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_RECONNECT* pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, XPVOID lParam /* = NULL */) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if ((NULL == pSt_ReConnect) || (NULL == fpCall_ReConnect)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_PARAMRT; - return FALSE; + return false; } MODULEHELP_SOCKETTEST_CONNINFO* pSt_ConnSocket = new MODULEHELP_SOCKETTEST_CONNINFO; if (NULL == pSt_ConnSocket) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_MALLOC; - return FALSE; + return false; } memset(pSt_ConnSocket, '\0', sizeof(MODULEHELP_SOCKETTEST_CONNINFO)); //结构体赋值 - pSt_ConnSocket->bIsRun = TRUE; + pSt_ConnSocket->bIsRun = true; pSt_ConnSocket->lParam = lParam; pSt_ConnSocket->lpCall_ReConnect = fpCall_ReConnect; BaseLib_OperatorHandle_Create(&pSt_ConnSocket->xhToken); @@ -76,15 +76,15 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxh pSt_ConnSocket->pSTDThread = make_shared(ModuleHelp_SocketTest_ThreadConn, pSt_ConnSocket); if (NULL == pSt_ConnSocket->pSTDThread) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_THREAD; - return FALSE; + return false; } *pxhToken = pSt_ConnSocket->xhToken; st_LockConn.lock(); stl_MapConnTest.insert(make_pair(pSt_ConnSocket->xhToken, pSt_ConnSocket)); st_LockConn.unlock(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_SocketTest_GetConnect @@ -104,22 +104,22 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxh 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, XBOOL* pbRun) +bool CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, bool* pbRun) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; st_LockConn.lock_shared(); unordered_map::iterator stl_MapIterator = stl_MapConnTest.find(xhToken); if (stl_MapIterator == stl_MapConnTest.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_NOTFOUND; st_LockConn.unlock_shared(); - return FALSE; + return false; } *pbRun = stl_MapIterator->second->bIsRun; st_LockConn.unlock_shared(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_SocketTest_StopConnect @@ -134,15 +134,15 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToke 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken) +bool CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; st_LockConn.lock(); unordered_map::iterator stl_MapIterator = stl_MapConnTest.find(xhToken); if (stl_MapIterator != stl_MapConnTest.end()) { - stl_MapIterator->second->bIsRun = FALSE; + stl_MapIterator->second->bIsRun = false; stl_MapIterator->second->pSTDThread->join(); if (NULL != stl_MapIterator->second->lParam) @@ -157,7 +157,7 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhTok stl_MapConnTest.erase(stl_MapIterator); } st_LockConn.unlock(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_SocketTest_StartDatas @@ -187,24 +187,24 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhTok 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP /* = TRUE */, XPVOID lParam /* = NULL */) +bool CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, bool bTCP /* = true */, XPVOID lParam /* = NULL */) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; if ((NULL == pSt_SocketDatas) || (NULL == fpCall_DataTest)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_PARAMRT; - return FALSE; + return false; } MODULEHELP_SOCKETTEST_DATAINFO *pSt_DataSocket = new MODULEHELP_SOCKETTEST_DATAINFO; if (NULL == pSt_DataSocket) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_MALLOC; - return FALSE; + return false; } - pSt_DataSocket->bIsRun = TRUE; + pSt_DataSocket->bIsRun = true; pSt_DataSocket->bIsTCP = bTCP; pSt_DataSocket->lParam = lParam; pSt_DataSocket->lpCall_TestDatas = fpCall_DataTest; @@ -215,33 +215,33 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhTo { if (!XClient_TCPSelect_Create(&pSt_DataSocket->hSocket, pSt_SocketDatas->st_REConnect.tszAddr, pSt_SocketDatas->st_REConnect.nPort)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = XClient_GetLastError(); - return FALSE; + return false; } } else { if (!XClient_UDPSelect_Create(&pSt_DataSocket->hSocket)) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = XClient_GetLastError(); - return FALSE; + return false; } } //创建线程 pSt_DataSocket->pSTDThread = make_shared(ModuleHelp_SocketTest_ThreadData, pSt_DataSocket); if (!pSt_DataSocket->pSTDThread->joinable()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_THREAD; - return FALSE; + return false; } *pxhToken = pSt_DataSocket->xhToken; st_LockData.lock(); stl_MapDataTest.insert(make_pair(pSt_DataSocket->xhToken, pSt_DataSocket)); st_LockData.unlock(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleHelp_SocketTest_GetDatas @@ -261,22 +261,22 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhTo 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, XBOOL* pbRun) +bool CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, bool* pbRun) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; st_LockData.lock_shared(); unordered_map::iterator stl_MapIterator = stl_MapDataTest.find(xhToken); if (stl_MapIterator == stl_MapDataTest.end()) { - ModuleHelp_IsErrorOccur = TRUE; + ModuleHelp_IsErrorOccur = true; ModuleHelp_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_HELP_SOCKETTEST_NOTFOUND; st_LockData.unlock_shared(); - return FALSE; + return false; } *pbRun = stl_MapIterator->second->bIsRun; st_LockData.unlock_shared(); - return TRUE; + return true; } /************************************************************************ 函数名称:ModuleHelp_SocketTest_DatasStop @@ -291,16 +291,16 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, 意思:是否成功 备注: ************************************************************************/ -XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken) +bool CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken) { - ModuleHelp_IsErrorOccur = FALSE; + ModuleHelp_IsErrorOccur = false; st_LockData.unlock(); unordered_map::iterator stl_MapIterator = stl_MapDataTest.find(xhToken); if (stl_MapIterator != stl_MapDataTest.end()) { //关闭客户端 - stl_MapIterator->second->bIsRun = FALSE; + stl_MapIterator->second->bIsRun = false; stl_MapIterator->second->pSTDThread->join(); XClient_TCPSelect_Close(stl_MapIterator->second->hSocket); @@ -316,7 +316,7 @@ XBOOL CModuleHelp_SocketTest::ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken stl_MapDataTest.erase(stl_MapIterator); } st_LockData.unlock(); - return TRUE; + return true; } ////////////////////////////////////////////////////////////////////////// // 线程函数 @@ -328,7 +328,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadConn(XPVOID lParam) __int64x nSucess = 0; __int64x nNumber = 0; - while (TRUE) + while (true) { if ((nNumber >= pSt_ReConnect->st_SocketConn.nConnectTest) && (-1 != pSt_ReConnect->st_SocketConn.nConnectTest)) { @@ -355,7 +355,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadConn(XPVOID lParam) std::this_thread::sleep_for(std::chrono::milliseconds(pSt_ReConnect->st_SocketConn.nCloseWaitContTime)); } pSt_ReConnect->lpCall_ReConnect(pSt_ReConnect->xhToken, pSt_ReConnect->st_SocketConn.tszAddr, pSt_ReConnect->st_SocketConn.nPort, nNumber, nFailed, nSucess, 2, pSt_ReConnect->lParam); - pSt_ReConnect->bIsRun = FALSE; + pSt_ReConnect->bIsRun = false; return 0; } XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) @@ -365,7 +365,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) __int64x nSucess = 0; __int64x nNumber = 0; - while (TRUE) + while (true) { if ((nNumber >= pSt_DataSocket->st_SocketData.st_REConnect.nConnectTest) && (-1 != pSt_DataSocket->st_SocketData.st_REConnect.nConnectTest)) { @@ -376,7 +376,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) break; } //发送数据 - XBOOL bRet = FALSE; + bool bRet = false; if (pSt_DataSocket->bIsTCP) { bRet = XClient_TCPSelect_SendMsg(pSt_DataSocket->hSocket, pSt_DataSocket->st_SocketData.tszSDBuffer, pSt_DataSocket->st_SocketData.nSDLen); @@ -391,7 +391,7 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) if (pSt_DataSocket->st_SocketData.nRVLen > 0) { //是否需要可读判断 - if (XClient_OPTSocket_IOSelect(pSt_DataSocket->hSocket, TRUE, pSt_DataSocket->st_SocketData.st_REConnect.nContWaitTime)) + if (XClient_OPTSocket_IOSelect(pSt_DataSocket->hSocket, true, pSt_DataSocket->st_SocketData.st_REConnect.nContWaitTime)) { //接受数据 int nMsgLen = pSt_DataSocket->st_SocketData.nRVLen; @@ -429,6 +429,6 @@ XHTHREAD CModuleHelp_SocketTest::ModuleHelp_SocketTest_ThreadData(XPVOID lParam) std::this_thread::sleep_for(std::chrono::milliseconds(pSt_DataSocket->st_SocketData.st_REConnect.nCloseWaitContTime)); } pSt_DataSocket->lpCall_TestDatas(pSt_DataSocket->xhToken, pSt_DataSocket->st_SocketData.st_REConnect.tszAddr, pSt_DataSocket->st_SocketData.st_REConnect.nPort, nNumber, nFailed, nSucess, 2, pSt_DataSocket->lParam); - pSt_DataSocket->bIsRun = FALSE; + pSt_DataSocket->bIsRun = false; return 0; } diff --git a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h index 88b51e5..b20b7cb 100644 --- a/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h +++ b/XEngine_Source/XEngine_ModuleHelp/ModuleHelp_SocketTest/ModuleHelp_SocketTest.h @@ -15,8 +15,8 @@ typedef struct MODULEHELP_SOCKETTEST_DATAS st_SocketData; XNETHANDLE xhToken; //句柄 XSOCKET hSocket; - XBOOL bIsTCP; - XBOOL bIsRun; //是否运行 + bool bIsTCP; + bool bIsRun; //是否运行 shared_ptr pSTDThread; XPVOID lParam; @@ -26,7 +26,7 @@ typedef struct { MODULEHELP_SOCKETTEST_RECONNECT st_SocketConn; XNETHANDLE xhToken; //句柄 - XBOOL bIsRun; //是否运行 + bool bIsRun; //是否运行 shared_ptr pSTDThread; //线程句柄 XPVOID lParam; @@ -41,13 +41,13 @@ public: ~CModuleHelp_SocketTest(); public: //链接测试 - XBOOL ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_RECONNECT* pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, XPVOID lParam = NULL); - XBOOL ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, XBOOL* pbRun); - XBOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken); + bool ModuleHelp_SocketTest_StartConnect(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_RECONNECT* pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, XPVOID lParam = NULL); + bool ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, bool* pbRun); + bool ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken); //数据包压力测试 - XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP = TRUE, XPVOID lParam = NULL); - XBOOL ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, XBOOL* pbRun); - XBOOL ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken); + bool ModuleHelp_SocketTest_StartDatas(XNETHANDLE* pxhToken, MODULEHELP_SOCKETTEST_DATAS* pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, bool bTCP = true, XPVOID lParam = NULL); + bool ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, bool* pbRun); + bool ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken); protected: static XHTHREAD ModuleHelp_SocketTest_ThreadConn(XPVOID lParam); //反复连接测试线程 static XHTHREAD ModuleHelp_SocketTest_ThreadData(XPVOID lParam); //大数据包长连接测试 diff --git a/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp b/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp index 15b0e80..594ff21 100644 --- a/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/dllmain.cpp @@ -1,7 +1,7 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -XBOOL APIENTRY DllMain( HMODULE hModule, +bool APIENTRY DllMain( HMODULE hModule, XLONG ul_reason_for_call, XPVOID lpReserved ) @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return true; } diff --git a/XEngine_Source/XEngine_ModuleHelp/pch.cpp b/XEngine_Source/XEngine_ModuleHelp/pch.cpp index 5e713e4..a4d121e 100644 --- a/XEngine_Source/XEngine_ModuleHelp/pch.cpp +++ b/XEngine_Source/XEngine_ModuleHelp/pch.cpp @@ -16,7 +16,7 @@ // Purpose: 导出函数实现 // History: *********************************************************************/ -XBOOL ModuleHelp_IsErrorOccur = FALSE; +bool ModuleHelp_IsErrorOccur = false; XLONG ModuleHelp_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleHelp_IDCard m_IDCard; @@ -39,142 +39,142 @@ extern "C" XLONG ModuleHelp_GetLastError(int* pInt_SysError) /************************************************************************/ /* 导出的身份证帮助函数 */ /************************************************************************/ -extern "C" XBOOL ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO * pSt_IDInfo) +extern "C" bool ModuleHelp_IDCard_CheckBirth(XENGINE_IDCARDINFO * pSt_IDInfo) { return m_IDCard.ModuleHelp_IDCard_CheckBirth(pSt_IDInfo); } -extern "C" XBOOL ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO * pSt_IDInfo) +extern "C" bool ModuleHelp_IDCard_CheckSum(XENGINE_IDCARDINFO * pSt_IDInfo) { return m_IDCard.ModuleHelp_IDCard_CheckSum(pSt_IDInfo); } /************************************************************************/ /* 导出的语言转换帮助函数 */ /************************************************************************/ -extern "C" XBOOL ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lpszSourceStr, XCHAR * ptszDestStr) +extern "C" bool ModuleHelp_Language_ConvertZh(LPCXSTR lpszJsonFile, LPCXSTR lpszSourceStr, XCHAR * ptszDestStr) { return m_Language.ModuleHelp_Language_ConvertZh(lpszJsonFile, lpszSourceStr, ptszDestStr); } -extern "C" XBOOL ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, XCHAR * ptszTranslationType) +extern "C" bool ModuleHelp_Translation_Convert(ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE enTranslationType, XCHAR * ptszTranslationType) { return m_Language.ModuleHelp_Translation_Convert(enTranslationType, ptszTranslationType); } /************************************************************************/ /* 导出的P2P客户端帮助函数 */ /************************************************************************/ -extern "C" XBOOL ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, XPVOID lParam) +extern "C" bool ModuleHelp_P2PClient_Init(int nTimeout, CALLBACK_APISERVICE_MODULE_HELP_P2PCLIENT fpCall_P2PClient, XPVOID lParam) { return m_P2PClient.ModuleHelp_P2PClient_Init(nTimeout, fpCall_P2PClient, lParam); } -extern "C" XBOOL ModuleHelp_P2PClient_Destory() +extern "C" bool ModuleHelp_P2PClient_Destory() { return m_P2PClient.ModuleHelp_P2PClient_Destory(); } -extern "C" XBOOL ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO * pSt_PeerInfo) +extern "C" bool ModuleHelp_P2PClient_Add(XENGINE_P2XP_PEERINFO * pSt_PeerInfo) { return m_P2PClient.ModuleHelp_P2PClient_Add(pSt_PeerInfo); } -extern "C" XBOOL ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XP_PEERINFO * pSt_PeerInfo /* = NULL */) +extern "C" bool ModuleHelp_P2PClient_Get(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XP_PEERINFO * pSt_PeerInfo /* = NULL */) { return m_P2PClient.ModuleHelp_P2PClient_Get(pSt_P2PProtocol, pSt_PeerInfo); } -extern "C" XBOOL ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL * **pppSt_P2XPClient, int* pInt_ListCount) +extern "C" bool ModuleHelp_P2PClient_GetLan(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol, XENGINE_P2XPPEER_PROTOCOL * **pppSt_P2XPClient, int* pInt_ListCount) { return m_P2PClient.ModuleHelp_P2PClient_GetLan(pSt_P2PProtocol, pppSt_P2XPClient, pInt_ListCount); } -extern "C" XBOOL ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR * **pppszP2XPClient, int* pInt_ListCount) +extern "C" bool ModuleHelp_P2PClient_GetLList(LPCXSTR lpszPubAddr, XCHAR * **pppszP2XPClient, int* pInt_ListCount) { return m_P2PClient.ModuleHelp_P2PClient_GetLList(lpszPubAddr, pppszP2XPClient, pInt_ListCount); } -extern "C" XBOOL ModuleHelp_P2PClient_GetWList(XCHAR * **pppszP2XPClient, int* pInt_ListCount) +extern "C" bool ModuleHelp_P2PClient_GetWList(XCHAR * **pppszP2XPClient, int* pInt_ListCount) { return m_P2PClient.ModuleHelp_P2PClient_GetWList(pppszP2XPClient, pInt_ListCount); } -extern "C" XBOOL ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol) +extern "C" bool ModuleHelp_P2PClient_Delete(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol) { return m_P2PClient.ModuleHelp_P2PClient_Delete(pSt_P2PProtocol); } -extern "C" XBOOL ModuleHelp_P2PClient_DelAll() +extern "C" bool ModuleHelp_P2PClient_DelAll() { return m_P2PClient.ModuleHelp_P2PClient_DelAll(); } -extern "C" XBOOL ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol) +extern "C" bool ModuleHelp_P2PClient_Heart(XENGINE_P2XPPEER_PROTOCOL * pSt_P2PProtocol) { return m_P2PClient.ModuleHelp_P2PClient_Heart(pSt_P2PProtocol); } /************************************************************************/ /* 分布式锁导出函数 */ /************************************************************************/ -extern "C" XBOOL ModuleHelp_Locker_Create(XNETHANDLE * pxhToken) +extern "C" bool ModuleHelp_Locker_Create(XNETHANDLE * pxhToken) { return m_Locker.ModuleHelp_Locker_Create(pxhToken); } -extern "C" XBOOL ModuleHelp_Locker_OPen(XNETHANDLE xhToken) +extern "C" bool ModuleHelp_Locker_OPen(XNETHANDLE xhToken) { return m_Locker.ModuleHelp_Locker_OPen(xhToken); } -extern "C" XBOOL ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken) +extern "C" bool ModuleHelp_Locker_ReadLock(XNETHANDLE xhToken) { return m_Locker.ModuleHelp_Locker_ReadLock(xhToken); } -extern "C" XBOOL ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken) +extern "C" bool ModuleHelp_Locker_ReadUNLock(XNETHANDLE xhToken) { return m_Locker.ModuleHelp_Locker_ReadUNLock(xhToken); } -extern "C" XBOOL ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken) +extern "C" bool ModuleHelp_Locker_WriteLock(XNETHANDLE xhToken) { return m_Locker.ModuleHelp_Locker_WriteLock(xhToken); } -extern "C" XBOOL ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken) +extern "C" bool ModuleHelp_Locker_WriteUNLock(XNETHANDLE xhToken) { return m_Locker.ModuleHelp_Locker_WriteUNLock(xhToken); } -extern "C" XBOOL ModuleHelp_Locker_Close(XNETHANDLE xhToken) +extern "C" bool ModuleHelp_Locker_Close(XNETHANDLE xhToken) { return m_Locker.ModuleHelp_Locker_Close(xhToken); } /************************************************************************/ /* 二维码导出函数 */ /************************************************************************/ -extern "C" XBOOL ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer) +extern "C" bool ModuleHelp_QRCode_QREncodecFile(LPCXSTR lpszFileName, LPCXSTR lpszMsgBuffer) { return m_QRCode.ModuleHelp_QRCode_QREncodecFile(lpszFileName, lpszMsgBuffer); } -extern "C" XBOOL ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt) +extern "C" bool ModuleHelp_QRCode_QREncodecMemory(LPCXSTR lpszMsgBuffer, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszFmt) { return m_QRCode.ModuleHelp_QRCode_QREncodecMemory(lpszMsgBuffer, ptszMsgBuffer, pInt_MsgLen, lpszFmt); } -extern "C" XBOOL ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR * ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) +extern "C" bool ModuleHelp_QRCode_QRDecodecFile(LPCXSTR lpszFileName, XCHAR * ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) { return m_QRCode.ModuleHelp_QRCode_QRDecodecFile(lpszFileName, ptszMsgBuffer, lpszDetectProto, lpszDetectModel, lpszSrProto, lpszSrModel); } -extern "C" XBOOL ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR * ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) +extern "C" bool ModuleHelp_QRCode_QRDecodecMemory(LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR * ptszMsgBuffer, LPCXSTR lpszDetectProto, LPCXSTR lpszDetectModel, LPCXSTR lpszSrProto, LPCXSTR lpszSrModel) { return m_QRCode.ModuleHelp_QRCode_QRDecodecMemory(lpszMsgBuffer, nMsgLen, ptszMsgBuffer, lpszDetectProto, lpszDetectModel, lpszSrProto, lpszSrModel); } /************************************************************************/ /* 网络测试导出函数 */ /************************************************************************/ -extern "C" XBOOL ModuleHelp_SocketTest_StartConnect(XNETHANDLE * pxhToken, MODULEHELP_SOCKETTEST_RECONNECT * pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, XPVOID lParam) +extern "C" bool ModuleHelp_SocketTest_StartConnect(XNETHANDLE * pxhToken, MODULEHELP_SOCKETTEST_RECONNECT * pSt_ReConnect, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_ReConnect, XPVOID lParam) { return m_SocketTest.ModuleHelp_SocketTest_StartConnect(pxhToken, pSt_ReConnect, fpCall_ReConnect, lParam); } -extern "C" XBOOL ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, XBOOL * pbRun) +extern "C" bool ModuleHelp_SocketTest_GetConnect(XNETHANDLE xhToken, bool * pbRun) { return m_SocketTest.ModuleHelp_SocketTest_GetConnect(xhToken, pbRun); } -extern "C" XBOOL ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken) +extern "C" bool ModuleHelp_SocketTest_StopConnect(XNETHANDLE xhToken) { return m_SocketTest.ModuleHelp_SocketTest_StopConnect(xhToken); } -extern "C" XBOOL ModuleHelp_SocketTest_StartDatas(XNETHANDLE * pxhToken, MODULEHELP_SOCKETTEST_DATAS * pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, XBOOL bTCP, XPVOID lParam) +extern "C" bool ModuleHelp_SocketTest_StartDatas(XNETHANDLE * pxhToken, MODULEHELP_SOCKETTEST_DATAS * pSt_SocketDatas, CALLBACK_APISERVICE_MODULE_HELP_SOCKETTEST fpCall_DataTest, bool bTCP, XPVOID lParam) { return m_SocketTest.ModuleHelp_SocketTest_StartDatas(pxhToken, pSt_SocketDatas, fpCall_DataTest, bTCP, lParam); } -extern "C" XBOOL ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, XBOOL * pbRun) +extern "C" bool ModuleHelp_SocketTest_GetDatas(XNETHANDLE xhToken, bool * pbRun) { return m_SocketTest.ModuleHelp_SocketTest_GetDatas(xhToken, pbRun); } -extern "C" XBOOL ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken) +extern "C" bool ModuleHelp_SocketTest_StopDatas(XNETHANDLE xhToken) { return m_SocketTest.ModuleHelp_SocketTest_StopDatas(xhToken); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleHelp/pch.h b/XEngine_Source/XEngine_ModuleHelp/pch.h index b64cad7..d03db04 100644 --- a/XEngine_Source/XEngine_ModuleHelp/pch.h +++ b/XEngine_Source/XEngine_ModuleHelp/pch.h @@ -52,7 +52,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern XBOOL ModuleHelp_IsErrorOccur; +extern bool ModuleHelp_IsErrorOccur; extern XLONG ModuleHelp_dwErrorCode; #ifdef _MSC_BUILD diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Define.h b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Define.h index 26a764b..8fb7101 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Define.h +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Define.h @@ -25,7 +25,7 @@ extern "C" XLONG ModulePlugin_GetLastError(int* pInt_SysError = NULL); 意思:是否成功初始化 备注: *********************************************************************/ -extern "C" XBOOL ModulePlugin_LibCore_Init(); +extern "C" bool ModulePlugin_LibCore_Init(); /******************************************************************** 函数名称:ModulePlugin_LibCore_Push 函数功能:添加一个标准的插件到插件框架中 @@ -49,7 +49,7 @@ extern "C" XBOOL ModulePlugin_LibCore_Init(); 意思:是否成功添加 备注: *********************************************************************/ -extern "C" XBOOL ModulePlugin_LibCore_Push(XNETHANDLE * pxhNet, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); +extern "C" bool ModulePlugin_LibCore_Push(XNETHANDLE * pxhNet, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); /******************************************************************** 函数名称:ModulePlugin_LibCore_Exec 函数功能:执行一次 @@ -98,7 +98,7 @@ extern "C" XBOOL ModulePlugin_LibCore_Push(XNETHANDLE * pxhNet, LPCXSTR lpszPlug 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer = NULL, int nMsgLen = 0); +extern "C" bool ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer = NULL, int nMsgLen = 0); /******************************************************************** 函数名称:ModulePlugin_LibCore_Destroy 函数功能:销毁插件核心并且清理资源 @@ -107,7 +107,7 @@ extern "C" XBOOL ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR * **pppHDR 意思:是否成功销毁 备注: *********************************************************************/ -extern "C" XBOOL ModulePlugin_LibCore_Destroy(); +extern "C" bool ModulePlugin_LibCore_Destroy(); /********************************************************************************* * LUA插件框架导出函数定义 * *********************************************************************************/ @@ -119,7 +119,7 @@ extern "C" XBOOL ModulePlugin_LibCore_Destroy(); 意思:是否成功初始化 备注: *********************************************************************/ -extern "C" XBOOL ModulePlugin_LuaCore_Init(); +extern "C" bool ModulePlugin_LuaCore_Init(); /******************************************************************** 函数名称:ModulePlugin_LuaCore_Push 函数功能:添加一个标准的插件到插件框架中 @@ -143,7 +143,7 @@ extern "C" XBOOL ModulePlugin_LuaCore_Init(); 意思:是否成功添加 备注: *********************************************************************/ -extern "C" XBOOL ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); +extern "C" bool ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); /******************************************************************** 函数名称:ModulePlugin_LuaCore_Exec 函数功能:执行一次 @@ -192,7 +192,7 @@ extern "C" XBOOL ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPl 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer = NULL, int nMsgLen = 0); +extern "C" bool ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer = NULL, int nMsgLen = 0); /******************************************************************** 函数名称:ModulePlugin_LuaCore_Destroy 函数功能:销毁插件核心并且清理资源 @@ -201,7 +201,7 @@ extern "C" XBOOL ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRL 意思:是否成功销毁 备注: *********************************************************************/ -extern "C" XBOOL ModulePlugin_LuaCore_Destroy(); +extern "C" bool ModulePlugin_LuaCore_Destroy(); /********************************************************************************* * 加载器导出函数定义 * *********************************************************************************/ @@ -228,7 +228,7 @@ extern "C" XBOOL ModulePlugin_LuaCore_Destroy(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lpszModuleName, int nType = 0); +extern "C" bool ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lpszModuleName, int nType = 0); /******************************************************************** 函数名称:ModulePlugin_Loader_Find 函数功能:查找方法是否注册 @@ -247,7 +247,7 @@ extern "C" XBOOL ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lp 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type); +extern "C" bool ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type); /******************************************************************** 函数名称:ModulePlugin_Loader_Exec 函数功能:执行一次插件 @@ -286,7 +286,7 @@ extern "C" XBOOL ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen); +extern "C" bool ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen); /******************************************************************** 函数名称:ModulePlugin_Loader_Destory 函数功能:销毁加载器 @@ -295,4 +295,4 @@ extern "C" XBOOL ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR * **pppH 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModulePlugin_Loader_Destory(); \ No newline at end of file +extern "C" bool ModulePlugin_Loader_Destory(); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp index 14fa3a9..2920199 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.cpp @@ -13,7 +13,7 @@ *********************************************************************/ CModulePlugin_LibCore::CModulePlugin_LibCore() { - bIsInit = FALSE; + bIsInit = false; } CModulePlugin_LibCore::~CModulePlugin_LibCore() { @@ -29,19 +29,19 @@ CModulePlugin_LibCore::~CModulePlugin_LibCore() 意思:是否成功初始化 备注: *********************************************************************/ -XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Init() +bool CModulePlugin_LibCore::ModulePlugin_LibCore_Init() { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = false; //判断是否初始化 if (bIsInit) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_ISINITED; - return FALSE; + return false; } //启动线程 - bIsInit = TRUE; - return TRUE; + bIsInit = true; + return true; } /******************************************************************** 函数名称:ModulePlugin_LibCore_Push @@ -66,21 +66,21 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Init() 意思:是否成功添加 备注: *********************************************************************/ -XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) +bool CModulePlugin_LibCore::ModulePlugin_LibCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = false; if (!BaseLib_OperatorHandle_Create(pxhModule)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = BaseLib_GetLastError(); - return FALSE; + return false; } if (!ModulePlugin_LibCore_Add(*pxhModule, lpszPluginFile, lParam)) { - return FALSE; + return false; } - return TRUE; + return true; } /******************************************************************** 函数名称:ModulePlugin_LibCore_Exec @@ -130,30 +130,30 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Push(XNETHANDLE* pxhModule, LP 意思:是否成功 备注: *********************************************************************/ -XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer /* = NULL */, int nMsgLen /* = 0 */) +bool CModulePlugin_LibCore::ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer /* = NULL */, int nMsgLen /* = 0 */) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = false; st_csStl.lock_shared(); //执行指定插件函数 unordered_map::const_iterator stl_MapIterator = stl_MapFrameWork.find(xhModule); if (stl_MapIterator == stl_MapFrameWork.end()) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_NOTFOUND; st_csStl.unlock_shared(); - return FALSE; + return false; } if (!stl_MapIterator->second.fpCall_PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBufer, nMsgLen)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = stl_MapIterator->second.fpCall_PluginCore_GetLastError(); st_csStl.unlock_shared(); - return FALSE; + return false; } st_csStl.unlock_shared(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModulePlugin_LibCore_Destroy @@ -163,16 +163,16 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHA 意思:是否成功销毁 备注: *********************************************************************/ -XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Destroy() +bool CModulePlugin_LibCore::ModulePlugin_LibCore_Destroy() { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = false; //判断是否初始化 if (!bIsInit) { - return TRUE; + return true; } - bIsInit = FALSE; + bIsInit = false; //清理STL元素空间 st_csStl.lock(); unordered_map::iterator stl_MapIterator = stl_MapFrameWork.begin(); @@ -187,7 +187,7 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Destroy() } stl_MapFrameWork.clear(); st_csStl.unlock(); - return TRUE; + return true; } ////////////////////////////////////////////////////////////////////////// // 保护函数 @@ -215,15 +215,15 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Destroy() 意思:是否成功执行 备注: *********************************************************************/ -XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam) +bool CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = false; if (NULL == lpszPluginFile) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return FALSE; + return false; } PLUGINCORE_FRAMEWORK st_FrameWork; st_FrameWork.mhFile = 0; @@ -236,9 +236,9 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #endif if (NULL == st_FrameWork.mhFile) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_OPENDL; - return FALSE; + return false; } //开始查找模块中的函数 #ifdef _MSC_BUILD @@ -253,9 +253,9 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPINIT; - return FALSE; + return false; } #ifdef _MSC_BUILD st_FrameWork.fpCall_PluginCore_UnInit = (FPCall_PluginCore_UnInit)GetProcAddress(st_FrameWork.mhFile, "PluginCore_UnInit"); @@ -269,9 +269,9 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPUNINIT; - return FALSE; + return false; } #ifdef _MSC_BUILD st_FrameWork.fpCall_PluginCore_Call = (FPCall_PluginCore_Call)GetProcAddress(st_FrameWork.mhFile, "PluginCore_Call"); @@ -285,9 +285,9 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPCALL; - return FALSE; + return false; } #ifdef _MSC_BUILD st_FrameWork.fpCall_PluginCore_GetLastError = (FPCall_PluginCore_GetLastError)GetProcAddress(st_FrameWork.mhFile, _X("PluginCore_GetLastError")); @@ -301,9 +301,9 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPERROR; - return FALSE; + return false; } //初始化内部模块 if (!st_FrameWork.fpCall_PluginCore_Init(lParam)) @@ -313,9 +313,9 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR #else dlclose(st_FrameWork.mhFile); #endif - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_INIT; - return FALSE; + return false; } _tcsxcpy(st_FrameWork.tszModuleFile, lpszPluginFile); @@ -323,5 +323,5 @@ XBOOL CModulePlugin_LibCore::ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR st_csStl.lock(); stl_MapFrameWork.insert(make_pair(xhNet, st_FrameWork)); st_csStl.unlock(); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.h b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.h index b05cd0e..24eba96 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.h +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LibCore/ModulePlugin_LibCore.h @@ -10,9 +10,9 @@ // Purpose: 插件核心架构定义 // History: *********************************************************************/ -typedef XBOOL(*FPCall_PluginCore_Init)(XPVOID lParam); +typedef bool(*FPCall_PluginCore_Init)(XPVOID lParam); typedef void(*FPCall_PluginCore_UnInit)(); -typedef XBOOL(*FPCall_PluginCore_Call)(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer, int nMsgLen); +typedef bool(*FPCall_PluginCore_Call)(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer, int nMsgLen); typedef XLONG(*FPCall_PluginCore_GetLastError)(); typedef struct @@ -24,9 +24,9 @@ typedef struct #endif XCHAR tszModuleFile[MAX_PATH]; - XBOOL(*fpCall_PluginCore_Init)(XPVOID lParam); + bool(*fpCall_PluginCore_Init)(XPVOID lParam); void(*fpCall_PluginCore_UnInit)(); - XBOOL(*fpCall_PluginCore_Call)(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer, int nMsgLen); + bool(*fpCall_PluginCore_Call)(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer, int nMsgLen); XLONG(*fpCall_PluginCore_GetLastError)(); }PLUGINCORE_FRAMEWORK, * LPPLUGINCORE_FRAMEWORK; @@ -36,14 +36,14 @@ public: CModulePlugin_LibCore(); ~CModulePlugin_LibCore(); public: - XBOOL ModulePlugin_LibCore_Init(); - XBOOL ModulePlugin_LibCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); - XBOOL ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer = NULL, int nMsgLen = 0); - XBOOL ModulePlugin_LibCore_Destroy(); + bool ModulePlugin_LibCore_Init(); + bool ModulePlugin_LibCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); + bool ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer = NULL, int nMsgLen = 0); + bool ModulePlugin_LibCore_Destroy(); protected: - XBOOL ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); + bool ModulePlugin_LibCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); private: - XBOOL bIsInit; + bool bIsInit; private: shared_mutex st_csStl; private: diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp index ebcb148..8d37468 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp @@ -43,15 +43,15 @@ CModulePlugin_Loader::~CModulePlugin_Loader() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lpszModuleName, int nType /* = 0 */) +bool CModulePlugin_Loader::ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lpszModuleName, int nType /* = 0 */) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = false; if ((NULL == lpszModuleMethod) || (NULL == lpszModuleName)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return FALSE; + return false; } PLUGINCORE_LOADER st_PluginLoader; memset(&st_PluginLoader, '\0', sizeof(PLUGINCORE_LOADER)); @@ -64,21 +64,21 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, { if (!ModulePlugin_LibCore_Push(&st_PluginLoader.xhToken, lpszModuleName)) { - return FALSE; + return false; } } else { if (!ModulePlugin_LuaCore_Push(&st_PluginLoader.xhToken, lpszModuleName)) { - return FALSE; + return false; } } st_Locker.lock(); stl_MapLoader.insert(make_pair(lpszModuleMethod, st_PluginLoader)); st_Locker.unlock(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModulePlugin_Loader_Find @@ -98,31 +98,31 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, 意思:是否成功 备注: *********************************************************************/ -XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type) +bool CModulePlugin_Loader::ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = false; if (NULL == lpszMethodName) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return FALSE; + return false; } st_Locker.lock_shared(); unordered_map::const_iterator stl_MapIterator = stl_MapLoader.find(lpszMethodName); if (stl_MapIterator == stl_MapLoader.end()) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return false; } if (NULL != pInt_Type) { *pInt_Type = stl_MapIterator->second.nType; } st_Locker.unlock_shared(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModulePlugin_Loader_Exec @@ -162,24 +162,24 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int 意思:是否成功 备注: *********************************************************************/ -XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen) +bool CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = false; if (NULL == lpszMethodName) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return FALSE; + return false; } st_Locker.lock_shared(); unordered_map::const_iterator stl_MapIterator = stl_MapLoader.find(lpszMethodName); if (stl_MapIterator == stl_MapLoader.end()) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_NOTFOUND; st_Locker.unlock_shared(); - return FALSE; + return false; } if (0 == stl_MapIterator->second.nType) @@ -187,7 +187,7 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCH if (!ModulePlugin_LibCore_Exec(stl_MapIterator->second.xhToken, pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen)) { st_Locker.unlock_shared(); - return FALSE; + return false; } } else @@ -195,11 +195,11 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCH if (!ModulePlugin_LuaCore_Exec(stl_MapIterator->second.xhToken, pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen)) { st_Locker.unlock_shared(); - return FALSE; + return false; } } st_Locker.unlock_shared(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModulePlugin_Loader_Destory @@ -209,12 +209,12 @@ XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCH 意思:是否成功 备注: *********************************************************************/ -XBOOL CModulePlugin_Loader::ModulePlugin_Loader_Destory() +bool CModulePlugin_Loader::ModulePlugin_Loader_Destory() { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = false; st_Locker.lock(); stl_MapLoader.clear(); st_Locker.unlock_shared(); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.h b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.h index 659d211..d89df90 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.h +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.h @@ -24,10 +24,10 @@ public: CModulePlugin_Loader(); ~CModulePlugin_Loader(); public: - XBOOL ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lpszModuleName, int nType = 0); - XBOOL ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type); - XBOOL ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen); - XBOOL ModulePlugin_Loader_Destory(); + bool ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lpszModuleName, int nType = 0); + bool ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type); + bool ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen); + bool ModulePlugin_Loader_Destory(); protected: private: shared_mutex st_Locker; diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp index 05155b0..ca353b8 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.cpp @@ -13,7 +13,7 @@ *********************************************************************/ CModulePlugin_LuaCore::CModulePlugin_LuaCore() { - bIsInit = FALSE; + bIsInit = false; } CModulePlugin_LuaCore::~CModulePlugin_LuaCore() { @@ -29,19 +29,19 @@ CModulePlugin_LuaCore::~CModulePlugin_LuaCore() 意思:是否成功初始化 备注: *********************************************************************/ -XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Init() +bool CModulePlugin_LuaCore::ModulePlugin_LuaCore_Init() { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = false; //判断是否初始化 if (bIsInit) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_ISINITED; - return FALSE; + return false; } //启动线程 - bIsInit = TRUE; - return TRUE; + bIsInit = true; + return true; } /******************************************************************** 函数名称:ModulePlugin_LuaCore_Push @@ -66,21 +66,21 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Init() 意思:是否成功添加 备注: *********************************************************************/ -XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) +bool CModulePlugin_LuaCore::ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = false; if (!BaseLib_OperatorHandle_Create(pxhModule)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = BaseLib_GetLastError(); - return FALSE; + return false; } if (!ModulePlugin_LuaCore_Add(*pxhModule, lpszPluginFile, lParam)) { - return FALSE; + return false; } - return TRUE; + return true; } /******************************************************************** 函数名称:ModulePlugin_LuaCore_Exec @@ -130,26 +130,26 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LP 意思:是否成功 备注: *********************************************************************/ -XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer /* = NULL */, int nMsgLen /* = 0 */) +bool CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer /* = NULL */, int nMsgLen /* = 0 */) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = false; st_csStl.lock_shared(); //执行指定插件函数 unordered_map::const_iterator stl_MapIterator = stl_MapFrameWork.find(xhModule); if (stl_MapIterator == stl_MapFrameWork.end()) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_NOTFOUND; st_csStl.unlock_shared(); - return FALSE; + return false; } if (0 == lua_getglobal(stl_MapIterator->second.pSt_LuaState, "PluginCore_Call")) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPCALL; st_csStl.unlock_shared(); - return FALSE; + return false; } XCHAR tszURLParam[MAX_PATH]; memset(tszURLParam, '\0', MAX_PATH); @@ -168,10 +168,10 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHA lua_pushinteger(stl_MapIterator->second.pSt_LuaState, nMsgLen); if (LUA_OK != lua_pcall(stl_MapIterator->second.pSt_LuaState, 4, 1, 0)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_EXECTION; st_csStl.unlock_shared(); - return FALSE; + return false; } lua_getglobal(stl_MapIterator->second.pSt_LuaState, "PInt_HTTPCode"); *pInt_HTTPCode = (int)lua_tonumber(stl_MapIterator->second.pSt_LuaState, -1); @@ -187,7 +187,7 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHA st_csStl.unlock_shared(); - return TRUE; + return true; } /******************************************************************** 函数名称:ModulePlugin_LuaCore_Destroy @@ -197,16 +197,16 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHA 意思:是否成功销毁 备注: *********************************************************************/ -XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Destroy() +bool CModulePlugin_LuaCore::ModulePlugin_LuaCore_Destroy() { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = false; //判断是否初始化 if (!bIsInit) { - return TRUE; + return true; } - bIsInit = FALSE; + bIsInit = false; //清理STL元素空间 st_csStl.lock(); unordered_map::iterator stl_MapIterator = stl_MapFrameWork.begin(); @@ -220,7 +220,7 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Destroy() stl_MapFrameWork.clear(); st_csStl.unlock(); - return TRUE; + return true; } ////////////////////////////////////////////////////////////////////////// // 保护函数 @@ -248,15 +248,15 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Destroy() 意思:是否成功执行 备注: *********************************************************************/ -XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam) +bool CModulePlugin_LuaCore::ModulePlugin_LuaCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam) { - ModulePlugin_IsErrorOccur = FALSE; + ModulePlugin_IsErrorOccur = false; if (NULL == lpszPluginFile) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_PARAMENT; - return FALSE; + return false; } PLUGINCORE_LUAFRAMEWORK st_LuaCore; memset(&st_LuaCore, '\0', sizeof(PLUGINCORE_LUAFRAMEWORK)); @@ -266,48 +266,48 @@ XBOOL CModulePlugin_LuaCore::ModulePlugin_LuaCore_Add(XNETHANDLE xhNet, LPCXSTR if (NULL == st_LuaCore.pSt_LuaState) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_MALLOC; - return FALSE; + return false; } luaL_openlibs(st_LuaCore.pSt_LuaState); if (LUA_OK != luaL_loadfile(st_LuaCore.pSt_LuaState, lpszPluginFile)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_OPENDL; - return FALSE; + return false; } if (LUA_OK != lua_pcall(st_LuaCore.pSt_LuaState, 0, 0, 0)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_EXECTION; - return FALSE; + return false; } if (0 == lua_getglobal(st_LuaCore.pSt_LuaState, "PluginCore_Init")) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_FPINIT; - return FALSE; + return false; } if (LUA_OK != lua_pcall(st_LuaCore.pSt_LuaState, 0, 1, 0)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_EXECTION; - return FALSE; + return false; } if (!lua_toboolean(st_LuaCore.pSt_LuaState, -1)) { - ModulePlugin_IsErrorOccur = TRUE; + ModulePlugin_IsErrorOccur = true; ModulePlugin_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PLUGIN_EXECTION; - return FALSE; + return false; } lua_pop(st_LuaCore.pSt_LuaState, -1); st_csStl.lock(); stl_MapFrameWork.insert(make_pair(xhNet, st_LuaCore)); st_csStl.unlock(); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.h b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.h index 804e77b..2e472cb 100644 --- a/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.h +++ b/XEngine_Source/XEngine_ModulePlugin/ModulePlugin_LuaCore/ModulePlugin_LuaCore.h @@ -22,14 +22,14 @@ public: CModulePlugin_LuaCore(); ~CModulePlugin_LuaCore(); public: - XBOOL ModulePlugin_LuaCore_Init(); - XBOOL ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); - XBOOL ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer = NULL, int nMsgLen = 0); - XBOOL ModulePlugin_LuaCore_Destroy(); + bool ModulePlugin_LuaCore_Init(); + bool ModulePlugin_LuaCore_Push(XNETHANDLE* pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); + bool ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer = NULL, int nMsgLen = 0); + bool ModulePlugin_LuaCore_Destroy(); protected: - XBOOL ModulePlugin_LuaCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); + bool ModulePlugin_LuaCore_Add(XNETHANDLE xhNet, LPCXSTR lpszPluginFile, XPVOID lParam = NULL); private: - XBOOL bIsInit; + bool bIsInit; private: shared_mutex st_csStl; private: diff --git a/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp b/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp index 15b0e80..594ff21 100644 --- a/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/dllmain.cpp @@ -1,7 +1,7 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -XBOOL APIENTRY DllMain( HMODULE hModule, +bool APIENTRY DllMain( HMODULE hModule, XLONG ul_reason_for_call, XPVOID lpReserved ) @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return true; } diff --git a/XEngine_Source/XEngine_ModulePlugin/pch.cpp b/XEngine_Source/XEngine_ModulePlugin/pch.cpp index 3b0e81c..6ab8618 100644 --- a/XEngine_Source/XEngine_ModulePlugin/pch.cpp +++ b/XEngine_Source/XEngine_ModulePlugin/pch.cpp @@ -13,7 +13,7 @@ // Purpose: 插件核心导出函数实现 // History: *********************************************************************/ -XBOOL ModulePlugin_IsErrorOccur = FALSE; +bool ModulePlugin_IsErrorOccur = false; XLONG ModulePlugin_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_LibCore m_PluginLib; @@ -33,57 +33,57 @@ extern "C" XLONG ModulePlugin_GetLastError(int* pInt_SysError) /********************************************************************************* * 插件框架导出函数定义 * *********************************************************************************/ -extern "C" XBOOL ModulePlugin_LibCore_Init() +extern "C" bool ModulePlugin_LibCore_Init() { return m_PluginLib.ModulePlugin_LibCore_Init(); } -extern "C" XBOOL ModulePlugin_LibCore_Push(XNETHANDLE * pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) +extern "C" bool ModulePlugin_LibCore_Push(XNETHANDLE * pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) { return m_PluginLib.ModulePlugin_LibCore_Push(pxhModule, lpszPluginFile, lParam); } -extern "C" XBOOL ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer, int nMsgLen) +extern "C" bool ModulePlugin_LibCore_Exec(XNETHANDLE xhModule, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer, int nMsgLen) { return m_PluginLib.ModulePlugin_LibCore_Exec(xhModule, pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen); } -extern "C" XBOOL ModulePlugin_LibCore_Destroy() +extern "C" bool ModulePlugin_LibCore_Destroy() { return m_PluginLib.ModulePlugin_LibCore_Destroy(); } /********************************************************************************* * LUA插件框架导出函数定义 * *********************************************************************************/ -extern "C" XBOOL ModulePlugin_LuaCore_Init() +extern "C" bool ModulePlugin_LuaCore_Init() { return m_PluginLua.ModulePlugin_LuaCore_Init(); } -extern "C" XBOOL ModulePlugin_LuaCore_Push(XNETHANDLE * pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) +extern "C" bool ModulePlugin_LuaCore_Push(XNETHANDLE * pxhModule, LPCXSTR lpszPluginFile, XPVOID lParam) { return m_PluginLua.ModulePlugin_LuaCore_Push(pxhModule, lpszPluginFile, lParam); } -extern "C" XBOOL ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer, int nMsgLen) +extern "C" bool ModulePlugin_LuaCore_Exec(XNETHANDLE xhModule, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBufer, int nMsgLen) { return m_PluginLua.ModulePlugin_LuaCore_Exec(xhModule, pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBufer, nMsgLen); } -extern "C" XBOOL ModulePlugin_LuaCore_Destroy() +extern "C" bool ModulePlugin_LuaCore_Destroy() { return m_PluginLua.ModulePlugin_LuaCore_Destroy(); } /********************************************************************************* * 加载器导出函数定义 * *********************************************************************************/ -extern "C" XBOOL ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lpszModuleName, int nType) +extern "C" bool ModulePlugin_Loader_Insert(LPCXSTR lpszModuleMethod, LPCXSTR lpszModuleName, int nType) { return m_PluginLoader.ModulePlugin_Loader_Insert(lpszModuleMethod, lpszModuleName, nType); } -extern "C" XBOOL ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type) +extern "C" bool ModulePlugin_Loader_Find(LPCXSTR lpszMethodName, int* pInt_Type) { return m_PluginLoader.ModulePlugin_Loader_Find(lpszMethodName, pInt_Type); } -extern "C" XBOOL ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen) +extern "C" bool ModulePlugin_Loader_Exec(LPCXSTR lpszMethodName, XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen) { return m_PluginLoader.ModulePlugin_Loader_Exec(lpszMethodName, pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen); } -extern "C" XBOOL ModulePlugin_Loader_Destory() +extern "C" bool ModulePlugin_Loader_Destory() { return m_PluginLoader.ModulePlugin_Loader_Destory(); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModulePlugin/pch.h b/XEngine_Source/XEngine_ModulePlugin/pch.h index 4cd2eae..22e72da 100644 --- a/XEngine_Source/XEngine_ModulePlugin/pch.h +++ b/XEngine_Source/XEngine_ModulePlugin/pch.h @@ -55,7 +55,7 @@ using namespace std; // Purpose: 插件核心公有头文件 // History: *********************************************************************/ -extern XBOOL ModulePlugin_IsErrorOccur; +extern bool ModulePlugin_IsErrorOccur; extern XLONG ModulePlugin_dwErrorCode; #ifdef _MSC_BUILD diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h index 3bc8716..87e32ac 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h @@ -45,7 +45,7 @@ extern "C" XLONG ModuleProtocol_GetLastError(int *pInt_SysError = NULL); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_Common(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); +extern "C" bool ModuleProtocol_Packet_Common(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); /******************************************************************** 函数名称:ModuleProtocol_Packet_IDQuery 函数功能:ID查询打包为JSON的封包函数 @@ -84,7 +84,7 @@ extern "C" XBOOL ModuleProtocol_Packet_Common(XCHAR * ptszMsgBuffer, int* pInt_M 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); +extern "C" bool ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); /******************************************************************** 函数名称:ModuleProtocol_Packet_BankQuery 函数功能:银行卡信息查询打包为JSON @@ -118,7 +118,7 @@ extern "C" XBOOL ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer, int* pInt_M 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); +extern "C" bool ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); /******************************************************************** 函数名称:ModuleProtocol_Packet_LanguageQuery 函数功能:语言打包为JSON @@ -152,7 +152,7 @@ extern "C" XBOOL ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuffer, int* pInt 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); +extern "C" bool ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); /******************************************************************** 函数名称:ModuleProtocol_Packet_Locker 函数功能:分布式锁协议打包函数 @@ -186,7 +186,7 @@ extern "C" XBOOL ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsgBuffer, int* 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); +extern "C" bool ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); /******************************************************************** 函数名称:ModuleProtocol_Packet_ZIPCode 函数功能:打包行政邮编信息协议 @@ -220,7 +220,7 @@ extern "C" XBOOL ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, int* pInt_Ms 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); +extern "C" bool ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); /******************************************************************** 函数名称:ModuleProtocol_Packet_TestReport 函数功能:套接字测试信息打包 @@ -273,7 +273,7 @@ extern "C" XBOOL ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer, int* pInt_M 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus); +extern "C" bool ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus); /******************************************************************** 函数名称:ModuleProtocol_Packet_TestReply 函数功能:请求返回 @@ -297,7 +297,7 @@ extern "C" XBOOL ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuffer, int* pIn 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken); +extern "C" bool ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken); /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PLan 函数功能:响应同步局域网地址列表 @@ -326,7 +326,7 @@ extern "C" XBOOL ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuffer, int* pInt 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount); +extern "C" bool ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount); /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PWLan 函数功能:响应同步局域网所有地址列表 @@ -350,7 +350,7 @@ extern "C" XBOOL ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, int* pInt_Ms 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients); +extern "C" bool ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients); /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PUser 函数功能:响应用户查询用户信息的请求协议封包函数 @@ -374,7 +374,7 @@ extern "C" XBOOL ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer, int* pInt_M 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo); +extern "C" bool ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo); /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PConnect 函数功能:请求连接打包函数 @@ -403,7 +403,7 @@ extern "C" XBOOL ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer, int* pInt_M 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol); +extern "C" bool ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol); /******************************************************************** 函数名称:ModuleProtocol_Packet_Log 函数功能:日志信息打包 @@ -432,7 +432,7 @@ extern "C" XBOOL ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuffer, int* pIn 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount); +extern "C" bool ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount); /******************************************************************** 函数名称:ModuleProtocol_Packet_ShortLink 函数功能:短连接生成协议打包函数 @@ -456,7 +456,7 @@ extern "C" XBOOL ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, int* pInt_MsgLe 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_SHORTLINK* pSt_ShortLink); +extern "C" bool ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_SHORTLINK* pSt_ShortLink); /************************************************************************/ /* 导出的协议解析函数 */ /************************************************************************/ @@ -478,7 +478,7 @@ extern "C" XBOOL ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuffer, int* pInt 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCARDINFO* pSt_IDInfo); +extern "C" bool ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCARDINFO* pSt_IDInfo); /******************************************************************** 函数名称:ModuleProtocol_Parse_Bank 函数功能:银行卡解析 @@ -502,7 +502,7 @@ extern "C" XBOOL ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCA 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO* pSt_BankInfo); +extern "C" bool ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO* pSt_BankInfo); /******************************************************************** 函数名称:ModuleProtocol_Parse_Translation 函数功能:翻译解析 @@ -526,7 +526,7 @@ extern "C" XBOOL ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, X 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo); +extern "C" bool ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo); /******************************************************************** 函数名称:ModuleProtocol_Parse_P2PClient 函数功能:P2P客户端请求解析函数 @@ -550,7 +550,7 @@ extern "C" XBOOL ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMs 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL * pSt_P2XPPeer); +extern "C" bool ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL * pSt_P2XPPeer); /******************************************************************** 函数名称:ModuleProtocol_Parse_ZIPCode 函数功能:解析邮政地址信息 @@ -574,7 +574,7 @@ extern "C" XBOOL ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgL 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo); +extern "C" bool ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo); /******************************************************************** 函数名称:ModuleProtocol_Parse_XLog 函数功能:解析日志信息 @@ -598,7 +598,7 @@ extern "C" XBOOL ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo); +extern "C" bool ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo); /******************************************************************** 函数名称:ModuleProtocol_Parse_QRCode 函数功能:二维码协议解析 @@ -622,7 +622,7 @@ extern "C" XBOOL ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, X 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode); +extern "C" bool ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode); /******************************************************************** 函数名称:ModuleProtocol_Parse_SocketTest 函数功能:套接字测试协议解析 @@ -646,7 +646,7 @@ extern "C" XBOOL ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest); +extern "C" bool ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest); /******************************************************************** 函数名称:ModuleProtocol_Parse_ShortLink 函数功能:短连接协议解析 @@ -670,4 +670,4 @@ extern "C" XBOOL ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsg 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SHORTLINK* pSt_ShortLink); \ No newline at end of file +extern "C" bool ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SHORTLINK* pSt_ShortLink); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp index 17f6d4d..309f1eb 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp @@ -49,15 +49,15 @@ CModuleProtocol_Packet::~CModuleProtocol_Packet() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Common(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) +bool CModuleProtocol_Packet::ModuleProtocol_Packet_Common(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; @@ -68,7 +68,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Common(XCHAR* ptszMsgBuffer, } *pInt_MsgLen = st_JsonRoot.toStyledString().length(); memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Packet_IDQuery @@ -108,15 +108,15 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Common(XCHAR* ptszMsgBuffer, 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) +bool CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -170,7 +170,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Packet_BankQuery @@ -205,15 +205,15 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) +bool CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -251,7 +251,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuff *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Packet_LanguageQuery @@ -286,15 +286,15 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuff 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) +bool CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -321,7 +321,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsg *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Packet_Locker @@ -356,15 +356,15 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsg 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCXSTR lpszMsgBuffer) +bool CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCXSTR lpszMsgBuffer) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -386,7 +386,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Packet_ZIPCode @@ -421,15 +421,15 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) +bool CModuleProtocol_Packet::ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode /* = 0 */, LPCXSTR lpszMsgBuffer /* = NULL */) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -462,7 +462,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Packet_Log @@ -492,15 +492,15 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount) +bool CModuleProtocol_Packet::ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; Json::Value st_JsonArray; @@ -528,7 +528,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, in *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Packet_TestReport @@ -582,15 +582,15 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, in 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus) +bool CModuleProtocol_Packet::ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -611,7 +611,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuf *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Packet_TestReply @@ -636,15 +636,15 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuf 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken) +bool CModuleProtocol_Packet::ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -659,7 +659,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuff *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Packet_ShortLink @@ -684,15 +684,15 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuff 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_SHORTLINK* pSt_ShortLink) +bool CModuleProtocol_Packet::ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_SHORTLINK* pSt_ShortLink) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -712,7 +712,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuff *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PLan @@ -742,15 +742,15 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuff 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount) +bool CModuleProtocol_Packet::ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == pppSt_ListClients) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; Json::Value st_JsonArray; @@ -768,7 +768,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, *pInt_MsgLen = st_JsonRoot.toStyledString().length(); memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PWLan @@ -793,15 +793,15 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients) +bool CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == pStl_ListClients) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return false; } unordered_map> stl_MapClient; //首先处理公网下的局域网网段列表 @@ -861,7 +861,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer *pInt_MsgLen = st_JsonRoot.toStyledString().length(); memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PUser @@ -886,15 +886,15 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo) +bool CModuleProtocol_Packet::ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == pSt_PeerInfo) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; Json::Value st_JsonAddr; @@ -912,7 +912,7 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer st_JsonBuilder["emitUTF8"] = true; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PConnect @@ -942,15 +942,15 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol) +bool CModuleProtocol_Packet::ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; @@ -962,5 +962,5 @@ XBOOL CModuleProtocol_Packet::ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuf *pInt_MsgLen = st_JsonRoot.toStyledString().length(); memcpy(ptszMsgBuffer, st_JsonRoot.toStyledString().c_str(), *pInt_MsgLen); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h index 6762799..9a993e8 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h @@ -22,20 +22,20 @@ public: CModuleProtocol_Packet(); ~CModuleProtocol_Packet(); public: - XBOOL ModuleProtocol_Packet_Common(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); - XBOOL ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); - XBOOL ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); - XBOOL ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); - XBOOL ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); - XBOOL ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); - XBOOL ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount); - XBOOL ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus); - XBOOL ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken); - XBOOL ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_SHORTLINK* pSt_ShortLink); + bool ModuleProtocol_Packet_Common(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); + bool ModuleProtocol_Packet_IDQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); + bool ModuleProtocol_Packet_BankQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); + bool ModuleProtocol_Packet_LanguageQuery(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); + bool ModuleProtocol_Packet_Locker(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); + bool ModuleProtocol_Packet_ZIPCode(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode = 0, LPCXSTR lpszMsgBuffer = NULL); + bool ModuleProtocol_Packet_Log(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO*** pppSt_XLogList, int nListCount); + bool ModuleProtocol_Packet_TestReport(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus); + bool ModuleProtocol_Packet_TestReply(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken); + bool ModuleProtocol_Packet_ShortLink(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_SHORTLINK* pSt_ShortLink); public: - XBOOL ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount); - XBOOL ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients); - XBOOL ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo); - XBOOL ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol); + bool ModuleProtocol_Packet_P2PLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount); + bool ModuleProtocol_Packet_P2PWLan(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients); + bool ModuleProtocol_Packet_P2PUser(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_PeerInfo); + bool ModuleProtocol_Packet_P2PConnect(XCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL* pSt_IOProtocol); private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp index 60c5d54..d38bb9b 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp @@ -39,21 +39,21 @@ CModuleProtocol_Parse::~CModuleProtocol_Parse() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCARDINFO* pSt_IDInfo) +bool CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCARDINFO* pSt_IDInfo) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == lpszMsgBuffer) || (NULL == pSt_IDInfo)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return false; } if (_tcsxlen(lpszMsgBuffer) != 18) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_LEN; - return FALSE; + return false; } int nPos = 0; XCHAR tszTmpBuffer[16]; @@ -62,9 +62,9 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, { if (!isdigit(lpszMsgBuffer[i])) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_FMT; - return FALSE; + return false; } } _tcsxcpy(pSt_IDInfo->tszIDNumber, lpszMsgBuffer); @@ -113,7 +113,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, memcpy(tszTmpBuffer, lpszMsgBuffer + nPos, 1); pSt_IDInfo->nCheck = _ttxoi(tszTmpBuffer); nPos += 1; - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Parse_Bank @@ -138,15 +138,15 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO* pSt_BankInfo) +bool CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO* pSt_BankInfo) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == lpszMsgBuffer) || (0 == nMsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -155,17 +155,17 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, in std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_JSON; - return FALSE; + return false; } //{"messages":[{"errorCodes":"CARD_BIN_NOT_MATCH","name":"cardNo"}],"validated":false,"stat":"ok","key":"62215546546546"} //{"cardType":"DC","bank":"CMB","key":"62215546546546"messages":[],"validated":true,"stat":"ok"} if (!st_JsonRoot["validated"].asBool()) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_VALIDATE; - return FALSE; + return false; } LPCXSTR lpszTypeDC = _X("DC"); LPCXSTR lpszTypeCC = _X("CC"); @@ -182,7 +182,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, in pSt_BankInfo->enBankType = ENUM_XENGINE_APISERVICE_BANK_TYPE_BC; } _tcsxcpy(pSt_BankInfo->tszBankAbridge, st_JsonRoot["bank"].asCString()); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Parse_Translation @@ -207,15 +207,15 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, in 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo) +bool CModuleProtocol_Parse::ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == lpszMsgBuffer) || (0 == nMsgLen)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -224,22 +224,22 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuf std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_JSON; - return FALSE; + return false; } //{"type":"ZH_CN2EN","errorCode":0,"elapsedTime":1,"translateResult":[[{"src":"计算","tgt":"To calculate"}]]} if (0 != st_JsonRoot["errorCode"].asInt()) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_VALIDATE; - return FALSE; + return false; } Json::Value st_JsonTranslation = st_JsonRoot["translateResult"]; _tcsxcpy(pSt_LanguageInfo->tszSourceStr, st_JsonTranslation[0][0]["src"].asCString()); _tcsxcpy(pSt_LanguageInfo->tszDestStr, st_JsonTranslation[0][0]["tgt"].asCString()); - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Parse_P2PClient @@ -264,15 +264,15 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuf 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_P2XPPeer) +bool CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_P2XPPeer) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == lpszMsgBuffer) || (NULL == pSt_P2XPPeer)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; Json::CharReaderBuilder st_JsonBuild; @@ -282,9 +282,9 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffe //解析JSON if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_JSON; - return FALSE; + return false; } delete pSt_JsonReader; pSt_JsonReader = NULL; @@ -309,7 +309,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffe { pSt_P2XPPeer->dwPeerType = st_JsonRoot["dwPeerType"].asInt(); } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Parse_ZIPCode @@ -334,15 +334,15 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffe 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo) +bool CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == lpszMsgBuffer) || (NULL == pSt_ZIPInfo)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -351,9 +351,9 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return false; } if (!st_JsonRoot["tszProvincer"].isNull()) @@ -373,7 +373,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, { pSt_ZIPInfo->nZipCode = st_JsonRoot["nZipCode"].asInt(); } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Parse_XLog @@ -398,15 +398,15 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo) +bool CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == lpszMsgBuffer) || (NULL == pSt_XLogInfo)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -415,9 +415,9 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, in std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return false; } if (!st_JsonRoot["tszTableName"].isNull()) @@ -460,7 +460,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, in { pSt_XLogInfo->st_ProtocolLog.nLogLevel = st_JsonRoot["nLogLevel"].asInt(); } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Parse_QRCode @@ -485,15 +485,15 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, in 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode) +bool CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == lpszMsgBuffer) || (NULL == pSt_QRCode)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -502,9 +502,9 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return false; } if (!st_JsonRoot["tszMsgBuffer"].isNull()) @@ -515,7 +515,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, { _tcsxcpy(pSt_QRCode->tszFmtBuffer, st_JsonRoot["tszFmtBuffer"].asCString()); } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Parse_SocketTest @@ -540,15 +540,15 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest) +bool CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == lpszMsgBuffer) || (NULL == pSt_SocketTest)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -557,9 +557,9 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuff std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return false; } if (!st_JsonRoot["tszAPIUrl"].isNull()) @@ -620,7 +620,7 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuff { pSt_SocketTest->st_SocketData.nSDLen = st_JsonRoot["nSDLen"].asInt(); } - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleProtocol_Parse_ShortLink @@ -645,15 +645,15 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuff 意思:是否成功 备注: *********************************************************************/ -XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SHORTLINK* pSt_ShortLink) +bool CModuleProtocol_Parse::ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SHORTLINK* pSt_ShortLink) { - ModuleProtocol_IsErrorOccur = FALSE; + ModuleProtocol_IsErrorOccur = false; if ((NULL == lpszMsgBuffer) || (NULL == pSt_ShortLink)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return false; } Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; @@ -662,9 +662,9 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffe std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) { - ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_IsErrorOccur = true; ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; - return FALSE; + return false; } if (!st_JsonRoot["tszFullUrl"].isNull()) @@ -695,5 +695,5 @@ XBOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffe { pSt_ShortLink->nLength = st_JsonRoot["nLength"].asInt(); } - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h index cbb205c..eb0168c 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h @@ -18,14 +18,14 @@ public: CModuleProtocol_Parse(); ~CModuleProtocol_Parse(); public: - XBOOL ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCARDINFO* pSt_IDInfo); - XBOOL ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO* pSt_BankInfo); - XBOOL ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo); - XBOOL ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_P2XPPeer); - XBOOL ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo); - XBOOL ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo); - XBOOL ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode); - XBOOL ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest); - XBOOL ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SHORTLINK* pSt_ShortLink); + bool ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCARDINFO* pSt_IDInfo); + bool ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO* pSt_BankInfo); + bool ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo); + bool ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_P2XPPeer); + bool ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo); + bool ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO* pSt_XLogInfo); + bool ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE* pSt_QRCode); + bool ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST* pSt_SocketTest); + bool ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SHORTLINK* pSt_ShortLink); private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp b/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp index 15b0e80..594ff21 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/dllmain.cpp @@ -1,7 +1,7 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -XBOOL APIENTRY DllMain( HMODULE hModule, +bool APIENTRY DllMain( HMODULE hModule, XLONG ul_reason_for_call, XPVOID lpReserved ) @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return true; } diff --git a/XEngine_Source/XEngine_ModuleProtocol/pch.cpp b/XEngine_Source/XEngine_ModuleProtocol/pch.cpp index fa52262..76d5204 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/pch.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/pch.cpp @@ -12,7 +12,7 @@ // Purpose: 导出协议模块实现 // History: *********************************************************************/ -XBOOL ModuleProtocol_IsErrorOccur = FALSE; +bool ModuleProtocol_IsErrorOccur = false; XLONG ModuleProtocol_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModuleProtocol_Packet m_ProtocolPacket; @@ -31,98 +31,98 @@ extern "C" XLONG ModuleProtocol_GetLastError(int* pInt_SysError) /************************************************************************/ /* 导出的协议打包函数 */ /************************************************************************/ -extern "C" XBOOL ModuleProtocol_Packet_Common(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, int nCode, LPCXSTR lpszMsgBuffer) +extern "C" bool ModuleProtocol_Packet_Common(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, int nCode, LPCXSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_Common(ptszMsgBuffer, pInt_MsgLen, nCode, lpszMsgBuffer); } -extern "C" XBOOL ModuleProtocol_Packet_IDQuery(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO * pSt_IDInfo, XENGINE_IDREGION * pSt_IDRegion, int nCode, LPCXSTR lpszMsgBuffer) +extern "C" bool ModuleProtocol_Packet_IDQuery(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO * pSt_IDInfo, XENGINE_IDREGION * pSt_IDRegion, int nCode, LPCXSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_IDQuery(ptszMsgBuffer, pInt_MsgLen, pSt_IDInfo, pSt_IDRegion, nCode, lpszMsgBuffer); } -extern "C" XBOOL ModuleProtocol_Packet_BankQuery(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO * pSt_BankInfo, int nCode, LPCXSTR lpszMsgBuffer) +extern "C" bool ModuleProtocol_Packet_BankQuery(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO * pSt_BankInfo, int nCode, LPCXSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_BankQuery(ptszMsgBuffer, pInt_MsgLen, pSt_BankInfo, nCode, lpszMsgBuffer); } -extern "C" XBOOL ModuleProtocol_Packet_LanguageQuery(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO * pSt_LanguageInfo, int nCode, LPCXSTR lpszMsgBuffer) +extern "C" bool ModuleProtocol_Packet_LanguageQuery(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO * pSt_LanguageInfo, int nCode, LPCXSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_LanguageQuery(ptszMsgBuffer, pInt_MsgLen, pSt_LanguageInfo, nCode, lpszMsgBuffer); } -extern "C" XBOOL ModuleProtocol_Packet_Locker(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCXSTR lpszMsgBuffer) +extern "C" bool ModuleProtocol_Packet_Locker(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCXSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_Locker(ptszMsgBuffer, pInt_MsgLen, xhToken, nCode, lpszMsgBuffer); } -extern "C" XBOOL ModuleProtocol_Packet_ZIPCode(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO * pSt_ZIPInfo, int nCode, LPCXSTR lpszMsgBuffer) +extern "C" bool ModuleProtocol_Packet_ZIPCode(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO * pSt_ZIPInfo, int nCode, LPCXSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_ZIPCode(ptszMsgBuffer, pInt_MsgLen, pSt_ZIPInfo, nCode, lpszMsgBuffer); } -extern "C" XBOOL ModuleProtocol_Packet_Log(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO * **pppSt_XLogList, int nListCount) +extern "C" bool ModuleProtocol_Packet_Log(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_XLOGINFO * **pppSt_XLogList, int nListCount) { return m_ProtocolPacket.ModuleProtocol_Packet_Log(ptszMsgBuffer, pInt_MsgLen, pppSt_XLogList, nListCount); } -extern "C" XBOOL ModuleProtocol_Packet_TestReport(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus) +extern "C" bool ModuleProtocol_Packet_TestReport(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, LPCXSTR lpszIPAddr, int nIPPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus) { return m_ProtocolPacket.ModuleProtocol_Packet_TestReport(ptszMsgBuffer, pInt_MsgLen, xhToken, lpszIPAddr, nIPPort, nNumber, nFailed, nSuccess, nStatus); } -extern "C" XBOOL ModuleProtocol_Packet_TestReply(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken) +extern "C" bool ModuleProtocol_Packet_TestReply(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken) { return m_ProtocolPacket.ModuleProtocol_Packet_TestReply(ptszMsgBuffer, pInt_MsgLen, xhToken); } -extern "C" XBOOL ModuleProtocol_Packet_ShortLink(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_SHORTLINK * pSt_ShortLink) +extern "C" bool ModuleProtocol_Packet_ShortLink(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_SHORTLINK * pSt_ShortLink) { return m_ProtocolPacket.ModuleProtocol_Packet_ShortLink(ptszMsgBuffer, pInt_MsgLen, pSt_ShortLink); } -extern "C" XBOOL ModuleProtocol_Packet_P2PLan(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL * **pppSt_ListClients, int nListCount) +extern "C" bool ModuleProtocol_Packet_P2PLan(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL * **pppSt_ListClients, int nListCount) { return m_ProtocolPacket.ModuleProtocol_Packet_P2PLan(ptszMsgBuffer, pInt_MsgLen, pppSt_ListClients, nListCount); } -extern "C" XBOOL ModuleProtocol_Packet_P2PWLan(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, list*pStl_ListClients) +extern "C" bool ModuleProtocol_Packet_P2PWLan(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, list*pStl_ListClients) { return m_ProtocolPacket.ModuleProtocol_Packet_P2PWLan(ptszMsgBuffer, pInt_MsgLen, pStl_ListClients); } -extern "C" XBOOL ModuleProtocol_Packet_P2PUser(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL * pSt_PeerInfo) +extern "C" bool ModuleProtocol_Packet_P2PUser(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL * pSt_PeerInfo) { return m_ProtocolPacket.ModuleProtocol_Packet_P2PUser(ptszMsgBuffer, pInt_MsgLen, pSt_PeerInfo); } -extern "C" XBOOL ModuleProtocol_Packet_P2PConnect(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL * pSt_IOProtocol) +extern "C" bool ModuleProtocol_Packet_P2PConnect(XCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPIO_PROTOCOL * pSt_IOProtocol) { return m_ProtocolPacket.ModuleProtocol_Packet_P2PConnect(ptszMsgBuffer, pInt_MsgLen, pSt_IOProtocol); } /************************************************************************/ /* 导出的协议解析函数 */ /************************************************************************/ -extern "C" XBOOL ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCARDINFO * pSt_IDInfo) +extern "C" bool ModuleProtocol_Parse_IDCard(LPCXSTR lpszMsgBuffer, XENGINE_IDCARDINFO * pSt_IDInfo) { return m_ProtocolParse.ModuleProtocol_Parse_IDCard(lpszMsgBuffer, pSt_IDInfo); } -extern "C" XBOOL ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO * pSt_BankInfo) +extern "C" bool ModuleProtocol_Parse_Bank(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_BANKINFO * pSt_BankInfo) { return m_ProtocolParse.ModuleProtocol_Parse_Bank(lpszMsgBuffer, nMsgLen, pSt_BankInfo); } -extern "C" XBOOL ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO * pSt_LanguageInfo) +extern "C" bool ModuleProtocol_Parse_Translation(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO * pSt_LanguageInfo) { return m_ProtocolParse.ModuleProtocol_Parse_Translation(lpszMsgBuffer, nMsgLen, pSt_LanguageInfo); } -extern "C" XBOOL ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL * pSt_P2XPPeer) +extern "C" bool ModuleProtocol_Parse_P2PClient(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL * pSt_P2XPPeer) { return m_ProtocolParse.ModuleProtocol_Parse_P2PClient(lpszMsgBuffer, nMsgLen, pSt_P2XPPeer); } -extern "C" XBOOL ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO * pSt_ZIPInfo) +extern "C" bool ModuleProtocol_Parse_ZIPCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO * pSt_ZIPInfo) { return m_ProtocolParse.ModuleProtocol_Parse_ZIPCode(lpszMsgBuffer, nMsgLen, pSt_ZIPInfo); } -extern "C" XBOOL ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO * pSt_XLogInfo) +extern "C" bool ModuleProtocol_Parse_XLog(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_XLOGINFO * pSt_XLogInfo) { return m_ProtocolParse.ModuleProtocol_Parse_XLog(lpszMsgBuffer, nMsgLen, pSt_XLogInfo); } -extern "C" XBOOL ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE * pSt_QRCode) +extern "C" bool ModuleProtocol_Parse_QRCode(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_QRCODE * pSt_QRCode) { return m_ProtocolParse.ModuleProtocol_Parse_QRCode(lpszMsgBuffer, nMsgLen, pSt_QRCode); } -extern "C" XBOOL ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST * pSt_SocketTest) +extern "C" bool ModuleProtocol_Parse_SocketTest(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SOCKETTEST * pSt_SocketTest) { return m_ProtocolParse.ModuleProtocol_Parse_SocketTest(lpszMsgBuffer, nMsgLen, pSt_SocketTest); } -extern "C" XBOOL ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SHORTLINK * pSt_ShortLink) +extern "C" bool ModuleProtocol_Parse_ShortLink(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_SHORTLINK * pSt_ShortLink) { return m_ProtocolParse.ModuleProtocol_Parse_ShortLink(lpszMsgBuffer, nMsgLen, pSt_ShortLink); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/pch.h b/XEngine_Source/XEngine_ModuleProtocol/pch.h index e7f4a86..1b2a293 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/pch.h +++ b/XEngine_Source/XEngine_ModuleProtocol/pch.h @@ -38,7 +38,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern XBOOL ModuleProtocol_IsErrorOccur; +extern bool ModuleProtocol_IsErrorOccur; extern XLONG ModuleProtocol_dwErrorCode; #ifdef _MSC_BUILD diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/BMIndex_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/BMIndex_Define.h index ab2e9f5..bf60420 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/BMIndex_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/BMIndex_Define.h @@ -30,7 +30,7 @@ extern "C" XLONG PluginCore_GetLastError(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL PluginCore_Init(XPVOID lParam = NULL); +extern "C" bool PluginCore_Init(XPVOID lParam = NULL); /******************************************************************** 函数名称:PluginCore_UnInit 函数功能:卸载插件 @@ -48,4 +48,4 @@ extern "C" void PluginCore_UnInit(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file +extern "C" bool PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp index a05915d..5382630 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.cpp @@ -33,11 +33,11 @@ CPlugin_BMIndex::~CPlugin_BMIndex() 意思:是否成功 备注: *********************************************************************/ -XBOOL CPlugin_BMIndex::PluginCore_Init(XPVOID lParam) +bool CPlugin_BMIndex::PluginCore_Init(XPVOID lParam) { - BMIndex_IsErrorOccur = FALSE; + BMIndex_IsErrorOccur = false; - return TRUE; + return true; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -49,7 +49,7 @@ XBOOL CPlugin_BMIndex::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_BMIndex::PluginCore_UnInit() { - BMIndex_IsErrorOccur = FALSE; + BMIndex_IsErrorOccur = false; } /******************************************************************** 函数名称:PluginCore_Call @@ -59,15 +59,15 @@ void CPlugin_BMIndex::PluginCore_UnInit() 意思:是否成功 备注: *********************************************************************/ -XBOOL CPlugin_BMIndex::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) +bool CPlugin_BMIndex::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - BMIndex_IsErrorOccur = FALSE; + BMIndex_IsErrorOccur = false; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - BMIndex_IsErrorOccur = TRUE; + BMIndex_IsErrorOccur = true; BMIndex_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_BMINDEX_PARAMENT; - return FALSE; + return false; } XCHAR tszKeyName[128]; XCHAR tszParamHigh[128]; @@ -82,14 +82,14 @@ XBOOL CPlugin_BMIndex::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* Plugin_Timezone_BMIndex(tszParamHigh, tszParamWeight, ptszMsgBuffer, pInt_MsgLen); *pInt_HTTPCode = 200; - return TRUE; + return true; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// -XBOOL CPlugin_BMIndex::Plugin_Timezone_BMIndex(LPCXSTR lpszHigh, LPCXSTR lpszWeight, XCHAR* ptszMsgBufer, int* pInt_Len) +bool CPlugin_BMIndex::Plugin_Timezone_BMIndex(LPCXSTR lpszHigh, LPCXSTR lpszWeight, XCHAR* ptszMsgBufer, int* pInt_Len) { - BMIndex_IsErrorOccur = FALSE; + BMIndex_IsErrorOccur = false; Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -133,5 +133,5 @@ XBOOL CPlugin_BMIndex::Plugin_Timezone_BMIndex(LPCXSTR lpszHigh, LPCXSTR lpszWei *pInt_Len = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.h index 853b815..8edef40 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/Plugin_BMIndex/Plugin_BMIndex.h @@ -17,10 +17,10 @@ public: CPlugin_BMIndex(); ~CPlugin_BMIndex(); public: - XBOOL PluginCore_Init(XPVOID lParam); + bool PluginCore_Init(XPVOID lParam); void PluginCore_UnInit(); - XBOOL PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); + bool PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); protected: - XBOOL Plugin_Timezone_BMIndex(LPCXSTR lpszHigh, LPCXSTR lpszWeight, XCHAR* ptszMsgBufer, int* pInt_Len); + bool Plugin_Timezone_BMIndex(LPCXSTR lpszHigh, LPCXSTR lpszWeight, XCHAR* ptszMsgBufer, int* pInt_Len); private: }; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp index 15b0e80..594ff21 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/dllmain.cpp @@ -1,7 +1,7 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -XBOOL APIENTRY DllMain( HMODULE hModule, +bool APIENTRY DllMain( HMODULE hModule, XLONG ul_reason_for_call, XPVOID lpReserved ) @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return true; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp index e6bfdfc..95aa454 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL BMIndex_IsErrorOccur = FALSE; +bool BMIndex_IsErrorOccur = false; XLONG BMIndex_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_BMIndex m_PluginBMIndex; @@ -25,7 +25,7 @@ extern "C" XLONG PluginCore_GetLastError() /********************************************************************************* * 导出函数定义 * *********************************************************************************/ -extern "C" XBOOL PluginCore_Init(XPVOID lParam) +extern "C" bool PluginCore_Init(XPVOID lParam) { return m_PluginBMIndex.PluginCore_Init(lParam); } @@ -33,7 +33,7 @@ extern "C" void PluginCore_UnInit() { m_PluginBMIndex.PluginCore_UnInit(); } -extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) +extern "C" bool PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { return m_PluginBMIndex.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.h index 3983a9b..ae71229 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/pch.h @@ -37,7 +37,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern XBOOL BMIndex_IsErrorOccur; +extern bool BMIndex_IsErrorOccur; extern XLONG BMIndex_dwErrorCode; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp index 6c7eff2..57495ea 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.cpp @@ -33,9 +33,9 @@ CModulePlugin_Interface::~CModulePlugin_Interface() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModulePlugin_Interface::PluginCore_Init(XPVOID lParam) +bool CModulePlugin_Interface::PluginCore_Init(XPVOID lParam) { - IPAddr_IsErrorOccur = FALSE; + IPAddr_IsErrorOccur = false; const char* db_path = "./XEngine_DBFile/ip2region.xdb"; // 1、从 db_path 初始化 xdb 查询对象 @@ -43,9 +43,9 @@ XBOOL CModulePlugin_Interface::PluginCore_Init(XPVOID lParam) if (err != 0) { printf("failed to create xdb searcher from `%s` with errno=%d\n", db_path, err); - return FALSE; + return false; } - return TRUE; + return true; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -57,7 +57,7 @@ XBOOL CModulePlugin_Interface::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CModulePlugin_Interface::PluginCore_UnInit() { - IPAddr_IsErrorOccur = FALSE; + IPAddr_IsErrorOccur = false; xdb_close(&st_DBSearch); } /******************************************************************** @@ -68,15 +68,15 @@ void CModulePlugin_Interface::PluginCore_UnInit() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModulePlugin_Interface::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) +bool CModulePlugin_Interface::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - IPAddr_IsErrorOccur = FALSE; + IPAddr_IsErrorOccur = false; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - IPAddr_IsErrorOccur = TRUE; + IPAddr_IsErrorOccur = true; IPAddr_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_IPADDR_PARAMENT; - return FALSE; + return false; } XCHAR tszKeyName[128]; XCHAR tszMsgBuffer[128]; @@ -92,9 +92,9 @@ XBOOL CModulePlugin_Interface::PluginCore_Call(XCHAR*** pppHDRList, int nListCou BaseLib_OperatorString_GetKeyValue((*pppHDRList)[1], "=", tszKeyName, st_IPAddr.tszIPAddr); if (0 != xdb_search_by_string(&st_DBSearch, st_IPAddr.tszIPAddr, tszMsgBuffer, sizeof(tszMsgBuffer))) { - IPAddr_IsErrorOccur = TRUE; + IPAddr_IsErrorOccur = true; IPAddr_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_IPADDR_NOTFOUND; - return FALSE; + return false; } //中国|0|内蒙古|通辽市|联通 _stxscanf(tszMsgBuffer, _X("%[^|]|%[^|]|%[^|]|%[^|]|%[^|]"), st_IPAddr.tszIPCountry, st_IPAddr.tszIPCounty, st_IPAddr.tszIPProvince, st_IPAddr.tszIPCity, st_IPAddr.tszIPISP); @@ -114,5 +114,5 @@ XBOOL CModulePlugin_Interface::PluginCore_Call(XCHAR*** pppHDRList, int nListCou *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.h index 8d14e27..c3045d4 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/ModulePlugin_Interface/ModulePlugin_Interface.h @@ -17,9 +17,9 @@ public: CModulePlugin_Interface(); ~CModulePlugin_Interface(); public: - XBOOL PluginCore_Init(XPVOID lParam); + bool PluginCore_Init(XPVOID lParam); void PluginCore_UnInit(); - XBOOL PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); + bool PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); protected: private: xdb_searcher_t st_DBSearch; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/PluginIPAddr_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/PluginIPAddr_Define.h index 2b96e5d..5136ade 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/PluginIPAddr_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/PluginIPAddr_Define.h @@ -41,7 +41,7 @@ extern "C" XLONG PluginCore_GetLastError(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL PluginCore_Init(XPVOID lParam = NULL); +extern "C" bool PluginCore_Init(XPVOID lParam = NULL); /******************************************************************** 函数名称:PluginCore_UnInit 函数功能:卸载插件 @@ -59,4 +59,4 @@ extern "C" void PluginCore_UnInit(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file +extern "C" bool PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp index c6b634e..897dff7 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/dllmain.cpp @@ -1,7 +1,7 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -XBOOL APIENTRY DllMain( HMODULE hModule, +bool APIENTRY DllMain( HMODULE hModule, XLONG ul_reason_for_call, XPVOID lpReserved ) @@ -14,5 +14,5 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp index 8a93c19..8599601 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL IPAddr_IsErrorOccur = FALSE; +bool IPAddr_IsErrorOccur = false; XLONG IPAddr_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_Interface m_PluginIPAddr; @@ -25,7 +25,7 @@ extern "C" XLONG PluginCore_GetLastError() /********************************************************************************* * 导出函数定义 * *********************************************************************************/ -extern "C" XBOOL PluginCore_Init(XPVOID lParam) +extern "C" bool PluginCore_Init(XPVOID lParam) { return m_PluginIPAddr.PluginCore_Init(lParam); } @@ -33,7 +33,7 @@ extern "C" void PluginCore_UnInit() { m_PluginIPAddr.PluginCore_UnInit(); } -extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) +extern "C" bool PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { return m_PluginIPAddr.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.h index f4fe4ec..e5b8c1c 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_IPAddr/pch.h @@ -33,7 +33,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern XBOOL IPAddr_IsErrorOccur; +extern bool IPAddr_IsErrorOccur; extern XLONG IPAddr_dwErrorCode; #include "ModulePlugin_IPAddr/ModulePlugin_IPAddr.h" diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h index 7a84a83..ef80d1b 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h @@ -83,7 +83,7 @@ extern "C" XLONG PluginCore_GetLastError(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL PluginCore_Init(XPVOID lParam = NULL); +extern "C" bool PluginCore_Init(XPVOID lParam = NULL); /******************************************************************** 函数名称:PluginCore_UnInit 函数功能:卸载插件 @@ -101,4 +101,4 @@ extern "C" void PluginCore_UnInit(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file +extern "C" bool PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp index 0c80d27..c652dee 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp @@ -33,11 +33,11 @@ CPlugin_Meter::~CPlugin_Meter() 意思:是否成功 备注: *********************************************************************/ -XBOOL CPlugin_Meter::PluginCore_Init(XPVOID lParam) +bool CPlugin_Meter::PluginCore_Init(XPVOID lParam) { - Meter_IsErrorOccur = FALSE; + Meter_IsErrorOccur = false; - return TRUE; + return true; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -49,7 +49,7 @@ XBOOL CPlugin_Meter::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_Meter::PluginCore_UnInit() { - Meter_IsErrorOccur = FALSE; + Meter_IsErrorOccur = false; } /******************************************************************** 函数名称:PluginCore_Call @@ -59,15 +59,15 @@ void CPlugin_Meter::PluginCore_UnInit() 意思:是否成功 备注: *********************************************************************/ -XBOOL CPlugin_Meter::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) +bool CPlugin_Meter::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Meter_IsErrorOccur = FALSE; + Meter_IsErrorOccur = false; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Meter_IsErrorOccur = TRUE; + Meter_IsErrorOccur = true; Meter_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_METER_PARAMENT; - return FALSE; + return false; } XCHAR tszKeyName[128]; XCHAR tszParamType[128]; @@ -117,14 +117,14 @@ XBOOL CPlugin_Meter::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* p *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// -XBOOL CPlugin_Meter::Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Json::Value *pSt_JsonObject) +bool CPlugin_Meter::Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Json::Value *pSt_JsonObject) { - Meter_IsErrorOccur = FALSE; + Meter_IsErrorOccur = false; Json::Value st_JsonObejct; if (ENUM_APISERVICE_PLUGIN_METER_LENGTH_KILOMETRE == nSource) @@ -191,11 +191,11 @@ XBOOL CPlugin_Meter::Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Js st_JsonObejct["foot"] = double(nValue * 0.32808399); } (*pSt_JsonObject)["Length"] = st_JsonObejct; - return TRUE; + return true; } -XBOOL CPlugin_Meter::Plugin_Meter_TemperatureConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) +bool CPlugin_Meter::Plugin_Meter_TemperatureConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) { - Meter_IsErrorOccur = FALSE; + Meter_IsErrorOccur = false; Json::Value st_JsonObejct; if (ENUM_APISERVICE_PLUGIN_METER_TEMPERATURE_C == nSource) @@ -206,11 +206,11 @@ XBOOL CPlugin_Meter::Plugin_Meter_TemperatureConvert(int nSource, __int64x nValu st_JsonObejct["degree"] = double(nValue * 0.8); } (*pSt_JsonObject)["Temperature"] = st_JsonObejct; - return TRUE; + return true; } -XBOOL CPlugin_Meter::Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) +bool CPlugin_Meter::Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) { - Meter_IsErrorOccur = FALSE; + Meter_IsErrorOccur = false; Json::Value st_JsonObejct; if (ENUM_APISERVICE_PLUGIN_METER_POWER_W == nSource) @@ -220,11 +220,11 @@ XBOOL CPlugin_Meter::Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Jso st_JsonObejct["ps"] = double(nValue * 0.00136); } (*pSt_JsonObject)["Power"] = st_JsonObejct; - return TRUE; + return true; } -XBOOL CPlugin_Meter::Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) +bool CPlugin_Meter::Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) { - Meter_IsErrorOccur = FALSE; + Meter_IsErrorOccur = false; Json::Value st_JsonObejct; if (ENUM_APISERVICE_PLUGIN_METER_SPEED_KNOT == nSource) @@ -243,5 +243,5 @@ XBOOL CPlugin_Meter::Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Jso st_JsonObejct["kilometer"] = double(nValue * 00.621); } (*pSt_JsonObject)["Power"] = st_JsonObejct; - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.h index 4b1718a..99cb64c 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.h @@ -17,13 +17,13 @@ public: CPlugin_Meter(); ~CPlugin_Meter(); public: - XBOOL PluginCore_Init(XPVOID lParam); + bool PluginCore_Init(XPVOID lParam); void PluginCore_UnInit(); - XBOOL PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); + bool PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); protected: - XBOOL Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Json::Value *pSt_JsonObject); - XBOOL Plugin_Meter_TemperatureConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); - XBOOL Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); - XBOOL Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); + bool Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Json::Value *pSt_JsonObject); + bool Plugin_Meter_TemperatureConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); + bool Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); + bool Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); private: }; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp index 15b0e80..594ff21 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp @@ -1,7 +1,7 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -XBOOL APIENTRY DllMain( HMODULE hModule, +bool APIENTRY DllMain( HMODULE hModule, XLONG ul_reason_for_call, XPVOID lpReserved ) @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return true; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp index 0b3d2cc..ffe1cc0 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Meter_IsErrorOccur = FALSE; +bool Meter_IsErrorOccur = false; XLONG Meter_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Meter m_PluginMeter; @@ -25,7 +25,7 @@ extern "C" XLONG PluginCore_GetLastError() /********************************************************************************* * 导出函数定义 * *********************************************************************************/ -extern "C" XBOOL PluginCore_Init(XPVOID lParam) +extern "C" bool PluginCore_Init(XPVOID lParam) { return m_PluginMeter.PluginCore_Init(lParam); } @@ -33,7 +33,7 @@ extern "C" void PluginCore_UnInit() { m_PluginMeter.PluginCore_UnInit(); } -extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) +extern "C" bool PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { return m_PluginMeter.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h index 44a8425..1f13d1b 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h @@ -35,7 +35,7 @@ // Purpose: 公用头文件 // History: *********************************************************************/ -extern XBOOL Meter_IsErrorOccur; +extern bool Meter_IsErrorOccur; extern XLONG Meter_dwErrorCode; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/PluginPass_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/PluginPass_Define.h index 303b78c..0226572 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/PluginPass_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/PluginPass_Define.h @@ -30,7 +30,7 @@ extern "C" XLONG PluginCore_GetLastError(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL PluginCore_Init(XPVOID lParam = NULL); +extern "C" bool PluginCore_Init(XPVOID lParam = NULL); /******************************************************************** 函数名称:PluginCore_UnInit 函数功能:卸载插件 @@ -48,4 +48,4 @@ extern "C" void PluginCore_UnInit(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file +extern "C" bool PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp index c778124..ca43367 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.cpp @@ -33,11 +33,11 @@ CPlugin_Password::~CPlugin_Password() 意思:是否成功 备注: *********************************************************************/ -XBOOL CPlugin_Password::PluginCore_Init(XPVOID lParam) +bool CPlugin_Password::PluginCore_Init(XPVOID lParam) { - Pass_IsErrorOccur = FALSE; + Pass_IsErrorOccur = false; - return TRUE; + return true; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -49,7 +49,7 @@ XBOOL CPlugin_Password::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_Password::PluginCore_UnInit() { - Pass_IsErrorOccur = FALSE; + Pass_IsErrorOccur = false; } /******************************************************************** 函数名称:PluginCore_Call @@ -59,15 +59,15 @@ void CPlugin_Password::PluginCore_UnInit() 意思:是否成功 备注: *********************************************************************/ -XBOOL CPlugin_Password::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) +bool CPlugin_Password::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Pass_IsErrorOccur = FALSE; + Pass_IsErrorOccur = false; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Pass_IsErrorOccur = TRUE; + Pass_IsErrorOccur = true; Pass_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PASS_PARAMENT; - return FALSE; + return false; } XCHAR tszKeyName[128]; XCHAR tszParamType[128]; @@ -97,14 +97,14 @@ XBOOL CPlugin_Password::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// -XBOOL CPlugin_Password::Plugin_Password_Creator(LPCXSTR lpszPassType, LPCXSTR lpszLength, XCHAR* ptszPassStr) +bool CPlugin_Password::Plugin_Password_Creator(LPCXSTR lpszPassType, LPCXSTR lpszLength, XCHAR* ptszPassStr) { - Pass_IsErrorOccur = FALSE; + Pass_IsErrorOccur = false; int nType = _ttxoi(lpszPassType); int nLen = _ttxoi(lpszLength); @@ -129,5 +129,5 @@ XBOOL CPlugin_Password::Plugin_Password_Creator(LPCXSTR lpszPassType, LPCXSTR lp _xstprintf(&tszPassBuffer[i], _X("%c"), (rand() % 26) + 65); } } - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.h index 63d2064..bf79a25 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/Plugin_Password/Plugin_Password.h @@ -17,10 +17,10 @@ public: CPlugin_Password(); ~CPlugin_Password(); public: - XBOOL PluginCore_Init(XPVOID lParam); + bool PluginCore_Init(XPVOID lParam); void PluginCore_UnInit(); - XBOOL PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); + bool PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); protected: - XBOOL Plugin_Password_Creator(LPCXSTR lpszPassType, LPCXSTR lpszLength, XCHAR* ptszPassStr); + bool Plugin_Password_Creator(LPCXSTR lpszPassType, LPCXSTR lpszLength, XCHAR* ptszPassStr); private: }; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp index 15b0e80..594ff21 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/dllmain.cpp @@ -1,7 +1,7 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -XBOOL APIENTRY DllMain( HMODULE hModule, +bool APIENTRY DllMain( HMODULE hModule, XLONG ul_reason_for_call, XPVOID lpReserved ) @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return true; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp index 616427c..9ca32e6 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Pass_IsErrorOccur = FALSE; +bool Pass_IsErrorOccur = false; XLONG Pass_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Password m_PluginPass; @@ -25,7 +25,7 @@ extern "C" XLONG PluginCore_GetLastError() /********************************************************************************* * 导出函数定义 * *********************************************************************************/ -extern "C" XBOOL PluginCore_Init(XPVOID lParam) +extern "C" bool PluginCore_Init(XPVOID lParam) { return m_PluginPass.PluginCore_Init(lParam); } @@ -33,7 +33,7 @@ extern "C" void PluginCore_UnInit() { m_PluginPass.PluginCore_UnInit(); } -extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) +extern "C" bool PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { return m_PluginPass.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.h index 14d058c..b428935 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/pch.h @@ -33,7 +33,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern XBOOL Pass_IsErrorOccur; +extern bool Pass_IsErrorOccur; extern XLONG Pass_dwErrorCode; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp index 691b2c8..a749d7f 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.cpp @@ -33,15 +33,15 @@ CModulePlugin_APIPhone::~CModulePlugin_APIPhone() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModulePlugin_APIPhone::PluginCore_Init(XPVOID lParam) +bool CModulePlugin_APIPhone::PluginCore_Init(XPVOID lParam) { - Phone_IsErrorOccur = FALSE; + Phone_IsErrorOccur = false; if (!m_DBPhone.ModuleDatabase_Phone_Init(_X("./XEngine_DBFile/phone.dat"))) { - return FALSE; + return false; } - return TRUE; + return true; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -53,7 +53,7 @@ XBOOL CModulePlugin_APIPhone::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CModulePlugin_APIPhone::PluginCore_UnInit() { - Phone_IsErrorOccur = FALSE; + Phone_IsErrorOccur = false; m_DBPhone.ModuleDatabase_Phone_Destory(); } @@ -65,15 +65,15 @@ void CModulePlugin_APIPhone::PluginCore_UnInit() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModulePlugin_APIPhone::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) +bool CModulePlugin_APIPhone::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Phone_IsErrorOccur = FALSE; + Phone_IsErrorOccur = false; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = true; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_PARAMENT; - return FALSE; + return false; } XCHAR tszKeyName[128]; XCHAR tszKeyValue[128]; @@ -91,7 +91,7 @@ XBOOL CModulePlugin_APIPhone::PluginCore_Call(XCHAR*** pppHDRList, int nListCoun st_PhoneInfo.nPhoneNumber = _ttxoll(tszKeyValue); if (!m_DBPhone.ModuleDatabase_Phone_Query(tszKeyValue, &st_PhoneInfo)) { - return FALSE; + return false; } st_JsonObject["nPhoneNumber"] = (Json::Value::Int64)st_PhoneInfo.nPhoneNumber; st_JsonObject["tszProvincer"] = st_PhoneInfo.tszProvincer; @@ -107,5 +107,5 @@ XBOOL CModulePlugin_APIPhone::PluginCore_Call(XCHAR*** pppHDRList, int nListCoun *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.h index 2a4a7e2..904a564 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_APIPhone/ModulePlugin_APIPhone.h @@ -17,9 +17,9 @@ public: CModulePlugin_APIPhone(); ~CModulePlugin_APIPhone(); public: - XBOOL PluginCore_Init(XPVOID lParam); + bool PluginCore_Init(XPVOID lParam); void PluginCore_UnInit(); - XBOOL PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); + bool PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); protected: private: CModulePlugin_DBPhone m_DBPhone; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp index 154a287..cd0f1de 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.cpp @@ -34,35 +34,35 @@ CModulePlugin_DBPhone::~CModulePlugin_DBPhone() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Init(LPCXSTR lpszSQLFile) +bool CModulePlugin_DBPhone::ModuleDatabase_Phone_Init(LPCXSTR lpszSQLFile) { - Phone_IsErrorOccur = FALSE; + Phone_IsErrorOccur = false; if (NULL == lpszSQLFile) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = true; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_PARAMENT; - return FALSE; + return false; } //打开数据库 FILE* pSt_File = _xtfopen(lpszSQLFile, _X("rb")); if (NULL == pSt_File) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = true; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return FALSE; + return false; } //申请内存 ptszMsgBuffer = (XCHAR*)malloc(XENGINE_APISERVICE_DATABASE_PHONE_BUFFER_SIZE); if (NULL == ptszMsgBuffer) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = true; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_MALLOC; - return FALSE; + return false; } memset(ptszMsgBuffer, '\0', XENGINE_APISERVICE_DATABASE_PHONE_BUFFER_SIZE); //读取内容 - while (TRUE) + while (true) { int nRet = fread(ptszMsgBuffer + nFLen, 1, 2048, pSt_File); if (nRet <= 0) @@ -74,7 +74,7 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Init(LPCXSTR lpszSQLFile) fclose(pSt_File); memcpy(&st_PhoneHdr, ptszMsgBuffer, sizeof(XENGINE_DBPHONEHDR)); nCount = (nFLen - st_PhoneHdr.nOffset) / XENGINE_APISERVICE_DATABASE_PHONE_INDEX_LEN; - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_Phone_Destory @@ -84,13 +84,13 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Init(LPCXSTR lpszSQLFile) 意思:是否成功 备注: *********************************************************************/ -XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Destory() +bool CModulePlugin_DBPhone::ModuleDatabase_Phone_Destory() { - Phone_IsErrorOccur = FALSE; + Phone_IsErrorOccur = false; free(ptszMsgBuffer); ptszMsgBuffer = NULL; - return TRUE; + return true; } /******************************************************************** 函数名称:ModuleDatabase_Phone_Query @@ -110,15 +110,15 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Destory() 意思:是否成功 备注: *********************************************************************/ -XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, XENGINE_PHONEINFO* pSt_PhoneInfo) +bool CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, XENGINE_PHONEINFO* pSt_PhoneInfo) { - Phone_IsErrorOccur = FALSE; + Phone_IsErrorOccur = false; if ((NULL == lpszPhoneNumber) || (NULL == pSt_PhoneInfo)) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = true; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_PARAMENT; - return FALSE; + return false; } size_t nPLen = _tcsxlen(lpszPhoneNumber); size_t nPhone = 0; @@ -162,7 +162,7 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, else { int i = 0; - while (TRUE) + while (true) { if (ptszMsgBuffer[i + st_DBRecord.nOffset] == '\0') { @@ -174,12 +174,12 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, //转换数据 if (!ModuleDatabase_Phone_Convert(ptszMsgBuffer + st_DBRecord.nOffset, i, pSt_PhoneInfo)) { - return FALSE; + return false; } break; } } - return TRUE; + return true; } ////////////////////////////////////////////////////////////////////////// // 保护函数 @@ -207,9 +207,9 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, 意思:是否成功 备注: *********************************************************************/ -XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Convert(LPCXSTR lpszPhoneInfo, int nMsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo) +bool CModulePlugin_DBPhone::ModuleDatabase_Phone_Convert(LPCXSTR lpszPhoneInfo, int nMsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo) { - Phone_IsErrorOccur = FALSE; + Phone_IsErrorOccur = false; XCHAR tszMsgBuffer[128]; memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); @@ -218,38 +218,38 @@ XBOOL CModulePlugin_DBPhone::ModuleDatabase_Phone_Convert(LPCXSTR lpszPhoneInfo, XCHAR* ptszTokStr = _tcsxtok(tszMsgBuffer, _X("|")); if (NULL == ptszTokStr) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = true; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return FALSE; + return false; } _tcsxcpy(pSt_PhoneInfo->tszProvincer, ptszTokStr); //市区 ptszTokStr = _tcsxtok(NULL, _X("|")); if (NULL == ptszTokStr) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = true; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return FALSE; + return false; } _tcsxcpy(pSt_PhoneInfo->tszCity, ptszTokStr); //邮编 ptszTokStr = _tcsxtok(NULL, _X("|")); if (NULL == ptszTokStr) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = true; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return FALSE; + return false; } pSt_PhoneInfo->nZipCode = _ttxoi(ptszTokStr); //区号 ptszTokStr = _tcsxtok(NULL, _X("|")); if (NULL == ptszTokStr) { - Phone_IsErrorOccur = TRUE; + Phone_IsErrorOccur = true; Phone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_PHONE_NOTFOUND; - return FALSE; + return false; } pSt_PhoneInfo->nAreaCode = _ttxoi(ptszTokStr); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.h index c59a682..27bd947 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/ModulePlugin_DBPhone/ModulePlugin_DBPhone.h @@ -32,11 +32,11 @@ public: CModulePlugin_DBPhone(); ~CModulePlugin_DBPhone(); public: - XBOOL ModuleDatabase_Phone_Init(LPCXSTR lpszSQLFile); - XBOOL ModuleDatabase_Phone_Destory(); - XBOOL ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, XENGINE_PHONEINFO* pSt_PhoneInfo); + bool ModuleDatabase_Phone_Init(LPCXSTR lpszSQLFile); + bool ModuleDatabase_Phone_Destory(); + bool ModuleDatabase_Phone_Query(LPCXSTR lpszPhoneNumber, XENGINE_PHONEINFO* pSt_PhoneInfo); protected: - XBOOL ModuleDatabase_Phone_Convert(LPCXSTR lpszPhoneInfo, int nMsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo); + bool ModuleDatabase_Phone_Convert(LPCXSTR lpszPhoneInfo, int nMsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo); private: XENGINE_DBPHONEHDR st_PhoneHdr; private: diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/PluginPhone_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/PluginPhone_Define.h index 12db78f..d3744ec 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/PluginPhone_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/PluginPhone_Define.h @@ -53,7 +53,7 @@ extern "C" XLONG PluginCore_GetLastError(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL PluginCore_Init(XPVOID lParam = NULL); +extern "C" bool PluginCore_Init(XPVOID lParam = NULL); /******************************************************************** 函数名称:PluginCore_UnInit 函数功能:卸载插件 @@ -71,4 +71,4 @@ extern "C" void PluginCore_UnInit(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file +extern "C" bool PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp index 15b0e80..594ff21 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/dllmain.cpp @@ -1,7 +1,7 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -XBOOL APIENTRY DllMain( HMODULE hModule, +bool APIENTRY DllMain( HMODULE hModule, XLONG ul_reason_for_call, XPVOID lpReserved ) @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return true; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp index f2e1e1c..821e5b3 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Phone_IsErrorOccur = FALSE; +bool Phone_IsErrorOccur = false; XLONG Phone_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CModulePlugin_APIPhone m_PluginPhone; @@ -25,7 +25,7 @@ extern "C" XLONG PluginCore_GetLastError() /********************************************************************************* * 导出函数定义 * *********************************************************************************/ -extern "C" XBOOL PluginCore_Init(XPVOID lParam) +extern "C" bool PluginCore_Init(XPVOID lParam) { return m_PluginPhone.PluginCore_Init(lParam); } @@ -33,7 +33,7 @@ extern "C" void PluginCore_UnInit() { m_PluginPhone.PluginCore_UnInit(); } -extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) +extern "C" bool PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { return m_PluginPhone.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.h index 2226235..5192653 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Phone/pch.h @@ -33,7 +33,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern XBOOL Phone_IsErrorOccur; +extern bool Phone_IsErrorOccur; extern XLONG Phone_dwErrorCode; #include "ModulePlugin_DBPhone/ModulePlugin_DBPhone.h" diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp index b2fb51e..7a55066 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.cpp @@ -33,9 +33,9 @@ CPlugin_Timezone::~CPlugin_Timezone() 意思:是否成功 备注: *********************************************************************/ -XBOOL CPlugin_Timezone::PluginCore_Init(XPVOID lParam) +bool CPlugin_Timezone::PluginCore_Init(XPVOID lParam) { - Timezone_IsErrorOccur = FALSE; + Timezone_IsErrorOccur = false; MODULEPLUGIN_TIMEZONE st_TimeZone; memset(&st_TimeZone, '\0', sizeof(MODULEPLUGIN_TIMEZONE)); @@ -497,7 +497,7 @@ XBOOL CPlugin_Timezone::PluginCore_Init(XPVOID lParam) st_TimeZone.st_TimeZone.wHour = 14; _tcsxcpy(st_TimeZone.tszTimeCountry, _X("基里巴斯线岛时间")); stl_MapTimezone.insert(make_pair(_X("KLT"), st_TimeZone)); - return TRUE; + return true; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -509,7 +509,7 @@ XBOOL CPlugin_Timezone::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_Timezone::PluginCore_UnInit() { - Timezone_IsErrorOccur = FALSE; + Timezone_IsErrorOccur = false; stl_MapTimezone.clear(); } @@ -521,15 +521,15 @@ void CPlugin_Timezone::PluginCore_UnInit() 意思:是否成功 备注: *********************************************************************/ -XBOOL CPlugin_Timezone::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) +bool CPlugin_Timezone::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Timezone_IsErrorOccur = FALSE; + Timezone_IsErrorOccur = false; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Timezone_IsErrorOccur = TRUE; + Timezone_IsErrorOccur = true; Timezone_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_TIMEZONE_PARAMENT; - return FALSE; + return false; } XCHAR tszKeyName[128]; XCHAR tszParamType[128]; @@ -561,19 +561,19 @@ XBOOL CPlugin_Timezone::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int if (!Plugin_Timezone_Convert(tszParamCvt, tszParamTime, ptszMsgBuffer, pInt_MsgLen)) { *pInt_HTTPCode = 404; - return FALSE; + return false; } } *pInt_HTTPCode = 200; - return TRUE; + return true; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// -XBOOL CPlugin_Timezone::Plugin_Timezone_Count(XCHAR* ptszMsgBufer, int* pInt_Len) +bool CPlugin_Timezone::Plugin_Timezone_Count(XCHAR* ptszMsgBufer, int* pInt_Len) { - Timezone_IsErrorOccur = FALSE; + Timezone_IsErrorOccur = false; Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -587,11 +587,11 @@ XBOOL CPlugin_Timezone::Plugin_Timezone_Count(XCHAR* ptszMsgBufer, int* pInt_Len *pInt_Len = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len); - return TRUE; + return true; } -XBOOL CPlugin_Timezone::Plugin_Timezone_List(LPCXSTR lpszConvert, XCHAR* ptszMsgBufer, int* pInt_Len) +bool CPlugin_Timezone::Plugin_Timezone_List(LPCXSTR lpszConvert, XCHAR* ptszMsgBufer, int* pInt_Len) { - Timezone_IsErrorOccur = FALSE; + Timezone_IsErrorOccur = false; int nPosStart = 0; int nPosEnd = 0; @@ -622,11 +622,11 @@ XBOOL CPlugin_Timezone::Plugin_Timezone_List(LPCXSTR lpszConvert, XCHAR* ptszMsg *pInt_Len = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len); - return TRUE; + return true; } -XBOOL CPlugin_Timezone::Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lpszTimeStr, XCHAR* ptszMsgBufer, int* pInt_Len) +bool CPlugin_Timezone::Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lpszTimeStr, XCHAR* ptszMsgBufer, int* pInt_Len) { - Timezone_IsErrorOccur = FALSE; + Timezone_IsErrorOccur = false; Json::Value st_JsonRoot; Json::Value st_JsonObject; @@ -635,7 +635,7 @@ XBOOL CPlugin_Timezone::Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lps unordered_map::const_iterator stl_MapIterator = stl_MapTimezone.find(lpszConvert); if (stl_MapIterator == stl_MapTimezone.end()) { - return FALSE; + return false; } XCHAR tszTimeStr[64]; XENGINE_LIBTIMER st_TimeStart; @@ -661,5 +661,5 @@ XBOOL CPlugin_Timezone::Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lps *pInt_Len = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBufer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_Len); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.h index 1b0371b..2848903 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Plugin_Timezone/Plugin_Timezone.h @@ -23,13 +23,13 @@ public: CPlugin_Timezone(); ~CPlugin_Timezone(); public: - XBOOL PluginCore_Init(XPVOID lParam); + bool PluginCore_Init(XPVOID lParam); void PluginCore_UnInit(); - XBOOL PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); + bool PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); protected: - XBOOL Plugin_Timezone_Count(XCHAR* ptszMsgBufer, int* pInt_Len); - XBOOL Plugin_Timezone_List(LPCXSTR lpszConvert, XCHAR* ptszMsgBufer, int* pInt_Len); - XBOOL Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lpszTimeStr, XCHAR* ptszMsgBufer, int* pInt_Len); + bool Plugin_Timezone_Count(XCHAR* ptszMsgBufer, int* pInt_Len); + bool Plugin_Timezone_List(LPCXSTR lpszConvert, XCHAR* ptszMsgBufer, int* pInt_Len); + bool Plugin_Timezone_Convert(LPCXSTR lpszConvert, LPCXSTR lpszTimeStr, XCHAR* ptszMsgBufer, int* pInt_Len); private: unordered_map stl_MapTimezone; }; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Timezone_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Timezone_Define.h index ab2e9f5..bf60420 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Timezone_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/Timezone_Define.h @@ -30,7 +30,7 @@ extern "C" XLONG PluginCore_GetLastError(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL PluginCore_Init(XPVOID lParam = NULL); +extern "C" bool PluginCore_Init(XPVOID lParam = NULL); /******************************************************************** 函数名称:PluginCore_UnInit 函数功能:卸载插件 @@ -48,4 +48,4 @@ extern "C" void PluginCore_UnInit(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file +extern "C" bool PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp index 15b0e80..594ff21 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/dllmain.cpp @@ -1,7 +1,7 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -XBOOL APIENTRY DllMain( HMODULE hModule, +bool APIENTRY DllMain( HMODULE hModule, XLONG ul_reason_for_call, XPVOID lpReserved ) @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return true; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp index 5140f0d..555197c 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Timezone_IsErrorOccur = FALSE; +bool Timezone_IsErrorOccur = false; XLONG Timezone_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Timezone m_PluginTimes; @@ -25,7 +25,7 @@ extern "C" XLONG PluginCore_GetLastError() /********************************************************************************* * 导出函数定义 * *********************************************************************************/ -extern "C" XBOOL PluginCore_Init(XPVOID lParam) +extern "C" bool PluginCore_Init(XPVOID lParam) { return m_PluginTimes.PluginCore_Init(lParam); } @@ -33,7 +33,7 @@ extern "C" void PluginCore_UnInit() { m_PluginTimes.PluginCore_UnInit(); } -extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) +extern "C" bool PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { return m_PluginTimes.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.h index 09b583f..5e01bd3 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/pch.h @@ -37,7 +37,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern XBOOL Timezone_IsErrorOccur; +extern bool Timezone_IsErrorOccur; extern XLONG Timezone_dwErrorCode; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/PluginZodiac_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/PluginZodiac_Define.h index 6492b4f..91ce91c 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/PluginZodiac_Define.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/PluginZodiac_Define.h @@ -30,7 +30,7 @@ extern "C" XLONG PluginCore_GetLastError(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL PluginCore_Init(XPVOID lParam = NULL); +extern "C" bool PluginCore_Init(XPVOID lParam = NULL); /******************************************************************** 函数名称:PluginCore_UnInit 函数功能:卸载插件 @@ -48,4 +48,4 @@ extern "C" void PluginCore_UnInit(); 意思:是否成功 备注: *********************************************************************/ -extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file +extern "C" bool PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp index 57f8aad..b6294d3 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.cpp @@ -45,11 +45,11 @@ CPlugin_Zodiac::~CPlugin_Zodiac() 意思:是否成功 备注: *********************************************************************/ -XBOOL CPlugin_Zodiac::PluginCore_Init(XPVOID lParam) +bool CPlugin_Zodiac::PluginCore_Init(XPVOID lParam) { - Zodiac_IsErrorOccur = FALSE; + Zodiac_IsErrorOccur = false; - return TRUE; + return true; } /******************************************************************** 函数名称:PluginCore_UnInit @@ -61,7 +61,7 @@ XBOOL CPlugin_Zodiac::PluginCore_Init(XPVOID lParam) *********************************************************************/ void CPlugin_Zodiac::PluginCore_UnInit() { - Zodiac_IsErrorOccur = FALSE; + Zodiac_IsErrorOccur = false; } /******************************************************************** 函数名称:PluginCore_Call @@ -71,15 +71,15 @@ void CPlugin_Zodiac::PluginCore_UnInit() 意思:是否成功 备注: *********************************************************************/ -XBOOL CPlugin_Zodiac::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) +bool CPlugin_Zodiac::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { - Zodiac_IsErrorOccur = FALSE; + Zodiac_IsErrorOccur = false; if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) { - Zodiac_IsErrorOccur = TRUE; + Zodiac_IsErrorOccur = true; Zodiac_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_ZODIAC_PARAMENT; - return FALSE; + return false; } XCHAR tszKeyName[128]; XCHAR tszValueName[128]; @@ -109,25 +109,25 @@ XBOOL CPlugin_Zodiac::PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* *pInt_HTTPCode = 200; *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); - return TRUE; + return true; } ////////////////////////////////////////////////////////////////////////// // 保护函数 ////////////////////////////////////////////////////////////////////////// -XBOOL CPlugin_Zodiac::Plugin_Zodiac_Chinese(LPCXSTR lpszDate, XCHAR* ptszCZodiac) +bool CPlugin_Zodiac::Plugin_Zodiac_Chinese(LPCXSTR lpszDate, XCHAR* ptszCZodiac) { - Zodiac_IsErrorOccur = FALSE; + Zodiac_IsErrorOccur = false; int nDate = _ttxoi(lpszDate); int nYear = nDate / 10000; nYear = nYear % 12; _tcsxcpy(ptszCZodiac, m_StrChinese[nYear].c_str()); - return TRUE; + return true; } -XBOOL CPlugin_Zodiac::Plugin_Zodiac_English(LPCXSTR lpszDate, XCHAR* ptszEZodiac) +bool CPlugin_Zodiac::Plugin_Zodiac_English(LPCXSTR lpszDate, XCHAR* ptszEZodiac) { - Zodiac_IsErrorOccur = FALSE; + Zodiac_IsErrorOccur = false; int nMonth = 0; int nDay = 0; @@ -155,5 +155,5 @@ XBOOL CPlugin_Zodiac::Plugin_Zodiac_English(LPCXSTR lpszDate, XCHAR* ptszEZodiac 为0就表示一个月中的前一个星座,否则为后一个星座, 比如生日为5月6号,则对应输出 constells[4][0] 对应金牛座*/ _tcsxcpy(ptszEZodiac, m_StrEnglish[nMonth - 1][nDay / nConstell[nMonth]].c_str()); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.h index 859f3e8..3d6b0de 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/Plugin_Zodiac/Plugin_Zodiac.h @@ -17,12 +17,12 @@ public: CPlugin_Zodiac(); ~CPlugin_Zodiac(); public: - XBOOL PluginCore_Init(XPVOID lParam); + bool PluginCore_Init(XPVOID lParam); void PluginCore_UnInit(); - XBOOL PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); + bool PluginCore_Call(XCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen); protected: - XBOOL Plugin_Zodiac_Chinese(LPCXSTR lpszDate, XCHAR* ptszCZodiac); - XBOOL Plugin_Zodiac_English(LPCXSTR lpszDate, XCHAR* ptszEZodiac); + bool Plugin_Zodiac_Chinese(LPCXSTR lpszDate, XCHAR* ptszCZodiac); + bool Plugin_Zodiac_English(LPCXSTR lpszDate, XCHAR* ptszEZodiac); private: string m_StrChinese[12]; }; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp index 15b0e80..594ff21 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/dllmain.cpp @@ -1,7 +1,7 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" -XBOOL APIENTRY DllMain( HMODULE hModule, +bool APIENTRY DllMain( HMODULE hModule, XLONG ul_reason_for_call, XPVOID lpReserved ) @@ -14,6 +14,6 @@ XBOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_DETACH: break; } - return TRUE; + return true; } diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp index 9b778e7..c598bc1 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.cpp @@ -11,7 +11,7 @@ // Purpose: 导出实现 // History: *********************************************************************/ -XBOOL Zodiac_IsErrorOccur = FALSE; +bool Zodiac_IsErrorOccur = false; XLONG Zodiac_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// CPlugin_Zodiac m_PluginZodiac; @@ -25,7 +25,7 @@ extern "C" XLONG PluginCore_GetLastError() /********************************************************************************* * 导出函数定义 * *********************************************************************************/ -extern "C" XBOOL PluginCore_Init(XPVOID lParam) +extern "C" bool PluginCore_Init(XPVOID lParam) { return m_PluginZodiac.PluginCore_Init(lParam); } @@ -33,7 +33,7 @@ extern "C" void PluginCore_UnInit() { m_PluginZodiac.PluginCore_UnInit(); } -extern "C" XBOOL PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) +extern "C" bool PluginCore_Call(XCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, XCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCXSTR lpszMsgBuffer, int nMsgLen) { return m_PluginZodiac.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.h index d7b28c1..30b983f 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.h +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/pch.h @@ -35,7 +35,7 @@ using namespace std; // Purpose: 公用头文件 // History: *********************************************************************/ -extern XBOOL Zodiac_IsErrorOccur; +extern bool Zodiac_IsErrorOccur; extern XLONG Zodiac_dwErrorCode; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp index e1e23ae..f13b6d4 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.cpp @@ -10,14 +10,14 @@ // Purpose: 配置文件操作代码 // History: *********************************************************************/ -XBOOL XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* pSt_Configure) +bool XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* pSt_Configure) { LPCXSTR lpszConfigFile = _X("./XEngine_Config/XEngine_Config.json"); if (!ModuleConfigure_Json_File(lpszConfigFile, pSt_Configure)) { printf("解析配置文件失败,ModuleConfigure_Json_File:%lX\n", ModuleConfigure_GetLastError()); - return FALSE; + return false; } for (int i = 0; i < argc; i++) @@ -25,7 +25,7 @@ XBOOL XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* p if ((0 == _tcsxcmp("-h", argv[i])) || (0 == _tcsxcmp("-H", argv[i]))) { XEngine_Configure_Help(); - return FALSE; + return false; } else if (0 == _tcsxcmp("-d", argv[i])) { @@ -33,7 +33,7 @@ XBOOL XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* p } } - return TRUE; + return true; } void XEngine_Configure_Help() diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.h index b23e85e..9a5060f 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Configure.h @@ -10,5 +10,5 @@ // Purpose: 配置文件操作代码 // History: *********************************************************************/ -XBOOL XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* pSt_Configure); +bool XEngine_Configure_Parament(int argc, char** argv, XENGINE_SERVICECONFIG* pSt_Configure); void XEngine_Configure_Help(); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp index 4af235c..3d31fa2 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp @@ -55,7 +55,7 @@ XHTHREAD CALLBACK HTTPTask_TastPost_Thread(XPVOID lParam) } return 0; } -XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR*** ppptszHDRList, int nHDRCount) +bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR*** ppptszHDRList, int nHDRCount) { int nMsgLen = 4096; LPCXSTR lpszMethodPost = _X("POST"); @@ -67,7 +67,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = true; //收到回复后就关闭 XCHAR** pptszList; XCHAR tszUrlName[128]; @@ -81,14 +81,14 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS //是不是代理转发 if (HTTPTask_TaskPost_SLProxy(lpszClientAddr, pSt_HTTPParam->tszHttpUri, ppptszHDRList, nHDRCount)) { - return TRUE; + return true; } st_HDRParam.nHttpCode = 404; HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return false; } XCHAR tszKey[MAX_PATH]; XCHAR tszValue[MAX_PATH]; @@ -120,7 +120,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return false; } //获得函数名 BaseLib_OperatorString_GetKeyValue(pptszList[0], "=", tszKey, tszValue); @@ -131,14 +131,14 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return false; } //首先处理插件 int nPluginType = 0; if (ModulePlugin_Loader_Find(tszValue, &nPluginType)) { XEngine_PluginTask_Handle(tszValue, lpszClientAddr, lpszRVBuffer, nRVLen, &pptszList, nListCount, nPluginType); - return TRUE; + return true; } if (0 == _tcsxnicmp(lpszMethodPost, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodPost))) { @@ -155,7 +155,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return false; } HTTPTask_TastPost_P2PClient(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue)); } @@ -172,7 +172,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return false; } HTTPTask_TastPost_PostCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue)); } @@ -189,7 +189,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return false; } HTTPTask_TastPost_LogInfo(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue)); } @@ -206,7 +206,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return false; } HTTPTask_TaskPost_QRCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue)); } @@ -223,7 +223,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return false; } HTTPTask_TastPost_SocketTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue)); } @@ -240,7 +240,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return false; } HTTPTask_TastPost_DTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue)); } @@ -276,7 +276,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return false; } HTTPTask_TaskGet_IDCard(lpszClientAddr, tszValue); } @@ -293,7 +293,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return false; } HTTPTask_TaskGet_BankInfo(lpszClientAddr, tszValue); } @@ -314,7 +314,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return false; } memset(tszKey, '\0', sizeof(tszKey)); @@ -338,7 +338,7 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); - return FALSE; + return false; } memset(tszKey, '\0', sizeof(tszKey)); @@ -372,5 +372,5 @@ XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXS XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:%s,协议错误"), lpszClientAddr); } BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h index a0b58ac..56a3f0d 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h @@ -13,4 +13,4 @@ //任务处理池,用来获取一个完整包 XHTHREAD CALLBACK HTTPTask_TastPost_Thread(XPVOID lParam); //任务处理相关函数,处理包的内容 -XBOOL HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR*** ppptszHDRList, int nHDRCount); \ No newline at end of file +bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR*** ppptszHDRList, int nHDRCount); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h index c63abf4..1969ced 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h @@ -85,7 +85,7 @@ using namespace std; *********************************************************************/ #define XENGIEN_APISERVICE_BUFFER_SIZE (1024 * 1024 * 10) -extern XBOOL bIsRun; +extern bool bIsRun; extern XHANDLE xhLog; //HTTP服务器 extern XHANDLE xhHTTPSocket; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp index a93d2f8..a207f3c 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp @@ -10,7 +10,7 @@ // Purpose: 主要入口函数 // History: *********************************************************************/ -XBOOL bIsRun = FALSE; +bool bIsRun = false; XHANDLE xhLog = NULL; //HTTP服务器 XHANDLE xhHTTPSocket = NULL; @@ -29,7 +29,7 @@ void ServiceApp_Stop(int signo) if (bIsRun) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("服务器退出...")); - bIsRun = FALSE; + bIsRun = false; //销毁HTTP资源 NetCore_TCPXCore_DestroyEx(xhHTTPSocket); SocketOpt_HeartBeat_DestoryEx(xhHTTPHeart); @@ -90,7 +90,7 @@ int main(int argc, char** argv) WSADATA st_WSAData; WSAStartup(MAKEWORD(2, 2), &st_WSAData); #endif - bIsRun = TRUE; + bIsRun = true; LPCXSTR lpszHTTPMime = _X("./XEngine_Config/HttpMime.types"); LPCXSTR lpszHTTPCode = _X("./XEngine_Config/HttpCode.types"); LPCXSTR lpszLogFile = _X("./XEngine_Log/XEngine_HttpApp.Log"); @@ -323,7 +323,7 @@ int main(int argc, char** argv) XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,加载的Lib插件:%d 个,Lua插件:%d 个"), st_PluginLibConfig.pStl_ListPlugin->size(), st_PluginLuaConfig.pStl_ListPlugin->size()); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("所有服务成功启动,服务运行中,XEngine版本:%s,发行版本次数:%d,当前版本:%s。。。"), BaseLib_OperatorVer_XGetStr(), st_ServiceConfig.st_XVer.pStl_ListVer->size(), st_ServiceConfig.st_XVer.pStl_ListVer->front().c_str()); - while (TRUE) + while (true) { std::this_thread::sleep_for(std::chrono::seconds(1)); } @@ -332,7 +332,7 @@ XENGINE_SERVICEAPP_EXIT: if (bIsRun) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("有服务启动失败,服务器退出...")); - bIsRun = FALSE; + bIsRun = false; //销毁HTTP资源 NetCore_TCPXCore_DestroyEx(xhHTTPSocket); SocketOpt_HeartBeat_DestoryEx(xhHTTPHeart); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp index db7882d..eecee3c 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.cpp @@ -11,12 +11,12 @@ // History: *********************************************************************/ //////////////////////////////////////////////////////////////////////////下面是HTTP网络IO相关代码处理函数 -XBOOL CALLBACK Network_Callback_HTTPLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) +bool CALLBACK Network_Callback_HTTPLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { SocketOpt_HeartBeat_InsertAddrEx(xhHTTPHeart, lpszClientAddr); HttpProtocol_Server_CreateClientEx(xhHTTPPacket, lpszClientAddr, 0); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,连接到服务器"), lpszClientAddr); - return TRUE; + return true; } void CALLBACK Network_Callback_HTTPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam) { @@ -30,14 +30,14 @@ void CALLBACK Network_Callback_HTTPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, } void CALLBACK Network_Callback_HTTPLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { - XEngine_Network_Close(lpszClientAddr, FALSE); + XEngine_Network_Close(lpszClientAddr, false); } void CALLBACK Network_Callback_HTTPHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam) { - XEngine_Network_Close(lpszClientAddr, TRUE); + XEngine_Network_Close(lpszClientAddr, true); } //////////////////////////////////////////////////////////////////////////网络IO关闭操作 -void XEngine_Network_Close(LPCXSTR lpszClientAddr, XBOOL bHeart) +void XEngine_Network_Close(LPCXSTR lpszClientAddr, bool bHeart) { if (bHeart) { @@ -51,15 +51,15 @@ void XEngine_Network_Close(LPCXSTR lpszClientAddr, XBOOL bHeart) XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,离开服务器"), lpszClientAddr); } ////////////////////////////////////////////////////////////////////////// -XBOOL XEngine_Network_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen) +bool XEngine_Network_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen) { //发送数据给指定客户端 if (!NetCore_TCPXCore_SendEx(xhHTTPSocket, lpszClientAddr, lpszMsgBuffer, nMsgLen)) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送数据失败,错误:%lX"), lpszClientAddr, NetCore_GetLastError()); - return FALSE; + return false; } //发送成功激活一次心跳 SocketOpt_HeartBeat_ActiveAddrEx(xhHTTPHeart, lpszClientAddr); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.h index 0d466d3..79416c7 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Network.h @@ -11,10 +11,10 @@ // History: *********************************************************************/ //HTTP相关 -XBOOL CALLBACK Network_Callback_HTTPLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); +bool CALLBACK Network_Callback_HTTPLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); void CALLBACK Network_Callback_HTTPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam); void CALLBACK Network_Callback_HTTPLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); void CALLBACK Network_Callback_HTTPHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam); //关闭与发送 -void XEngine_Network_Close(LPCXSTR lpszClientAddr, XBOOL bHeart); -XBOOL XEngine_Network_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen); \ No newline at end of file +void XEngine_Network_Close(LPCXSTR lpszClientAddr, bool bHeart); +bool XEngine_Network_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp index 9250849..d1eac69 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.cpp @@ -10,7 +10,7 @@ // Purpose: HTTP任务处理代码 // History: *********************************************************************/ -XBOOL XEngine_PluginTask_Handle(LPCXSTR lpszMethodName, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR*** ppptszList, int nListCount, int nPluginType) +bool XEngine_PluginTask_Handle(LPCXSTR lpszMethodName, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR*** ppptszList, int nListCount, int nPluginType) { int nMsgLen = 0; int nPktLen = 0; @@ -22,7 +22,7 @@ XBOOL XEngine_PluginTask_Handle(LPCXSTR lpszMethodName, LPCXSTR lpszClientAddr, memset(tszPktBuffer, '\0', sizeof(tszPktBuffer)); memset(&st_HDRParament, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); - st_HDRParament.bIsClose = TRUE; + st_HDRParament.bIsClose = true; st_HDRParament.nHttpCode = 200; _tcsxcpy(st_HDRParament.tszMimeType, "json"); @@ -38,5 +38,5 @@ XBOOL XEngine_PluginTask_Handle(LPCXSTR lpszMethodName, LPCXSTR lpszClientAddr, XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的方法:%s,由%s插件模块处理失败,错误:%lX"), lpszClientAddr, lpszMethodName, 0 == nPluginType ? "Lib" : "Lua", ModulePlugin_GetLastError()); } XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.h index 0f5c01d..febad9c 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_PluginTask.h @@ -11,4 +11,4 @@ // History: *********************************************************************/ //插件处理函数 -XBOOL XEngine_PluginTask_Handle(LPCXSTR lpszMethodName, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR*** ppptszList, int nListCount, int nPluginType); \ No newline at end of file +bool XEngine_PluginTask_Handle(LPCXSTR lpszMethodName, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR*** ppptszList, int nListCount, int nPluginType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp index 32dd5db..b8b7a08 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.cpp @@ -1,7 +1,7 @@ #include "../XEngine_Hdr.h" -XBOOL HTTPTask_TaskGet_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber) +bool HTTPTask_TaskGet_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber) { int nMsgLen = 4096; int nPktLen = 4096; @@ -20,7 +20,7 @@ XBOOL HTTPTask_TaskGet_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber) memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = true; //收到回复后就关闭 _tcsxcpy(st_BankInfo.tszBankNumber, lpszBankNumber); _xstprintf(tszUrlBuffer, st_ServiceConfig.st_XApi.tszBankUrl, lpszBankNumber); @@ -33,7 +33,7 @@ XBOOL HTTPTask_TaskGet_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber) HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的银行卡号码错误:%s"), lpszClientAddr, lpszBankNumber); - return FALSE; + return false; } BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); //查询对应名称 @@ -43,12 +43,12 @@ XBOOL HTTPTask_TaskGet_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber) HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的银行卡信息没有找到:%s"), lpszClientAddr, lpszBankNumber); - return FALSE; + return false; } //打包发送 ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, &st_BankInfo); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,发送银行卡信息获取请求给服务器,查询号码:%s"), lpszClientAddr, lpszBankNumber); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.h index d949621..32a6f51 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Bank.h @@ -1,3 +1,3 @@ #pragma once -XBOOL HTTPTask_TaskGet_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber); \ No newline at end of file +bool HTTPTask_TaskGet_BankInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszBankNumber); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp index d7b300f..e0eadad 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -XBOOL HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer) +bool HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer) { int nMsgLen = 4096; int nPktLen = 4096; @@ -17,7 +17,7 @@ XBOOL HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer) memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = true; //收到回复后就关闭 if (!ModuleProtocol_Parse_IDCard(lpszMsgBuffer, &st_IDCardInfo)) { @@ -25,7 +25,7 @@ XBOOL HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer) HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的身份证编号不正确:%s"), lpszClientAddr, lpszMsgBuffer); - return FALSE; + return false; } //验证身份证是否正确 if (!ModuleHelp_IDCard_CheckBirth(&st_IDCardInfo)) @@ -34,7 +34,7 @@ XBOOL HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer) HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的身份证验证生日失败:%s"), lpszClientAddr, lpszMsgBuffer); - return FALSE; + return false; } if (!ModuleHelp_IDCard_CheckSum(&st_IDCardInfo)) { @@ -42,12 +42,12 @@ XBOOL HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer) HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的身份证验证校验码失败:%s"), lpszClientAddr, lpszMsgBuffer); - return FALSE; + return false; } ModuleDatabase_IDCard_QueryRegion(&st_IDRegion, &st_IDCardInfo); ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, &st_IDCardInfo, &st_IDRegion); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求身份证号码验证与信息查询成功,号码:%s"), lpszClientAddr, lpszMsgBuffer); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.h index 56d7a3a..09a5607 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_IDCard.h @@ -1,3 +1,3 @@ #pragma once -XBOOL HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer); \ No newline at end of file +bool HTTPTask_TaskGet_IDCard(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp index 452c02f..ff67988 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.cpp @@ -1,7 +1,7 @@ #include "../XEngine_Hdr.h" -XBOOL HTTPTask_TaskGet_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType) +bool HTTPTask_TaskGet_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType) { int nMsgLen = 4096; int nPktLen = 4096; @@ -16,7 +16,7 @@ XBOOL HTTPTask_TaskGet_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = true; //收到回复后就关闭 st_LanguageInfo.enType = nConvertType; OPenSsl_Codec_UrlDeCodec(lpszMsgBuffer, _tcsxlen(lpszMsgBuffer), st_LanguageInfo.tszSourceStr); @@ -81,5 +81,5 @@ XBOOL HTTPTask_TaskGet_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求语言转换成功,原始语言:%s,目标语言:%s"), lpszClientAddr, st_LanguageInfo.tszSourceStr, st_LanguageInfo.tszDestStr); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.h index 6ffa5f1..ce7cdb6 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Language.h @@ -1,3 +1,3 @@ #pragma once -XBOOL HTTPTask_TaskGet_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType); \ No newline at end of file +bool HTTPTask_TaskGet_Language(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp index 2593791..6fe3228 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XENGINE_APISERVICE_LOCKER_TYPE enLockType) +bool HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XENGINE_APISERVICE_LOCKER_TYPE enLockType) { int nSDLen = 4096; int nRVLen = 4096; @@ -13,7 +13,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = true; //收到回复后就关闭 if (ENUM_XENGINE_APISERVICE_LOCKER_TYPE_CREATE == enLockType) { //创建 @@ -34,7 +34,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求打开锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return FALSE; + return false; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); @@ -58,7 +58,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求读加锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return FALSE; + return false; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); @@ -74,7 +74,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求读解锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return FALSE; + return false; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); @@ -90,7 +90,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求写加锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return FALSE; + return false; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); @@ -106,7 +106,7 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求写解锁失败,锁句柄:%lld,错误码:%lX"), lpszClientAddr, xhToken, dwRet); - return FALSE; + return false; } ModuleProtocol_Packet_Locker(tszRVBuffer, &nRVLen, xhToken); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); @@ -120,5 +120,5 @@ XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr, __int64x xhToken, ENUM_XEN XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求了一条未知的子协议:%d"), lpszClientAddr, enLockType); } - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.h index 88240ed..fad5371 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Locker.h @@ -1,3 +1,3 @@ #pragma once -XBOOL HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr,__int64x nToken, ENUM_XENGINE_APISERVICE_LOCKER_TYPE enLockType); \ No newline at end of file +bool HTTPTask_TaskGet_Locker(LPCXSTR lpszClientAddr,__int64x nToken, ENUM_XENGINE_APISERVICE_LOCKER_TYPE enLockType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp index 6a7c62c..2b7099c 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -XBOOL HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType) +bool HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType) { int nMsgLen = 4096; int nPktLen = 4096; @@ -21,7 +21,7 @@ XBOOL HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = true; //收到回复后就关闭 st_LanguageInfo.enType = nConvertType; //转换类型 @@ -32,7 +32,7 @@ XBOOL HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的翻译类型不正确:%d,原始字符串:%s"), lpszClientAddr, nConvertType, lpszMsgBuffer); - return FALSE; + return false; } _xstprintf(tszUrlBuffer, st_ServiceConfig.st_XApi.tszTranslationUrl, tszTypeBuffer, lpszMsgBuffer); APIClient_Http_Request(_X("GET"), tszUrlBuffer, NULL, NULL, &ptszBodyBuffer, &nBLen); @@ -44,7 +44,7 @@ XBOOL HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的翻译失败,类型:%d,原始字符串:%s"), lpszClientAddr, nConvertType, lpszMsgBuffer); - return FALSE; + return false; } //打包发送 ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, &st_LanguageInfo); @@ -52,5 +52,5 @@ XBOOL HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求语言翻译成功,原始语言:%s,目标语言:%s"), lpszClientAddr, st_LanguageInfo.tszSourceStr, st_LanguageInfo.tszDestStr); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.h index 143aede..6799a71 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Translation.h @@ -1,3 +1,3 @@ #pragma once -XBOOL HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType); \ No newline at end of file +bool HTTPTask_TaskGet_Translation(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nConvertType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp index f765005..85ac83c 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -XBOOL HTTPTask_TastPost_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) +bool HTTPTask_TastPost_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 0; XCHAR tszSDBuffer[4096]; @@ -10,7 +10,7 @@ XBOOL HTTPTask_TastPost_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = true; //收到回复后就关闭 //0发什么返回什么,1 仅仅返回确认 if (0 == nType) { @@ -22,5 +22,5 @@ XBOOL HTTPTask_TastPost_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int } XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求数据用例测试成功,请求的大小:%d,请求的类型:%d"), lpszClientAddr, nMsgLen, nType); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.h index 3bc64aa..61c7ed9 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_DTest.h @@ -1,3 +1,3 @@ #pragma once -XBOOL HTTPTask_TastPost_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file +bool HTTPTask_TastPost_DTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp index d25d5bb..657babd 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -XBOOL HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) +bool HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 0; int nRVLen = 0; @@ -15,7 +15,7 @@ XBOOL HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = true; //收到回复后就关闭 ModuleProtocol_Parse_XLog(lpszMsgBuffer, nMsgLen, &st_XLogInfo); if (0 == nType) @@ -52,5 +52,5 @@ XBOOL HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, i XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求日志删除成功,删除的表:%s"), lpszClientAddr, st_XLogInfo.tszTableName); } - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.h index fbc7df5..78dc027 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_Log.h @@ -1,3 +1,3 @@ #pragma once -XBOOL HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file +bool HTTPTask_TastPost_LogInfo(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp index 3d29104..4521916 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.cpp @@ -4,7 +4,7 @@ void CALLBACK HTTPTask_TastPost_P2PCallback(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PPr { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:公网:%s,私网:%s,连接:%s P2P离开"), pSt_P2PProtocol->tszPublicAddr, pSt_P2PProtocol->tszPrivateAddr, pSt_P2PProtocol->tszConnectAddr); } -XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int unOperatorCode) +bool HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int unOperatorCode) { int nSDLen = 4096; int nRVLen = 4096; @@ -17,7 +17,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = true; //收到回复后就关闭 if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_P2XP_REQLOGIN == unOperatorCode) { XENGINE_P2XP_PEERINFO st_ClientPeer; @@ -29,7 +29,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,处理登录错误,解析协议失败,错误码:%lX"), lpszClientAddr, ModuleProtocol_GetLastError()); - return FALSE; + return false; } //如果没有填充公用地址,用他的连接地址代替,外网服务器都可以这样做 if (_tcsxlen(st_ClientPeer.st_PeerAddr.tszPublicAddr) <= 0) @@ -42,7 +42,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, st_ClientPeer.st_PeerTimer.dwUserTime = time(NULL); st_ClientPeer.st_PeerTimer.dwKeepAlive = time(NULL); - st_ClientPeer.bIsLogin = TRUE; + st_ClientPeer.bIsLogin = true; _tcsxcpy(st_ClientPeer.st_PeerAddr.tszConnectAddr, lpszClientAddr); if (!ModuleHelp_P2PClient_Add(&st_ClientPeer)) { @@ -50,7 +50,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,处理登录错误,设置用户信息失败,错误码:%lX"), lpszClientAddr, ModuleHelp_GetLastError()); - return FALSE; + return false; } ModuleProtocol_Packet_Common(tszRVBuffer, &nRVLen); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); @@ -68,7 +68,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,列表请求失败,协议解析错误,错误码:%lX"), lpszClientAddr, ModuleProtocol_GetLastError()); - return FALSE; + return false; } //请求同步列表 if (_tcsxlen(st_P2PProtocol.tszPrivateAddr) > 0) @@ -81,7 +81,7 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,列表请求失败,请求同步局域网列表失败,公有地址:%s,私有地址:%s,错误码:%lX"), lpszClientAddr, st_P2PProtocol.tszPublicAddr, st_P2PProtocol.tszPrivateAddr, ModuleHelp_GetLastError()); - return FALSE; + return false; } ModuleProtocol_Packet_P2PLan(tszRVBuffer, &nRVLen, &ppSt_ListClients, nListCount); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); @@ -129,5 +129,5 @@ XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("客户端:%s,请求了一条未知的子协议:%lX"), lpszClientAddr, unOperatorCode); } - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.h index 63225a0..87a364e 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_P2PClient.h @@ -1,4 +1,4 @@ #pragma once void CALLBACK HTTPTask_TastPost_P2PCallback(XENGINE_P2XPPEER_PROTOCOL* pSt_P2PProtocol, XPVOID lParam); -XBOOL HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int unOperatorCode); \ No newline at end of file +bool HTTPTask_TastPost_P2PClient(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int unOperatorCode); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp index f889d3a..d0833fd 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -XBOOL HTTPTask_TastPost_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) +bool HTTPTask_TastPost_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 4096; int nRVLen = 4096; @@ -15,7 +15,7 @@ XBOOL HTTPTask_TastPost_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = true; //收到回复后就关闭 ModuleProtocol_Parse_ZIPCode(lpszMsgBuffer, nMsgLen, &st_ZIPInfo); if (0 == nType) @@ -31,5 +31,5 @@ XBOOL HTTPTask_TastPost_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求查询邮政编码地址信息查询成功,查询邮编;%d,查询地址:%s"), lpszClientAddr, st_ZIPInfo.nZipCode, st_ZIPInfo.tszCounty); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.h index aba1aa1..0470055 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_PostCode.h @@ -1,3 +1,3 @@ #pragma once -XBOOL HTTPTask_TastPost_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file +bool HTTPTask_TastPost_PostCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp index 8560b32..03456e2 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -XBOOL HTTPTask_TaskPost_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) +bool HTTPTask_TaskPost_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 0; int nRVLen = 0; @@ -15,7 +15,7 @@ XBOOL HTTPTask_TaskPost_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = true; //收到回复后就关闭 //0创建,1解析 if (0 == nType) { @@ -38,5 +38,5 @@ XBOOL HTTPTask_TaskPost_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in free(ptszSDBuffer); ptszRVBuffer = NULL; ptszSDBuffer = NULL; - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.h index 3bdc9be..5013bdf 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_QRCode.h @@ -1,3 +1,3 @@ #pragma once -XBOOL HTTPTask_TaskPost_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file +bool HTTPTask_TaskPost_QRCode(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp index 06d38b3..bb1a9b9 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.cpp @@ -1,9 +1,9 @@ #include "../XEngine_Hdr.h" -XBOOL HTTPTask_TaskPost_SLProxy(LPCXSTR lpszClientAddr, LPCXSTR lpszUriStr, XCHAR*** ppptszHDRList, int nHDRCount) +bool HTTPTask_TaskPost_SLProxy(LPCXSTR lpszClientAddr, LPCXSTR lpszUriStr, XCHAR*** ppptszHDRList, int nHDRCount) { //是不是代理转发 - XBOOL bFound = FALSE; + bool bFound = false; for (int i = 0; i < nHDRCount; i++) { XCHAR tszKey[MAX_PATH]; @@ -15,13 +15,13 @@ XBOOL HTTPTask_TaskPost_SLProxy(LPCXSTR lpszClientAddr, LPCXSTR lpszUriStr, XCHA BaseLib_OperatorString_GetKeyValue((*ppptszHDRList)[i], ": ", tszKey, tszValue); if (0 == _tcsxnicmp(st_ServiceConfig.st_XShortLink.tszHostUrl, tszValue, _tcsxlen(st_ServiceConfig.st_XShortLink.tszHostUrl))) { - bFound = TRUE; + bFound = true; break; } } if (!bFound) { - return FALSE; + return false; } int nSDLen = 0; XCHAR tszSDBuffer[4096]; @@ -37,18 +37,18 @@ XBOOL HTTPTask_TaskPost_SLProxy(LPCXSTR lpszClientAddr, LPCXSTR lpszUriStr, XCHA _xstprintf(st_ShortLink.tszMapUrl, _X("http://%s%s"), st_ServiceConfig.st_XShortLink.tszHostUrl, lpszUriStr); if (!ModuleDatabase_ShortLink_Query(&st_ShortLink)) { - return FALSE; + return false; } st_HDRParam.nHttpCode = st_ServiceConfig.st_XShortLink.nHTTPCode; - st_HDRParam.bIsClose = TRUE; + st_HDRParam.bIsClose = true; _xstprintf(tszRVBuffer, _X("Location: %s\r\n"), st_ShortLink.tszFullUrl); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszRVBuffer); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求的短连接地址重定向成功,短连接:%s,长连接:%s"), lpszClientAddr, st_ShortLink.tszMapUrl, st_ShortLink.tszFullUrl); - return TRUE; + return true; } -XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) +bool HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 0; int nRVLen = 0; @@ -63,7 +63,7 @@ XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = true; //收到回复后就关闭 ModuleProtocol_Parse_ShortLink(lpszMsgBuffer, nMsgLen, &st_ShortLink); //0生成,1还原,2删除 @@ -76,7 +76,7 @@ XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求生成短连接生成错误,生成的连接:%s,替换的连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszCvtUrl, HttpProtocol_GetLastError()); - return FALSE; + return false; } _xstprintf(st_ShortLink.tszMapUrl, _X("%s/%s"), st_ShortLink.tszShotUrl, st_ShortLink.tszKeyUrl); if (!ModuleDatabase_ShortLink_Insert(&st_ShortLink)) @@ -85,7 +85,7 @@ XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求生成短连接插入数据库错误,生成的连接:%s,替换的连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszCvtUrl, ModuleDB_GetLastError()); - return FALSE; + return false; } } else if (1 == nType) @@ -96,7 +96,7 @@ XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求获取短连接错误,连接:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszMapUrl, ModuleDB_GetLastError()); - return FALSE; + return false; } } else @@ -107,12 +107,12 @@ XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求删除短连接错误,完整地址:%s,映射地址:%s,错误码:%lX"), lpszClientAddr, st_ShortLink.tszFullUrl, st_ShortLink.tszMapUrl, ModuleDB_GetLastError()); - return FALSE; + return false; } } ModuleProtocol_Packet_ShortLink(tszRVBuffer, &nRVLen, &st_ShortLink); HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求操作短连接成功,操作类型:%d,完整地址URL:%s,映射URL:%s"), lpszClientAddr, nType, st_ShortLink.tszFullUrl, st_ShortLink.tszMapUrl); - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.h index 2e48bfd..4d03d0f 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_ShortLink.h @@ -1,4 +1,4 @@ #pragma once -XBOOL HTTPTask_TaskPost_SLProxy(LPCXSTR lpszClientAddr, LPCXSTR lpszUriStr, XCHAR*** ppptszHDRList, int nHDRCount); -XBOOL HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file +bool HTTPTask_TaskPost_SLProxy(LPCXSTR lpszClientAddr, LPCXSTR lpszUriStr, XCHAR*** ppptszHDRList, int nHDRCount); +bool HTTPTask_TaskPost_ShortLink(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp index 9272790..57c6c0d 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.cpp @@ -47,7 +47,7 @@ void CALLBACK HTTPTask_TastPost_CBSocketTest(XNETHANDLE xhToken, LPCXSTR lpszAdd } } } -XBOOL HTTPTask_TastPost_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) +bool HTTPTask_TastPost_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType) { int nSDLen = 0; int nRVLen = 0; @@ -62,7 +62,7 @@ XBOOL HTTPTask_TastPost_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); st_HDRParam.nHttpCode = 200; //HTTP CODE码 - st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + st_HDRParam.bIsClose = true; //收到回复后就关闭 ModuleProtocol_Parse_SocketTest(lpszMsgBuffer, nMsgLen, pSt_SocketTest); //0创建,1删除 @@ -99,5 +99,5 @@ XBOOL HTTPTask_TastPost_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer delete pSt_SocketTest; pSt_SocketTest = NULL; } - return TRUE; + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.h index 8e320f7..efb7d17 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskPost/TaskPost_SocketTest.h @@ -1,4 +1,4 @@ #pragma once void CALLBACK HTTPTask_TastPost_CBSocketTest(XNETHANDLE xhToken, LPCXSTR lpszAddr, int nPort, __int64x nNumber, __int64x nFailed, __int64x nSuccess, int nStatus, XPVOID lParam); -XBOOL HTTPTask_TastPost_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file +bool HTTPTask_TastPost_SocketTest(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_UserProtocol.h b/XEngine_Source/XEngine_UserProtocol.h index 0fd720e..421b597 100644 --- a/XEngine_Source/XEngine_UserProtocol.h +++ b/XEngine_Source/XEngine_UserProtocol.h @@ -145,7 +145,7 @@ typedef struct tag_XEngine_P2XPIO_Protocol XCHAR tszDestUser[32]; //要连接的用户 XCHAR tszConnectAddr[32]; //连接的IP地址 int nDestPort; //要连接的端口 - XBOOL bIsTcp; //连接类型TCP,否则为UDP + bool bIsTcp; //连接类型TCP,否则为UDP }XENGINE_P2XPIO_PROTOCOL, * LPXENGINE_P2XPIO_PROTOCOL; //邮编信息 typedef struct -- Gitee From 6bf5d11c34a5b7b0408d099529462c6b9e7e90fb Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Mon, 17 Apr 2023 09:35:41 +0800 Subject: [PATCH 22/26] fixed:build warn --- XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile index 70f092c..af217e7 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile @@ -1,4 +1,4 @@ -CC = g++ -Wall -std=c++17 -fPIC +CC = g++ -Wall -std=c++17 -fPIC -Wformat-overflow=0 PLATFORM = linux PLATVER = PLATDIR = -- Gitee From 8b477f906a2da359dc6c553990e053c6b893bf25 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Wed, 19 Apr 2023 14:21:27 +0800 Subject: [PATCH 23/26] modify:mysql charset to utf8mb4_unicode_ci --- XEngine_SQL/CreateDatabase.sql | 5 ++-- XEngine_SQL/XEngine_APIInfo.sql | 40 ++++++++++++++++---------------- XEngine_SQL/XEngine_APILog.sql | 8 +++---- XEngine_SQL/XEngine_APISLink.sql | 10 ++++---- 4 files changed, 32 insertions(+), 31 deletions(-) diff --git a/XEngine_SQL/CreateDatabase.sql b/XEngine_SQL/CreateDatabase.sql index 24d91e0..3572252 100644 --- a/XEngine_SQL/CreateDatabase.sql +++ b/XEngine_SQL/CreateDatabase.sql @@ -3,5 +3,6 @@ */ -CREATE DATABASE `XEngine_APIInfo` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci; -CREATE DATABASE `XEngine_APILog` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci; \ No newline at end of file +CREATE DATABASE `XEngine_APIInfo` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE `XEngine_APILog` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_unicode_ci; +CREATE DATABASE `XEngine_APISLink` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_unicode_ci; \ No newline at end of file diff --git a/XEngine_SQL/XEngine_APIInfo.sql b/XEngine_SQL/XEngine_APIInfo.sql index 838b6d1..abd484d 100644 --- a/XEngine_SQL/XEngine_APIInfo.sql +++ b/XEngine_SQL/XEngine_APIInfo.sql @@ -22,19 +22,19 @@ SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- DROP TABLE IF EXISTS `AdministrativeArea`; CREATE TABLE `AdministrativeArea` ( - `id` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, - `pid` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, - `shortname` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, - `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, - `merger_name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, - `level` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, - `pinyin` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, - `code` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, - `zip_code` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, - `first` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, - `lng` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, - `lat` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + `id` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `pid` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `shortname` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `merger_name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `level` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `pinyin` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `code` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `zip_code` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `first` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `lng` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `lat` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of AdministrativeArea @@ -3795,10 +3795,10 @@ INSERT INTO `AdministrativeArea` VALUES ('3749', '0', '钓鱼岛', '钓鱼岛', DROP TABLE IF EXISTS `BankList`; CREATE TABLE `BankList` ( `ID` int NOT NULL AUTO_INCREMENT, - `tszBankAbridge` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, - `tszBankName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `tszBankAbridge` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `tszBankName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, PRIMARY KEY (`ID`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 169 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 169 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of BankList @@ -3977,10 +3977,10 @@ INSERT INTO `BankList` VALUES (168, 'ZZBANK', '郑州银行'); -- ---------------------------- DROP TABLE IF EXISTS `RegionID`; CREATE TABLE `RegionID` ( - `code` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, - `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, - `parentCode` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + `code` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `parentCode` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of RegionID diff --git a/XEngine_SQL/XEngine_APILog.sql b/XEngine_SQL/XEngine_APILog.sql index e4142e4..06b13e5 100644 --- a/XEngine_SQL/XEngine_APILog.sql +++ b/XEngine_SQL/XEngine_APILog.sql @@ -23,13 +23,13 @@ SET FOREIGN_KEY_CHECKS = 0; DROP TABLE IF EXISTS `XLogTemplate`; CREATE TABLE `XLogTemplate` ( `ID` int NOT NULL AUTO_INCREMENT, - `tszFileName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件名', - `tszFuncName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '函数名', + `tszFileName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件名', + `tszFuncName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '函数名', `nLogLine` int NULL DEFAULT NULL COMMENT '第几行', `nLogLevel` int NULL DEFAULT NULL COMMENT '打印级别', - `tszLogBuffer` varchar(8196) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '日志信息', + `tszLogBuffer` varchar(8196) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '日志信息', `tszLogTime` datetime NOT NULL COMMENT '日志时间', PRIMARY KEY (`ID`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1; diff --git a/XEngine_SQL/XEngine_APISLink.sql b/XEngine_SQL/XEngine_APISLink.sql index 9c7c4dc..f2a0c2c 100644 --- a/XEngine_SQL/XEngine_APISLink.sql +++ b/XEngine_SQL/XEngine_APISLink.sql @@ -23,12 +23,12 @@ SET FOREIGN_KEY_CHECKS = 0; DROP TABLE IF EXISTS `XEngine_ShortLink`; CREATE TABLE `XEngine_ShortLink` ( `ID` int NOT NULL AUTO_INCREMENT COMMENT 'ID', - `tszFullUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '要映射的URL', - `tszShortUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '短连接URL', - `tszKeyUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'URLKey', - `tszMapUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '映射到的地址', + `tszFullUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '要映射的URL', + `tszShortUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短连接URL', + `tszKeyUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'URLKey', + `tszMapUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '映射到的地址', `tszCreateTime` datetime NOT NULL COMMENT '创建的时间', PRIMARY KEY (`ID`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1; -- Gitee From 00f1a3647184231e7499e916d966460d6ce0fb8c Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 20 Apr 2023 09:24:08 +0800 Subject: [PATCH 24/26] modify:start printf log added xengin type --- .../XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp index a207f3c..cea9e33 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp @@ -322,7 +322,7 @@ int main(int argc, char** argv) //展示能力 XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,加载的Lib插件:%d 个,Lua插件:%d 个"), st_PluginLibConfig.pStl_ListPlugin->size(), st_PluginLuaConfig.pStl_ListPlugin->size()); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("所有服务成功启动,服务运行中,XEngine版本:%s,发行版本次数:%d,当前版本:%s。。。"), BaseLib_OperatorVer_XGetStr(), st_ServiceConfig.st_XVer.pStl_ListVer->size(), st_ServiceConfig.st_XVer.pStl_ListVer->front().c_str()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("所有服务成功启动,服务运行中,XEngine版本:%s%s,发行版本次数:%d,当前版本:%s。。。"), BaseLib_OperatorVer_XNumberStr(), BaseLib_OperatorVer_XTypeStr(), st_ServiceConfig.st_XVer.pStl_ListVer->size(), st_ServiceConfig.st_XVer.pStl_ListVer->front().c_str()); while (true) { std::this_thread::sleep_for(std::chrono::seconds(1)); -- Gitee From f2b93e3e1d959bdd6ea555bfc7cd35575f1bbde3 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 20 Apr 2023 14:06:12 +0800 Subject: [PATCH 25/26] update:CHANGELOG and configure --- CHANGELOG | 18 ++++++++++++++++++ .../XEngine_Config/XEngine_Config.json | 9 +++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 76f5c8e..35c01cb 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,21 @@ +XEngine_APIService V2.9.0.1001 + +增加:短连接生成与转发功能支持 +增加:数据测试API接口 +更新:匹配XEngineV8.x版本 +更新:编译脚本现在对跨平台支持更好 +修改:测试函数名称改为socket +修改:现在HTTP的任务代码区分get和post了 +修改:mysql默认使用utf8字符集了 + +added:short link create and forward supported +added:data test api interface +update:match xengine v8.x +update:makefile to support cross platform +modify:test function name to socket +modify:The http task now distinguishes between post and get +modify:mysql used to utf8 charset +====================================================================================== XEngine_APIService V2.8.0.1001 添加:二维码识别与创建功能 diff --git a/XEngine_Release/XEngine_Config/XEngine_Config.json b/XEngine_Release/XEngine_Config/XEngine_Config.json index 57b29fa..c2ddfa7 100644 --- a/XEngine_Release/XEngine_Config/XEngine_Config.json +++ b/XEngine_Release/XEngine_Config/XEngine_Config.json @@ -19,10 +19,10 @@ "LogLeave":32 }, "XSql":{ - "SQLAddr":"192.168.1.10", + "SQLAddr":"42.194.178.57", "SQLPort":3306, "SQLUser":"root", - "SQLPass":"123123aa" + "SQLPass":"111" }, "XApi":{ "tszBankUrl":"https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?cardNo=%s&cardBinCheck=true", @@ -37,7 +37,12 @@ "tszConfigOPencc":"./XEngine_Config/XEngine_OPenccConfig.json", "tszConfigQRCode":"./XEngine_Config/XEngine_QRCode.json" }, + "XShortLink":{ + "tszHostUrl":"url.xyry.org", + "nHTTPCode":301 + }, "XVer":[ + "2.9.0.1001 Build20230421", "2.8.0.1001 Build20230207", "2.7.0.1001 Build20230117", "2.6.1.1001 Build20221213", -- Gitee From 3674df9f75a1e352782fb69d293ea1059ee78aa0 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 21 Apr 2023 10:09:04 +0800 Subject: [PATCH 26/26] update:readme and docment --- README.en.md | 11 ++++++----- README.md | 11 ++++++----- XEngine_Docment/Docment_en.docx | Bin 138481 -> 141667 bytes XEngine_Docment/Docment_zh.docx | Bin 142997 -> 146769 bytes 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/README.en.md b/README.en.md index dcb6ef8..1c8ca99 100644 --- a/README.en.md +++ b/README.en.md @@ -40,16 +40,17 @@ Support privatization deployment, free, safe, open source, controllable 20. Metering Conversion 21. network test 22. Distributed lock -23. short url creator(planned) +23. short url creator and forward 24. local system time 25. math Calculation 26. log service 27. Plugin hot reload(planned) +28. Sensitive word detection(planned) ## install #### XEngine Evn -you must install XEngine,need V7.38 or above,install XEngine can be refer to xengine Readme docment +you must install XEngine,need V8.x or above,install XEngine can be refer to xengine Readme docment GITEE:https://gitee.com/xyry/libxengine GITHUB:https://github.com/libxengine/xengine @@ -60,7 +61,7 @@ Linux Exection:sudo ./XEngine_LINEnv.sh -i 3 Macos Exection:./XEngine_LINEnv.sh -i 3 #### Database Env -MYSQL database version 8.0 or above is required. Create a table through CreateDatabase.sql, and then import the table with XEngine_APIInfo.sql +MYSQL database version 8.0 or above is required. Create a table through CreateDatabase.sql, and then import other sql table Modify the database configuration in XSQL in the configuration file to your #### Windows @@ -71,12 +72,12 @@ Just Run it #### Linux ubuntu:sudo apt install libopencc-dev centos:compile by self -use makefile compile,UBUNTU20.04 x64 or CENTOS8 x64 +use makefile compile,UBUNTU22.04 x64 or RockyLinux 9 x64 Run it on the terminal #### Macos install opencc:brew install opencc -use makefile compile,mac 12 and above +use makefile compile,mac 13 and above Run it on the terminal ##### complie diff --git a/README.md b/README.md index 836a479..9db710a 100644 --- a/README.md +++ b/README.md @@ -40,16 +40,17 @@ c c++ interface api service 20. 计量转换 21. 网络测试 22. 分布式锁API -23. 短连接生成(计划中) +23. 短连接生成和转发 24. 本地标准时间 25. 数学计算 26. 日志服务 27. 插件脚本热重载(计划中) +28. 敏感词检测(计划中) ## 安装教程 #### XEngine环境 -必须安装XEngine,版本需要V7.38或者以上版本,安装XEngine可以参考其Readme文档 +必须安装XEngine,版本需要V8.x或者以上版本,安装XEngine可以参考其Readme文档 GITEE:https://gitee.com/xyry/libxengine GITHUB:https://github.com/libxengine/xengine @@ -60,7 +61,7 @@ Linux执行:sudo ./XEngine_LINEnv.sh -i 3 macos执行:./XEngine_LINEnv.sh -i 3 #### 数据库环境 -需要MYSQL数据库8.0以上版本.通过CreateDatabase.sql创建表,然后XEngine_APIInfo.sql导入表 +需要MYSQL数据库8.0以上版本.通过CreateDatabase.sql创建表,然后导入剩余的表 修改配置文件里面XSQL里面的数据库配置为你的 #### Windows @@ -71,12 +72,12 @@ macos执行:./XEngine_LINEnv.sh -i 3 #### Linux ubuntu:sudo apt install liblua5.3-dev libopencc-dev libopencv-dev libopencv-contrib-dev libqrencode-dev centos:需要自己编译 -Linux使用Makefile编译,UBUNTU20.04 x64或者CENTOS8 x64 +Linux使用Makefile编译,UBUNTU22.04 x64或者RockyLinux 9 x64 在控制台运行 #### Macos 安装opencc,执行命令:brew install lua opencc -使用makefile编译,控制台运行,需要mac 12以及以上版本 +使用makefile编译,控制台运行,需要mac 13以及以上版本 在控制台运行 ##### 编译命令 diff --git a/XEngine_Docment/Docment_en.docx b/XEngine_Docment/Docment_en.docx index 7e53a8f39ef53d3b2a25a50b14e54e57e0cddeda..118856a3e7b6bad29becb396f81b3d19a49fbb69 100644 GIT binary patch delta 125500 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 delta 122326 zcmY&fXH*m4(?(H{A}E50Gz%bzi1bcWRGNr15h+n=(uL4VRzyXV-g{7*^bS&kKadWQ z7D^zY2M7>qLi(Tg)}p|OtXJit4&3jKfbblB$jwB;~Jgv+%HdZ3hnRoVR4IVaVKm& zNyXPrpxwyo+4z|T#fmYk2YEu%0jIe4VEx76lV#=hJY)RvF!!{E{pi`x+EJHhy~gjJ z2{HVdCd~C8)&yyyCZO{5!Vis007P9Xiuk01>ld?>q%BV<_b+RA1r32B%U)E|F1)BB z!Csru)I5D9T_+-9`|*8xNc1?if{i&o>T|nlKK3t9pWnxPZx6A7qtktUUs^6b>$~9f zcgDx!#eFAE&D+Al1Bs`aV@JoM>Mk`Ngqp?nT>8{=W>m%X{xkb;Y@H9jiQs_rY}h0G z#Xf#H?cF7qyZuhDmi7^T<<64H=bhJ|qcf(R%y!gFKpUyq| z$NWAoD&LW)ozRrOo6b3WgGMbQdXG{0bs=X|du}DIm5&^)*5%+liVvML<1^Du_1O&^=pH9Yi z@N@PU>Z$n8UBL-(Qf9EC!TT2Ridju0~7$VaXMfSyk5w!7Bcp-q)HKde){B>|OSB zI9nDN=5p)7%y7Mb+9x!%kp4P$k?YE4!dI4pg`1{8W-05r*dHIS7SyR`J~~F>IwuGS zj&`5La>FTCM$z>haqHbA)t0zMp%|m_rC#CI9K7tG`*^*F$lCislHN130S^qj?p^tU z|H!z$k}F{}RUz!rJLY*!gg3iAO>v&x$TZPcy_@0LlfCrkd!kt&C|47c<$iRV^*wJ7 z;nnIr&U0rTde0MFVO`ky%iyKO{xcPJT+`+Qd9hdUSdNQ_~$ z4CvgBi|cZ`^-=gy14MUNwWoh!+IFu--yn6 zQf2J`+r6}2fI|s&Sa@4m$VFY8FA!(f?|Xi=kmC{0L&^MAWm_-w^(%-j-qVwMa58N? zqPOu?GI8U``S!Bk?#Ppx{I71^JT#?aBUc}$)vWx^~A6ZIdwbs)2sG2!d z&WaVv`n5SV>Gx{$?nF6@AKa1x8vbBQ?}}Q5GR0p_`yg@pOkLXDp&yS{Lo^*w4u z_eBc})VvkWJt}96Ggbk{wio>maJ+}bFv!Ii+A^q_(S?FhBSZmW8H~O)1*d=+doZdj zW0Nep1|qS-8C~3PN}VY5U>pyn_5%AVAUfTcF3Z3&fMv!a<8X?xP6W{xx#_cbMz}6@ zhsaoOf|E}M@&m_RV0u1?HjZIz%0j8z+;B!Dh_)IBzezoSLFwDvz%BsL!HmNu5S5BQ z8N-MK(+*K^>LNFs9ss8gS21=~0P^qoA`l7HOFfKZtW-hi^B^)xm&y&N9RVj-8$=L| zB-#@X9FD^nq$=QO8AC^4Vvb3SBqH5=WpBKSzS#t#?{LH0_KX4gp32(pi60DpIDHVq zm>-8y7~A92ZuoI)BsG$Ojypbi?=Xhe4)4IwLx2M>VCTfV0~n3=m0?_@!a`j|fM}b& z7zUb^yzK?hk0Ai1s|p|zd;Emf*(}fH=)i0Vn|=+6i_7;N&ha%}1GDb>dblBa|HoU8tfjMFKG3 zIHlnjC9vbPcVG-BwNAy3)9QwaFfFWCFU@DGH{iG(Mp!-?M=%CKv}I?~q6&z*V+o=g zR*{F}P#EfB?{YDG|3NQ6!+{wyqV%OS_@VQ1KJCQJV{VWqh`Nbk&`+MB%OZcIKrhlK zz37t&5S5%JPFWVE?gLE-22FOO5+I$x=>SCiF3PxHL){Mmj_Vl1jg(?IeLjvc9tS^x z_!2i`B|v+?i(dDJLB@*G_rbJdIAamaAaetIgK@{kcm^2CSSEGh8P#<96o~3cA@z#V zY4GDR4E2}-dbUUe*;V^!3z;w*ih8{U9m92Wy+AjXXG|HbnHZ4v>eQ*;gkZXe@* zh%iHE@I)d&_n_nWX$~4Q2_Smyea1dFa3CnUed1XfoE`_NJV^+QncDz8^9kLtn98^p z!9bsZQs<8q87eCMaB>!$x<}q)1&<0JGH3`IzI`iA3qo6)0!Rp`krI{K%S~i7rP0U; z2DKNq9SvrjK%XHnyo-YYWE>btieukkOcCiDU`9U3GszqMu7rW*1~KR$8W!kCfl`tv zG;R=;2BaSEdC{>j`ZnV@3t$-2n_y5Hf^ihYaAs`6XuZI}F+YQjq2d4t112P zZ4$ky7k>O5I6-MYK*hpoO$-!>5qAOr6l0IEhXXMH>N232I+ew!Bi6{!x6=6I7{~nP z>zM5})HXe+JPsiW?~AA3>K_I`IO^m5P*1Sf_@PnlT!-d1lwm`w$2M=t1cAVDsZU{u zG~(0VCSvHwcCK+NCe<0VO%K#!5YWd}$ZdMMC;~crK+=ZmHKJw{iM}|c-^MU(8ZlG^ zW~sgH4Q$bJd+q6m<04hWGB|fX+HE&IH%`{R$c?d|i&)+QlYut8E*wj0si1}A;(N>B z8<606N>+ymu_6GElbdG{HW^hN1e_8uqfxa%-Zuinh{!r91`RmBrCQ>HFrwg*ISSN9 ztBFWyAmD?H@%hg8=2Huek-qR;-JQ}6QYfJ#H+w<6H`H@*5<;14l!ap@olGf**?aW+hrlWV z8nMa^jdOO`G!3^9#6cRdjbG%S?3Yyl@cY=b(Maf@#die6UMJO-5h%g9c|#w<9D&$! zn1(9$!^t)Q=qmIc#W}2TwHm0D#bSTA0T;lOuF=ulIoLGoBlVDubWyAI15% z+#^e8$JuW-=O|C|_d7$6WZQQTvg-6;j3>CKtx3wSkLC|UW*^ZAp+GxCbk3`ar~xO? z)=rbL9nhP>#3^*}=H7|=cMG3wF z$F96HJo1KD=;rqH(%Ku1_5wo*+Tw9okDZ+3Ky7qYF6!V&Erg}2m$0rB*xpz;1uPt8 zh?0zKK~0Tc^$CqSB3>=Gi6i!zv5j9vVS+l^@Y7zdgSJN(*wZO#-$V|F#R7M8A-A-( z@ny!l%Lm&%fkQ;uMut69D^0Ul42%7~QWrX7(U#pX^}0C+W*6Z&Ygb|`GU)s&q{8w| z4c*6=s-Tp31%)i8*L1)tQuJeib^xKSmD{e{)G93*(AUG$Pr=q`RmHMp9FQFG?&JA> zllJ*GWGzYFf%$z!ZG4g$jSOTkJ2LH>;oTFaGo%t-Bm z_^|>(2)9=wxqm{o@B9bJ=?LUO9MxsFtD_*EgNw~pPoGBlFGk9O zJN}D5yt?%?8GXHXTbuYz#5}a>kKEG5W@PUP_d3kT?}e{N92{+J4Ib1kheX=U{i_$U zD?e(a=_93_X)XGEE3)DlUZfB^m5uUj!Twn&((u~GP?(X=Q4IYj4Ma1V}e{q0p|30uj z8PqXS21qr`wN7!_1``uQ_g>m5+w`h~wRJF8cD_4qSdGi%1ii10BQ$}>x93$B+<0mX zjP^2fs~Vr%!Frc-GCzJYy%V-ee%jQCu{#Ls2o@b0v6;1~BK2P!Ar9e<-B#1K5Grhu zg$ROAmO4~x-$wY&jm5ULIlbAUKtM+RG%W;4X5B>=jE(`MDwE@%;8Okwu{GISf(tYw*q``(@7M;MPKR@ALlEr*;dMQaCQ{~_B>HFfN{O@v+vYO#4JYhLGR1{hKU_dxlt{D;sT6a@ z7KvSKYz)B||EZeTyCFzCIYkg#4~}$dkJ2t>;Isy0ngbkSR}5`thJQDNy>@bT=6j&v z8OCVCz@}227q#XA#E62L7Fa%E*~XTp7;A!&_gct6zQrRTF0BIv0y@nhpsnM!Q>45Q zw`pQ%)@-r38p<>bL2M6;CQ>!&Txk^W+GyBl$@cBU2FMfqQBdoc_O%&}K?Ti>p0n@g zMZ;L(O_T|L+5TdCB{55s9)8$r9bacOm}d4L*rnia2taX%xK1}&|G@L`m`u)Hr!3PQ z<96_66-UIqba?sE-pkbbH!*4*RMQTtd`|RIsBl2gpn%_tPYyr<-vYTc;F*mCmj3vb z9Wj4s!n-uN`KFYj3E~eq38OrEppf3Tj(fCuCwRT zPa;jh=(%}&nfC5mTA23TmWjL7|5cq-79PExIeLx+du+_!W1Af*W zk3SZ#HuxpKe)XXt_;DH$-E3>OoS$zhhIbCG93NP4-LBQn#i{i3-#My(hD%d=S$xn( zah?@Kj|>$A~n@?;5RIW3Btn{@<2Yt(P;r2~Z7 zle9OQP1v9+uN}B#oi5lPU9Z~+oP)0)FTbIzS*qr31V6Sq6^FLywRbCzET7qb+$-7z z*%J8eNFEf%m&kF9@5y}k&=Sot%6xVlfy}?v`4X`msx|wJ_ew$70kJcteo`%GyuD8L z60ZT4UoRG3ra_k7#%=gCQil3f0OgN-13SpvGyS6-2fkss9`J;6;ZrN}6*a)S0pK`<0yeckYc2t;(0*X;%Y05Zg|DC=RA zP}e1VW+Zo~^Uar_amx5R^~C(;C{YOmSn&Gj(IAne_oBG*6H#%SswIk^Nt4@Jw_}#f zdEy17j*tH2#<%BBnDXgjvD$-8eQ|g~p{suPP7M(+KzOkEsDGg%|DsrJWV0vE*$Xu` z)~25Hu-1Pr5vrv=OHKed!dB)b*>S~dbN-HoE~25`5*o~p{*MU*iUYy|&1@ikH#RYpXUvo8Ky#b%d9X*7^90vcVvG#4Cc_)Y!xa;_`oh7aQ z>FkOE|Ly=r$ESkC=aeyN*%A5ZLame5!LcZ5^~}sChu|TsYdfI8yrD@U&SAi}OP%g| z*lY2sXseIu?f)gfQV@QhTvC(pmo&MjO{#twd>Z+0*!WGHUCu4v;Hsm8nnRcDl!l{W z#nw}Tx6X_myHH+3jd;>Yt71YLr5dQ8V8ST}7gT;--b5=<^4@#rRjhgMyfFYb`SWej$>}$B(ue&}c;CU#4_=ZvGOy{;R%& z>w(s0ow}~RcvVGz%EPuHt9dfX@;>I3FTaQLeIUfX1yQeyXB(2 zh#7mBf#{vE6O<%QTKy)4%7Fd(wj8GN5k6@#XH)K20q{@{yJsPy3PMnf_`wm`Cu^8r zRR`Amy<)ZuqW`GKqV8Az#<5cW=&eALz_C4*#P$OY_9w6y9^t}*b_`2$UY$PASzVkR zQ(HjqC4C|MtXE!8oHm5xwM#x{>W}z+WWmFc#?zlLJGL_V@=a&;f2JxpZ{M>MK)n>H zsxUsOe}S^L=W9Bv{Bv;sLAM|+zw5}kf{BeGX~ltWbAuDx6Vf@NQ3;e_Z)X2zZ-a~| zXEO8**EhSqF`e=X zj~eGJ4kR_*qkh>ka;^HU5gsOQ5?c%w88a_{%$2zby(>JoHL#7Lu^kco0t2#eXFrv- zn2vIcJZ6xcI9pcNQS@Zv4h}oM7x*{E8q1%${kLNnY%r#sBuC8_Q3&f7zU$K}Y<4y& z3_4?>!G{88RjD;q&R(wz@w{0%XFq*?IH%_8rvId9|7b4ShrNVQKErB_*yde65ePv3 z^zA8fwurElRV502?&sqa!c0?LW@{|8;tE9l%R?VO?ZEbV#7IZ^W)o`Z2I)V;dmp8R z<*WscV@`=#wSK#(h&MzUBx2{~B9E>^b1=SPr=5x|nM(aUoWq*=J~otHN8WNxQ0mpo zZ`!V9KU;tF$VXAzdo?m3MsfADYpwziAMozG+u2z+Lq9&E%l1S0rpUIB1jUiqN0YXQ z^T>M*)8z2@A%)1V_Ff_q7c!iCPfJeATCnrH9;o*5R9LY<|B=4?xv_sL=v9{f>zs@I z1x44?1U+tOO5cD%l3Lx9Q3K!;O_i#0#|h*?HWh5GBsMopw`ilovMO-6nFa<>CixCq zIvO@4Y-X#X$*P4LUON2d=`-2xnI&Wh3!eO(Qw47FDnCEg%|7V!IDo|fZ&x!STL$^s z+r*_Nf+swjTHgD6`QU+3Y^V?2&M~=)O5hO` z5xUhYNg$uhi`Yh*9P|4O^0;R3RkJD>C-QRp&DIe;3~KS{N`>_5DQ zhnQ7sRa#tzf&6u2izftB@Wc0H!|02pcI5Y#rX*u4S2FzX_ zP=_^>a}@H7cwRO+TS-0B8NWMf+Uh(f)1 zeOQi1LO5nRjl$0*n}{2nvCDPCDg{h0=UejjI=hLT9Rt5V)%wra{$0Q%Y}laAi)ekY zw%ztGHa%Rsj6CAk<@0YYivrb97cstp%`i6O8y`&pa(HG!SXy1jv^gk;uGa3@@y4)f zylB*LuHcPdZI1EMaEn*js=+vJ#t0 zFr1i!vuHUF94MO~fPjRKV z=6cJ#f0y-Yp&M*EC_Aoyd5ZpVZz_w!Vv2B^l1jQZH5S_2v6wRK6Y<8FZr^4}ny>I|t|z8RbB`K2(|(N^-_~T@`GEi^>7&8VE+hLZ z4^TFZ3Y6d7;)*Ep4_p;{_^xw0D2q*Sl= z{DH&4DfHaB%h~MGry2%f?CfDPQLSHYhFyL9td(nv_qIz&^2%hcYJV$ave=F*CQ>WX zdj@lue!p#BI=fc0f+hdAhT20|noWcG;ky|IJBl^!u_AAoQu2}%nVTUg(8>pN*^t=od z>YuaQC+f}lrJ5ha%UaBKZbY|+W)8X5U9#Gb|liQEqR+M5_yU z51RiTmqzcy{m&*#SO0dn;G^YNbT=>XunpO$9OiG=*c>d626ehUQB_?XfAmh{DpV#S zy0o|YQ!w&hLm0qn_#FDj-7v)qOprWhSNF+Am5Q2u9SY0f!W zCFbKF#=s`?bbLU*QF-Qny}99cZ1x{;(R&)(F2=Y)q+jGlYb!OD!w43hZK=4^>88~GSNB)s2ANDkyzJJYbK7ICWuHKdVW zaYfn^OevYYbJOZw#f6#VqId$`*H%*O&*6IUn+@PEw~0chu?9@7X-YoO1H#FzR`d85 zYbW_Y>sYsyokKP!Gt$O{r^$Yp$zdl+b0ngw!fj%=VV;Q2&xY;DsJ;3sQzC=+Y7gLP z1-<%eD-h6ZFI^{yBSw!r5|DZz?W0lEl4EkbY&I+#2{`L>lVbU??ndE%S0Sq|)b(2l zL;xYobC^UFisJ3HgPV(Q6cd&9V|CZGcislgHHOYsV`3ATOaqE=+T2Muu*#)J3P>r= z@T%_h zGqO7SZlX8j1*G1vb+m@0uv8N(yy})6EDCJ>9=bdCtZB<0%GK|Ee1sP?$;L&iMljcUleuTRo>(qW zFb_P7c$m>=<0jnXS)yx^PWEa3dG6~~9gP9-<5b*Wzm>3nheciy2n_WI`mwe&S+?LO zQTgRlYrLD$Ps7mR?V1H9S#Hk3(;imAzIv}HxN&)#_E1FO1sP1ldt%?YYruz@?V$lr zb=EM?9XHjrHJ>h~@U9N$Ybq(tuD^04mDi6#-gEm_SqWu|W@HE{Y{uh8OwIFp6o`K~ z2GkEg|INPITZ4w2zZ#wW$IU(7hPmBhP21`;3bLdwD*J)(2vRmowxKoXdgzizl-u41 zT5(ZWHw{8dXVrys>_%ti<}t7PSbM-yDAV_Jtkr z5vo?iflB^kregBtRrKPjq+2D8ARyT-bn^qW6^j;V|1Iy_ZO)3r%eC6^lUAJ$HG)*M z6(^oUp4a6PQJH+a+)t%uJtwa?J{XSbKl-O}y8#p%TgewBsRmNu2K0X3gwRbx1+8cG z;y!EZd0yk3+SJ~soHMY^fP|Ir=LnPu@M!#a;XJt^SvK|B_2tQ4oyofa+-be+*m-iy zqqq}7BnAmSt6mY;?G#JuDLI_}aC`g(f$fvQ&Qbk&H&>Kiez45N3+JMPf~~cUxW7f; z)G`kdwo2(Q1}Zkf^nj^Q?XZs|4$Gb@QAx4ufv%pd=^>a*F+=2|rA?}2a$j+YaGzxO z3m5#8@J{etqxK&SoRoqTw@iHFkde#bxBJ=wlZ)Ms9$W7eu1A}~Sx=2-T8L$Kp@RgJ zo+J`d{O+v#D{<&;bKjWtHXPyZe7R$?!Bj|8i`X+XGyAZsd>h#MvyiA)RcyX z6O<;WVUTQ;tq`x$%7cB48`xNt6~CA_)Lde!_lbS_TxInvYwV3H239T+)`CUQGjAc@Hx&9_E+N`>f^E^;mugSA-Q!J$a!lIWU^n zNKjHu{%=$L=(!+J|8iTn6pSmPYBdTDjAWvcFzLuIsUl`mDz!~{b~uOghEF4ggSoAn zDT!BaTIRqb`G$=U#V!^5kKeM5fvfYbY~hm6Ikz~HiTCfXkP_Y|NK1z0onNYu_Be|B z^!2vjhSaT^Rkq7r4=`C}%xtsXKKipn?-k2`KELfpmHF-f*12XIw`f0c((#I>8zmTX zNV(QzeCSwl*k;y5*!vA{qe7qa3q!?+V)xJylPmZPrfd7TUA~Gk8K|(9RYE!B=nkYW zEDz{Mf~_t5@*lMWAL869&gQ->lL>!^2&(|GnCr*>NlWUJ-qQ`Rk82hQA%D2$$^CTX zNMvL#LG31Rndb}EMnx+1$#{$ecia#iWqSH)2`2CNnv~x;iH)8wpgn2$E774uO_vg` z1p}-gtPW`ubyFfp*-*AW>&Y*^!rOvp8DcZ?o+KNI@_!^nQli4PO53aP6mRWmx8X6< z)^ih~@|Dyx(4C>2p1JXq?3?WNN?}73-ka&lp$+OlS!*+*Bvc>5DOr|<9D1Zp^A5m= zRkrjwNbn%X&L(4ZZ=6str*^ip1kZ5vu4 znnF;(-iousPP5m4rOn8Fkh4!uIBjz?8CR5eFsb}`cF>7gWFdOzJ55OGlNsGK#d=@! z$S_fm#*7nv0z3_J`EV|`_{b}oBQ6ejTS66xQul`_x zab>mq*{C~!RdzEO)OT39j~-4+-=^ zu3MD}{35v#9x8v8kS{D-x&Aq{DRj1^{2Cy|zAt|8!REP3M(9=Cc1ru(PeLDdO%I}4 zB;`t)jk4Z{?v%3mfq#<0Ne}7KiXB^VTK1A{DXmw6hd(eQf2EFsR#UAW^C?#r0X8Oo zIV3^*TC5MLwIPmy>D?uNZ2-uNknp%A{z1Pi@a=9NmT!7?0=HNnfBtX1IA=i2Xa3*( zCc+YK4*zJ3`S3m6bLn()U(FlH`P6Mgth15y6ZQtD&MP^!PAM0Cbc^ThMIZ##z&Cas z;^13R9eHZZSL!M&7W6kRq^N&Ny9vAiLr`4aH9~b94uv!caqV|Xn=X`}S_`>6?hm7M zg0@v16$p<`YiDGh{;w=Q=(lU<#{)M}Vw#P?@cG+MH`T=RZ{4Sh2xKYLEV^d6k3wgU zGA~J$S)tONnd|sCbz3RilvS}Dgn31YlaP<{54Am@eWw9mIKlGu z=zQ{8>gapnxS6QJWs3`31OEbNt)XH1c0y{ubrs$xJq>Z1_!Qe9(6XsjuJR^1we$Yr zmEXCV;%_ew#gB#FzR_S&Zier;Pq&g*7wa{}O!)0xzEonRkUK3YmGL>()sigY5s3h+0ZHk|Nr3>D~ zvXoEGUvk7c@Ifk?LC!ZEV`?@GiKR`JzsHoS$;{ks*o(4zVnuv9zaYG3chLq1y$3rkLkBN^{9upfgx2Rx|ScK3pWZrgsD$`$Wb-29^TIXsRFsP znN6Lb&bEzf)!DliulktYEOC41^mj2;vFH)|R=d;LJAHFTZlB0niS?ZoQg33M9B*eY zj&J!4-3MW>-icnXKV9E9wgE``ohv&?B7~o|8I5Uhs@@vWMA+ zogX)7BKUkwR4NP;K4+!6Q_&*N?2<2n5Yw!sQl@mP~bJo*o_ z(;P!}K|lRxWLv>_;aa{>4lU^;WS^rEV=>~i*Bp5t@D|2q)w5cYC4kDG&l7JSa+$%N zM0J%kfKDeVEz=kN8Vs75EktKsDl5~YcI^&f>g?0|8+xRV^f?ySYwOMRT;viH4$GV6mO%oL^lnd7 z){W7|s>24cFE-ESImBLNq-uBmy3S&y0p+!jUaYiQW_7SHJ~R4!&EJIO!AM%zz4ITI z<`h&5YH$4h)6NxJE3s$c4+qiqDAcWCJn8(6p< z_TkC-+hz6eS&yR=LW%CYU(%oQ&)99#?#u1Bq&W>Q+k5h<%JHgL>0UjQl1i6i$(}xr z&6}*-S&B5mbT)nkbS*Dx{qz~y*8&PN_X|@z3l=Z_=@yFktXLYK^V&pRi7b`KhkD z$&f38ZkS9#Ro5q1!x8trAb5BDDHjBh^Q+}ZaMxJY-f@Da$C-pw>HjX41o%o>jiJ4{ z&hQ>Q!BkGASp8=6cAxr{aBd0vZS&bEwEDlilbdI{&oOtJ;l8k3_^Bc8+Hq-7X**Nh zF*Neicq%0rlme^(3Ga9_6jVJsvzoc<2iFuQ%imabY^jJJIs>0|xSH_6t6$B7I&}9z z3PN|Rw;qvJV;`fw$?{AVfW?Akjy8X<)?R)v9BKD5NTn1!J%+gqkF?UG6+uts7+0La zGke?Vr~jMJ4`}gi8+i4YXD!$j=o!i2ds}&>yQYMjR~Q)aXpMJQV}9&Yo;hnF1`Z~1 zUZ7{R^@>$Jc@*Ypu&*%iW!2OCOwYH(YVKD*4R_N7wtkPh`DuT={@RlyA}YCk%>9yZ zQ-RdAi(ls-G)=ySVSc1^%YXl-M1$C7%F1YYoaicfSdNK&=ZzgU@>7iI)r|<5`yDMW zbQPuuvnyUe!haJ|4=&#%=CrbR;GVXo!HD-$VG0-O4F%a^1&rTs1a3QsAMLwDd>6ZU zW%?4vwoFx$D(JEo6nkvFW0JwD*?tuA^6g2BKkU9q+N1xfFP@Fw&-zAjyPkpn;}cJQ zRZ)|fV=(rku9T~Lf1C3% zeg4XKV)MPt;=J|8t}>W}Q~C?04k4$Y+_M(^wHT5}Msjo`6kS;~WWW0iWOn1_>eMKF zHRN?7{GB261@>49O-ZP!=T@i?_^TfZD}zeuK1uL3m@e4}lQg~7msF_m`<%bluv`M% zy}zJa4iNw4F5;K}{jHqEflHmHrH>Q$jfgq~;ZAGLix~gQiIHk5cBs_7+padCm6K9^ z<=*EbLlWd}MWUYOR)tO{hIeP}ic0WW)9A|hw;)#8SCC@Mij0e>+TMkjKAYG?USYX| zLAD9e_DiEHnAzEXF4U9^R)_dZc;Sxt=)K|>y1-ddT3vPKL-GjBi2cqUZ{}U;uX-_` zf?p4RD~%KT*rBSV64u-O&TPp>{Bk5W=jC{e?gm!N>NV(txAkm(#QndwN(Js02Vle= za0}U~G54#T`xHF8F*`)|*m$zVOfr(&$HTsf}9U~VQhavG|0dK(1z?p2++xWSy2vo zeg|4hZ=;?I9GN#gDqk$SY$K(mel2FZ{eajkQ7H3R0q;zpT>F6;_?El3>N|B#jYQ0C ziY}G&1IQgE;VFZR<8IHj{N``l#{QF!kQVC?bh_Zi_aZJngFD@ zC3y@)D+{OBX*Eb{$ zcZP|t72h7Oh1kqh*q&h#hr12^M|cL5LF^vU#{DzWjHbmKuH3>6u@?mWnV)DK2w(n! zoco}jCd*@ztUGf5PfmQOw$VNHeA5GVQdZ4*o}6+BT&>d?cJ}Xf;2k%XEcNoCYFw29 z+Z$}Uj*In<-H>K=y3!M}Gs1nW9J{OK9j}n=N7RLh@Ayua6NN5pThY{{S+@XaB+@E> zfU1pE&vBU%=*k%2n-o~rd-k2A`T8Bi^3)yQl>ao<=gLV9d^Eob>K&%(zB5DQymU3U z*AlSv3EXb!8W@Q~1md=MM_e5OGP)F(GmG`ryKT zzri!l-4H|{!pAZrS-_u1+ybzq<-XCu&i`sznbchO6ipzHO>qqQD>&S#j}7%3zW@DL zd}f6ItcCEX*hNym-=+N>XmEOUHzwpJ3r&FYEA4^s>(G7)v)Km z&U&dssXBhQrGJ@$c5`3Kxjp{eR@F9qSu#?qt{`x551-7(#9o?O?`Z_I_iI%;GudXz zz12GC@J;!seLwK`B;G{o*BuG*u9d+_fuj!@RlNgUMhHxV88c@GTH&?13;s?m%J9X@ z#NEyTpO+GihHJo4(p z4-z8M{;0vwy|vQe28Lf9UM2D|oufm<=~v~X?x0@4liBhXJq?aU+ROYq*BiO3M*+2% z$cH0`fUjV}?T#tV^pes=)1SDPOG20DtI~!xWFqY%Ha`DHS(rE0c(ip{z;k5bs$;IW z+R=Bz?0DpbrV+k%*#UsPPf%DM)sTV@w|v%kMeEF*6Dj0b*qM%@m{?O}6Tj}0SHILFAzHvbz>IIdTw_BA+$?FL_>4YYPwcvQGqO6hdie~sarWVW?^=ixz#0t~kx=Wx@fOs0a2jA_@I@jzUEbD@`Jp0O zqu2PqvqNBZp!!+!&t29K#Qhatqo*|XHnoaEn*MJyk`ZjH>CxW4p9OJsJan@m;44za zl>3P9T3zdZpW{AL#HX0@w}PsyS&mM&ov7$TGOJ#)U0_+6Ggo$qDV8gZ+IOg-hJQS8 zxn?H-`S*v!kvIdmmWB@5o<&Mgp5sS5zssU|WUBVl2JZUGWZSBqyRhjZcE!u=G&J5q z&d2^vWwz4sP;T?-qQNo&Q2O247tK1_uSjC_`{tAlg9}upeMgAkn-OSr*Rra_n2d; zV@*N|;%I!nJFKO0Lb&a%tUC~5`%=(KsdZ`O_x%1H&KEIlN>i%~g+xxS0g%$)U>#aE zu5mLe37N;VoprZj(yC;%p8LgsYk#JO6g{rMS^GTbHTg=}aK5r)?-stqD}yipaji_n zdz@QsMxvx9&~FBpN`3lhqUBUOVVp(g+0Xk(BjFeL9FHfKNf>i$idw$($)d~k3$A|3 zVfL4dYdn8WWL$jNH2y@dUB@Rhh`VtOt#Q@1ZxK271(L2^!DC~UE3!<`pFp#ZLJPpP zOV5LjN-Uq2O-N#uzg`{p=`8<+u#PcF&L2_`r{G+3fOC%~+cn%x>ZR3Gp41oJIud!5 zVvu9{-|V|EnJ<_&Q(VxyrsNmJfuT1YE$I&xdMgLs9p6z>Ny+}OEG5wPtQkp81xE8T zH__u5J8zV6#<+ErMNpWl*nE{}JNMmlo#_0jlF++TMvR5E;{u!P^4Yzsujc;E_H4%Q z%5C;s69ArasIC3|a)$_)t^-b(R8i8TvH;42GLLN2$Zf_dIiFV{C*qDgS%Rrf_roi#n_Nk;5sun) zetY?earVx9EHhy=$Vlje`qjz)whhAk!3(iW;mO#Is3T;*3?$^Qb)sNB{yC(hg^?~ zKb*cqWc>Sl1J14LSx0ie5ibmXV$WigS@&W%Sln3%<6N&nrZM!_b04E-isytZb(K*PlZNXZgxTu4sB-s-?r^G#flp;3(v zkmCgZcs}_-m}duTs{yV%M<(4wh?d=P5B~n}_0ayEc;Bj8qmF`u;w<&49S4~l@q*0a zGfBf}74_%!st+noL3C5^iMw8x=h7H+ig`FULK+QI)r%i0xU8|r98zH%Tx@)qfz7ZA ziqh!5NHWwB2{CIW$+6B)CT~uvq!rbz(s{w{wMhQh&V~$1Ok7P- z&etFO#U^lUmrBdjW;8g-rcHx4KJg!$MnWsC6#<$|Lc32u6fWfPuvx zajcWVz+J{%)=9Z<24kAVZ%=E4Sip4YPNs(VZqCKj*H0yDqd899P+5`6N5Q-0@DV zP~FDI+`2WsYyqWizC0DX9pKo==0`xA)7f8PZY&xTZg>^_Pipz5JCErPp)lbBry$aWsj(l+b=*%xXB;zEj#piyuIF{H$J>Hbm^Xa|�Ad)rPcBJheMki%N>iz0Sp9d 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 GSK#O~d0LpTp3Xe-th+t10;s-2JPTvt`F?fm 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

)hnCVOTPx0MHQ^@S-W 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

MhiN9?(#vkSE>HaU0NB;2r@G1|i5zb&eX+3JuZ< z>wmP80t@nkK0;@Jefc3*=}if);s^1-

c(lrjOYb0vdS2;GxiiI&>&$)NS7APD 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 diff --git a/XEngine_Docment/Docment_zh.docx b/XEngine_Docment/Docment_zh.docx index 57c0df5639148de3edb78b9ff99b6399752b26df..d433529801d6da82ac05a474d86a35d84d6705a5 100644 GIT binary patch delta 130821 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