ÄÄÆÄÀÏ·¯ ÃÖÀûÈ­

ATL 2.1 Visual c + + 5.0 ÄÄÆÄÀÏ·¯¿¡ ´ë ÇÑ ÃÖÀûÈ­ µÇ¾ú½À´Ï´Ù. ƯÈ÷, ¾Ë¾Æ¾ß ÇÒ ¸¹Àº ATL Ŭ·¡½º »ç¿ë ÇÏ ¿© ¼±¾ð µÈ ATL_NO_VTABLE ¸ÅÅ©·Î:

aTL_NO_VTABLE CComControl Ŭ·¡½º
{
 nbsp; ...
}(&N)

ATL Á¤ÀÇ ATL_NO_VTABLE °°½À´Ï´Ù.:

# ifdef _ATL_DISABLE_NO_VTABLE
 nbsp; # define ATL_NO_VTABLE
# else
 ? # define ATL_NO_VTABLE __declspec(novtable)
# endif(&N)

¸¸¾à _ATL_DISABLE_NO_VTABLE ¸¦ Á¤ÀÇ ÇÏÁö´Â ATL_NO_VTABLE ¸ÅÅ©·Î È®Àå declspec(novtable) . ¶§ declspec(novtable) ´Â Ŭ·¡½º ¼±¾ð¿¡¼­ Ŭ·¡½ºÀÇ »ý¼ºÀÚ¿Í ¼Ò¸êÀÚ¿¡¼­ ÃʱâÈ­ µÇ °í¿¡¼­ vtable Æ÷ÀÎÅ͸¦ ¹æÁö ÇÕ´Ï´Ù. ¸µÄ¿´Â vtable¸¦ Á¦°ÅÇÒ µû¶ó¼­ ¼ö¿Í ¸ðµç ±â´É ÁöÀû ÇÏ´Â vtable¿¡ ÀÇÇØ Á¦°ø (´ë°³ CComObject, CComAggObject¶Ç´Â CComPolyObject) °¡Àå ÆÄ»ý Ŭ·¡½º¸¦ »ç¿ë ÇÏÁö ¾Ê´Â declspec(novtable) ¹× µû¶ó¼­ vtable Æ÷ÀÎÅ͸¦ ¿Ã¹Ù¸£°Ô ÃʱâÈ­ µË´Ï´Ù¡£

±âº»ÀûÀ¸·Î ATL °³Ã¼ ¸¶¹ý»ç¿Í »õ Ŭ·¡½º¸¦ »ý¼º µË´Ï´Ù ÀÖ´Â ATL_NO_VTABLE ¸ÅÅ©·Î. ¾Õ¿¡¼­ ¼³¸íÇÑ ´ë·Î, ÇØ´ç declspec(novtable) Á÷Á¢ »ý¼º µÇÁö ¾ÊÀº ±âº» Ŭ·¡½º¿Í Ư¼º¿¡¸¸ »ç¿ë ÇØ¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ, »ç¿ë ÇÏ´Â ¸ðµç °³Ã¼ÀÇ »ý¼ºÀÚ¿¡¼­ °¡»ó ÇÔ¼ö¸¦ È£Ãâ ÇÏ´Â °ÍÀÌ ¾ÈÀü ÇÏÁö ¾Ê½À´Ï´Ù declspec(novtable) . ÀÌ·¯ÇÑ È£Ãâ FinalConstruct ¸Þ¼­µå·Î À̵¿ ÇØ¾ß¡£

»ç¿ë ÇØ¾ß ÇÏ´ÂÁö È®½Ç ÇÏÁö ¾ÊÀº °æ¿ì´Â declspec(novtable) Ư¼ºÀ» Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù ÇØ´ç ATL_NO_VTABLE ¸ðµç Ŭ·¡½º Á¤ÀÇ¿¡¼­ ¸ÅÅ©·Î ÀüüÀûÀ¸·Î ÁöÁ¤ ÇÏ ¿© »ç¿ë ÇÏÁö ¾Êµµ·Ï #define _ATL_DISABLE_NO_VTABLE ¿¡¼­ stdafx.h, Àü¿¡ ´Ù¸¥ ¸ðµç ATL Çì´õ ÆÄÀÏÀº Æ÷ÇÔ¡£

Index