ÅÛÇø´À¸·Î RELEASE, DELETE ±¸Çö

 

#define ¼±¾ð¹®À¸·Î ±¸ÇöµÇ¾î ÀÖ´Â __RELEASE__, __DELETE__¹®À» ÅÛÇø´À¸·Î ¼öÁ¤Çغ¸ÀÚ.
ÅÛÇø´ÀÇ ÀÚ¼¼ÇÑ ¼³¸íÀº ½ÃÁß¿¡ ÁÁÀº C++ Ã¥ÀÌ ¸¹À¸´Ï °¢ÀÚ µÚÁ®º¸¸é ÁÁ¸éÁÁ°Ú´Ù.

ÅÛÇø´À¸·Î ±¸ÇöµÈ ¸®¼Ò½º ÇØÁ¦ ¹æ¹ýÀ» #define°ú ºñ±³Çϴµ¥¼­ ¼³¸íÀ» ¸¶¹«¸® ¢°Ú´Ù.

<<_RELEASE_ ¼±¾ð>>

#define _RELEASE_(p) { if(p) { (p)->Release(); (p)=NULL; };}

template<class T> void _RELEASE_(T t)
{
        if( t )
        {
                t->Release();
                t = 0;
        }
}

<<_DELETE_ ¼±¾ð>>

#define _DELETE_(p)  { if(p) { delete (p);     (p)=NULL; };}    

template<class T> void _DELETE_(T t)
{
        if( t )
        {
                delete t;
                t = 0;
        }
}



<<»ç¿ë ¹æ¹ý¿¡ ´ëÇؼ­ ¾Ë¾Æº¸ÀÚ>>

´ÙÀ½°ú °°ÀÌ º¯¼ö°¡ ¼±¾ðµÇ¾î ÀÖ´Ù°í ÇÒ ¶§ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö ºñ±³ÇØ º¸ÀÚ.

LPDIRECT3D9             g_d3d        = NULL; // our main d3d8 interface
LPDIRECT3DDEVICE9       g_d3d_Device = NULL; // our d3d8 device
LPDIRECT3DVERTEXBUFFER9 g_VertexBuffer = NULL; // our VertexBuffer

ÇØÁ¦½Ã¿¡´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëµÈ´Ù.

_RELEASE_ (g_VertexBuffer);
_RELEASE_ (g_d3d_Device);
_RELEASE_ (g_d3d);

_RELEASE_<LPDIRECT3DVERTEXBUFFER9>(g_VertexBuffer);
_RELEASE_<LPDIRECT3DDEVICE9>(g_d3d_Device);
_RELEASE_<LPDIRECT3D9>(g_d3d);

 

[Æß]
http://www.moon-labs.com