custommemorymanagement.html 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <HTML>
  2. <HEAD>
  3. <TITLE>Custom Memory Management</TITLE>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. </HEAD>
  6. <link href="RaknetManual.css" rel="stylesheet" type="text/css">
  7. <meta name="title" content="RakNet - Advanced multiplayer game networking API">
  8. </HEAD>
  9. <BODY BGCOLOR="#ffffff" LINK="#003399" vlink="#003399" alink="#003399" LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0"">
  10. <span style="background-color: rgb(255, 255, 255);"><img src="RakNet_Icon_Final-copy.jpg" alt="Oculus VR, Inc." width="150" height="150"></span><BR>
  11. <BR>
  12. <table width="100%" border="0"><tr>
  13. <td bgcolor="#2c5d92">
  14. <img src="spacer.gif" width="8" height="1"><span class="RakNetWhiteHeader">Custom Memory Management</span></td>
  15. </tr></table>
  16. <TABLE BORDER="0" CELLPADDING="10" CELLSPACING="0" WIDTH="100%"><TR>
  17. <TD>
  18. <span class="RakNetBlueHeader">Override new, delete, malloc, free, and realloc
  19. </p>
  20. </span>
  21. <p>Users wishing to provide custom memory management functions can do so via RakMemoryOverride.cpp.</p>
  22. <p>There are 3 global pointers defined in this file, with predefined defaults:</p>
  23. <p class="RakNetCode">void* (*rakMalloc) (size_t size) = RakMalloc;<br>
  24. void* (*rakRealloc) (void *p, size_t size) = RakRealloc;<br>
  25. void (*rakFree) (void *p) = RakFree;</p>
  26. <p>To override, simply set the values of these variables to something else.</p>
  27. <p>For example, to override malloc, you may write:</p>
  28. <p class="RakNetCode">#include &quot;RakMemoryOverride.h&quot;</p>
  29. <p class="RakNetCode">void *MyMalloc(size_t size)<br>
  30. {<br>
  31. return malloc(size);<br>
  32. }</p>
  33. <p class="RakNetCode">int main()<br>
  34. {<br>
  35. rakMalloc=MyMalloc;<br>
  36. // ...<br>
  37. }</p>
  38. <p>Then edit the file RakNetDefinesOverrides.h and add </p>
  39. <p class="RakNetCode">#define _USE_RAK_MEMORY_OVERRIDE 1</p>
  40. <p>Alternatively, edit RakNetDefines.h _USE_RAK_MEMORY_OVERRIDE</p></TD>
  41. </TR></TABLE>
  42. <table width="100%" border="0"><tr><td bgcolor="#2c5d92">
  43. <img src="spacer.gif" width="8" height="1"><span class="RakNetWhiteHeader">See Also</span></td>
  44. </tr></table>
  45. <TABLE BORDER="0" CELLPADDING="10" CELLSPACING="0" WIDTH="100%"><TR><TD>
  46. <p><A HREF="index.html">Index</A><br>
  47. <A HREF="networkidobject.html">NetworkIDObject</A></p>
  48. </TD>
  49. </TR></TABLE>
  50. </BODY>
  51. </HTML>
粤ICP备19079148号