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

模拟服务器

开发平台:

C/C++

  1. //---------------------------------------------------------------------------
  2. // Sword3 Engine (c) 1999-2000 by Kingsoft
  3. //
  4. // File: KMemClass.cpp
  5. // Date: 2000.08.08
  6. // Code: WangWei(Daphnis)
  7. // Desc: Memory Opration Class Using Heap Memory Functions
  8. //---------------------------------------------------------------------------
  9. #include "KWin32.h"
  10. #include "KDebug.h"
  11. #include "KMemBase.h"
  12. #include "KMemClass.h"
  13. //---------------------------------------------------------------------------
  14. // 函数: KMemClass
  15. // 功能: 购造函数
  16. // 参数: void
  17. // 返回: void
  18. //---------------------------------------------------------------------------
  19. KMemClass::KMemClass()
  20. {
  21. m_lpMemPtr = NULL;
  22. m_lpMemLen = 0;
  23. }
  24. //---------------------------------------------------------------------------
  25. // 函数: ~KMemClass
  26. // 功能: 析造函数
  27. // 参数: void
  28. // 返回: void
  29. //---------------------------------------------------------------------------
  30. KMemClass::~KMemClass()
  31. {
  32. Free();
  33. }
  34. //---------------------------------------------------------------------------
  35. // 函数: Alloc
  36. // 功能: 分配内存
  37. // 参数: dwSize 内存块大小
  38. // 返回: PVOID 内存块指针
  39. //---------------------------------------------------------------------------
  40. PVOID KMemClass::Alloc(DWORD dwSize)
  41. {
  42. // 已经分配的就不要再分配了
  43. if (m_lpMemLen == dwSize)
  44. return m_lpMemPtr;
  45. // 释放已经分配的内存
  46. if (m_lpMemPtr)
  47. Free();
  48. // 分配内存
  49. m_lpMemPtr = g_MemAlloc(dwSize);
  50. if (m_lpMemPtr != NULL)
  51. m_lpMemLen = dwSize;
  52. return m_lpMemPtr;
  53. }
  54. //---------------------------------------------------------------------------
  55. // 函数: Free
  56. // 功能: 释放内存
  57. // 参数: void
  58. // 返回: void
  59. //---------------------------------------------------------------------------
  60. void KMemClass::Free()
  61. {
  62. if (m_lpMemPtr)
  63. g_MemFree(m_lpMemPtr);
  64. m_lpMemPtr = NULL;
  65. m_lpMemLen = 0;
  66. }
  67. //---------------------------------------------------------------------------
  68. // 函数: Zero
  69. // 功能: 内存清零
  70. // 参数: void
  71. // 返回: void
  72. //---------------------------------------------------------------------------
  73. void KMemClass::Zero()
  74. {
  75. if (m_lpMemPtr)
  76. g_MemZero(m_lpMemPtr, m_lpMemLen);
  77. }
  78. //---------------------------------------------------------------------------
  79. // 函数: Fill
  80. // 功能: 内存填充
  81. // 参数: byFill 用来填充的字节
  82. // 返回: void
  83. //---------------------------------------------------------------------------
  84. void KMemClass::Fill(BYTE byFill)
  85. {
  86. if (m_lpMemPtr)
  87. g_MemFill(m_lpMemPtr, m_lpMemLen, byFill);
  88. }
  89. //---------------------------------------------------------------------------
  90. // 函数: Fill
  91. // 功能: 内存填充
  92. // 参数: byFill 用来填充的字节
  93. // 返回: void
  94. //---------------------------------------------------------------------------
  95. void KMemClass::Fill(WORD wFill)
  96. {
  97. if (m_lpMemPtr)
  98. g_MemFill(m_lpMemPtr, m_lpMemLen, wFill);
  99. }
  100. //---------------------------------------------------------------------------
  101. // 函数: Fill
  102. // 功能: 内存填充
  103. // 参数: byFill 用来填充的字节
  104. // 返回: void
  105. //---------------------------------------------------------------------------
  106. void KMemClass::Fill(DWORD dwFill)
  107. {
  108. if (m_lpMemPtr)
  109. g_MemFill(m_lpMemPtr, m_lpMemLen, dwFill);
  110. }
  111. //---------------------------------------------------------------------------