SpMemory.h
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:2k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. /*
  2. Cross Platform Core Code.
  3. Copyright(R) 2001-2002 Balang Software.
  4. All rights reserved.
  5. Using:
  6. for C++:
  7. #include "StdAfx.h"
  8. #define new DEBUG_NEW
  9. for C:
  10. #include "StdAfx.h"
  11. replace <malloc>  with <SP_Alloc>
  12. <free>    with <SP_Free>
  13. <realloc> with <SP_ReAlloc>
  14. */
  15. #ifndef __SP_MEMORY_H__
  16. #define __SP_MEMORY_H__
  17. #ifdef _DEBUG
  18. struct CSPMemoryState
  19. {
  20. enum blockUsage
  21. {
  22. freeBlock,
  23. objectBlock,
  24. bitBlock,
  25. nBlockUseMax
  26. };
  27. struct CBlockHeader* m_pBlockHeader;
  28. LONG m_lCounts[nBlockUseMax];
  29. LONG m_lSizes[nBlockUseMax];
  30. LONG m_lHighWaterCount;
  31. LONG m_lTotalCount;
  32. CSPMemoryState();
  33. // Operations
  34. void Checkpoint();  // fill with current state
  35. BOOL Difference(const CSPMemoryState& oldState,
  36. const CSPMemoryState& newState);  // fill with difference
  37. // Output to afxDump
  38. void DumpStatistics() const;
  39. void DumpAllObjectsSince() const;
  40. };
  41. void* _cdecl operator new(size_t nSize, LPCSTR lpszFileName, int nLine);
  42. #if _MSC_VER >= 1200
  43. void _cdecl operator delete(void *pMem, LPCSTR lpszFileName, int nLine );
  44. #endif // _MSC_VER
  45. #define DEBUG_NEW new(THIS_FILE, __LINE__)
  46. void* SP_AllocMemoryDebug(size_t nSize, BOOL bIsObject, LPCSTR lpszFileName, int nLine);
  47. void SP_FreeMemoryDebug(void* pbData, BOOL bIsObject);
  48. void* SP_ReAllocMemoryDebug( void *pbData, size_t nSize, BOOL bObject, LPCSTR lpszFileName, int nLine );
  49. BOOL SP_CheckMemory();
  50. #define SP_Alloc(nSize)  SP_AllocMemoryDebug(nSize, FALSE, __FILE__, __LINE__ )
  51. #define SP_Free(pbData)  SP_FreeMemoryDebug(pbData, FALSE );
  52. #define SP_ReAlloc(pbData, nSize) 
  53. SP_ReAllocMemoryDebug(pbData, nSize, FALSE, __FILE__, __LINE__ )
  54. #else
  55. #define SP_Alloc malloc
  56. #define SP_Free free
  57. #define SP_ReAlloc realloc
  58. #define DEBUG_NEW new
  59. #define SP_CheckMemory() TRUE
  60. #define SP_IsMemoryBlock(p, nBytes) TRUE
  61. #endif // _DEBUG
  62. #endif //__SP_MEMORY_H__