ErrorCode.cpp
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:2k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /**************************************************************************
  2. 文件    :    ErrorCode.cpp
  3. 创建人  :    Fyt(Fan Zhanpeng)
  4. 创建时间:    08-01-2003(mm-dd-yyyy)
  5. 功能描述:    弹出错误提示窗口
  6. ***************************************************************************/
  7. #include "KWin32.h"
  8. #include <windows.h>
  9. #include "ErrorCode.h"
  10. #include "KEngine.h"
  11. #include "KiniFile.h"
  12. #define ERROR_STRING "\UI\错误描述.ini"
  13. #define NEXT_LINE_CHARA '~'
  14. //错误代码提示部分定义的全局变量
  15. static unsigned int s_uErrorCode = 0;
  16. static char s_szErrorString[32] = "";
  17. //错误代码提示部分的全局变量添加完了
  18. void Error_SetErrorCode(unsigned int uCode)
  19. {
  20. s_uErrorCode = uCode;
  21. }
  22. void Error_SetErrorString(const char* pcszString)
  23. {
  24. strncpy(s_szErrorString, pcszString, sizeof(s_szErrorString));
  25. s_szErrorString[sizeof(s_szErrorString) - 1] = 0;
  26. }
  27. /**************************************************************************
  28. *功能:弹出错误描述窗口
  29. ***************************************************************************/
  30. void Error_Box()
  31. {
  32. if(s_uErrorCode)
  33. {
  34.      KIniFile Ini;
  35.      char szFormatString[512], szOutputInfo[512], szBuf[16];
  36.         //嗷,开始显示错误信息咯
  37.     Ini.Load(ERROR_STRING);
  38.         Ini.GetString("Strings", itoa(s_uErrorCode,szBuf,10), "", szFormatString, sizeof(szFormatString));
  39. if(szFormatString[0] == 0)
  40. {
  41. Ini.GetString("Strings", "Unknown", "", szFormatString, sizeof(szFormatString));
  42. if(szFormatString[0] == 0)
  43.     strcpy(szFormatString, "未知的错误(错误号: %d)");
  44. }
  45. while(true)
  46. {
  47. char* pszNextLine = strchr(szFormatString, NEXT_LINE_CHARA);
  48. if (pszNextLine == NULL)
  49. break;
  50. *pszNextLine = 'n';
  51. }
  52. const char* pszCodePos = strstr(szFormatString, "%d");
  53. const char* pszStringPos = strstr(szFormatString, "%s");
  54. if (pszCodePos)
  55. {
  56. if (pszStringPos)
  57. {
  58. if (pszCodePos < pszStringPos)
  59. sprintf(szOutputInfo, szFormatString, s_uErrorCode, s_szErrorString);
  60. else
  61. sprintf(szOutputInfo, szFormatString, s_szErrorString, s_uErrorCode);
  62. }
  63. else
  64. {
  65. sprintf(szOutputInfo, szFormatString, s_uErrorCode);
  66. }
  67. }
  68. else if (pszStringPos)
  69. {
  70. sprintf(szOutputInfo, szFormatString, s_szErrorString);
  71. }
  72. else
  73. strcpy(szOutputInfo, szFormatString);
  74.     MessageBox(NULL, szOutputInfo, "剑侠情缘网络版", MB_OK | MB_ICONERROR);
  75.     s_uErrorCode = 0;
  76. }
  77. s_szErrorString[0] = 0;
  78. }