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

模拟服务器

开发平台:

C/C++

  1. //---------------------------------------------------------------------------
  2. // Sword3 Engine (c) 1999-2000 by Kingsoft
  3. //
  4. // File: KDebug.cpp
  5. // Date: 2000.08.08
  6. // Code: WangWei(Daphnis)
  7. // Desc: Debug Helper Functions
  8. //---------------------------------------------------------------------------
  9. #include "KWin32.h"
  10. #include "KFile.h"
  11. #include "KMemBase.h"
  12. #ifndef _STANDALONE
  13. #include "KWin32Wnd.h"
  14. #endif
  15. #include "KDebug.h"
  16. #include <string.h>
  17. //---------------------------------------------------------------------------
  18. #ifndef __linux
  19. static HWND m_hWndDebug = NULL;
  20. #endif
  21. //---------------------------------------------------------------------------
  22. // 函数: find debug window
  23. // 功能: find debug window
  24. // 参数: char*
  25. // char*
  26. // 返回: void
  27. //---------------------------------------------------------------------------
  28. HWND g_FindDebugWindow(char* lpClassName, char* lpWindowName)
  29. {
  30. #ifndef __linux
  31. m_hWndDebug = FindWindow(lpClassName, lpWindowName);
  32. return m_hWndDebug;
  33. #else 
  34. return 0;
  35. #endif
  36. }
  37. //---------------------------------------------------------------------------
  38. // 函数: g_DebugLog
  39. // 功能: 向调试窗口输出调试信息
  40. // 参数: Fmt 格式化字符串
  41. // ... 输出的字符串
  42. // 返回: void
  43. //---------------------------------------------------------------------------
  44. void g_DebugLog(LPSTR Fmt, ...)
  45. {
  46. #ifndef __linux
  47. if (m_hWndDebug)
  48. {
  49. char buffer[256];
  50. va_list va;
  51. COPYDATASTRUCT data;
  52. va_start(va, Fmt);
  53. int n = vsprintf(buffer, Fmt, va);
  54. va_end(va);
  55. data.dwData = 1;
  56. data.cbData = n + 1;
  57. data.lpData = buffer;
  58. SendMessage(m_hWndDebug, WM_COPYDATA,
  59. (WPARAM)m_hWndDebug, (LPARAM)&data);
  60. }
  61. #else
  62. /* char buffer[256];
  63. va_list va;
  64. va_start(va, Fmt);
  65. vsprintf(buffer, Fmt, va);
  66. strcat(buffer, "n");
  67. printf(buffer);
  68. va_end(va);*/
  69. #endif
  70. }
  71. //---------------------------------------------------------------------------
  72. // 函数: g_MessageBox
  73. // 功能: Display a System Message Box
  74. // 参数: char* lpMsg, ...
  75. // 返回: void
  76. //---------------------------------------------------------------------------
  77. void g_MessageBox(LPSTR lpMsg, ...)
  78. {
  79. #ifndef __linux
  80. char szMsg[256];
  81. va_list va;
  82. va_start(va, lpMsg);
  83. vsprintf(szMsg, lpMsg, va);
  84. va_end(va);
  85. g_DebugLog(szMsg);
  86. // MessageBox(g_GetMainHWnd(), szMsg, 0, MB_OK);
  87. MessageBox(NULL, szMsg, 0, MB_OK);
  88. #endif
  89. }
  90. //---------------------------------------------------------------------------
  91. // 函数: g_AssertFailed
  92. // 功能: 断言失败
  93. // 参数: FileName 在哪个文件中失败
  94. // LineNum 在文件中的第几行
  95. // 返回: void
  96. //---------------------------------------------------------------------------
  97. void g_AssertFailed(LPSTR pFileName, int nLineNum)
  98. {
  99. char szMsg[256];
  100. sprintf(szMsg, "Assert failed in %s, line = %i", pFileName, nLineNum);
  101. g_DebugLog(szMsg);
  102. g_MessageBox(szMsg);
  103. exit(1);
  104. }
  105. //---------------------------------------------------------------------------