°´Ã¼ÀÇ ÂüÁ¶ Ƚ¼ö¸¦ ÁÙÀ̰ųª ´Ã¸³´Ï´Ù.
ObjAddRef(Ptr)
ObjRelease(Ptr)
°ü¸®µÇÁö ¾Ê´Â °´Ã¼ Æ÷ÀÎÅÍ ¶Ç´Â COM ÀÎÅÍÆäÀ̽º Æ÷ÀÎÅÍ.
ÀÌ ÇÔ¼öµéÀº »õ·Î¿î ÂüÁ¶ Ƚ¼ö¸¦ µ¹·ÁÁÝ´Ï´Ù. ÀÌ °ªÀº µð¹ö±ë ¸ñÀûÀ¸·Î¸¸ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
´ÙÀ½ ±ÛµéÀº COM¿¡ Àû¿ëµÉ ¶§ÀÇ ÂüÁ¶ Ƚ¼ö¸¦ ´Ù·ç°í ÀÖÁö¸¸, ÀϹÝÀûÀ¸·Î ¿ÀÅäÇÖÅ° °´Ã¼¿¡µµ Àû¿ëµÇ´Â Áß¿äÇÑ °³³ä°ú ±ÔÄ¢À» ¾ð±ÞÇÕ´Ï´Ù: IUnknown::AddRef, IUnknown::Release, ÂüÁ¶ Ƚ¼ö ±ÔÄ¢.
ComObjConnect¸¦ ÂüÁ¶ÇϽʽÿÀ.
obj := Object() ; ´ÙÀ½ µÎ ÁÙÀº µ¿µîÇÕ´Ï´Ù: ptr1 := Object(obj) ptr2 := ObjectToPointer(obj) ObjectToPointer(obj) { if !IsObject(obj) return "" ptr := &obj ObjAddRef(ptr) return ptr } ; Object() ¶Ç´Â ObjectToPointer()¸¦ ÅëÇÏ¿© ¿¶÷µÈ Æ÷ÀÎÅÍ´Â °¢°¢ ¼öÀÛ¾÷À¸·Î Ç®¾îÁÖ¾î¾ß ÇÕ´Ï´Ù. ; ±×·¡¾ß °´Ã¼°¡ ¿µ¿øÈ÷ ÇØÁ¦µÇ¸ç »ç¿ëµÈ ¸Þ¸ð¸®µµ µ¹·ÁÁÙ ¼ö ÀÖ½À´Ï´Ù. ObjRelease(ptr2) ObjRelease(ptr1)