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 Çì´õ ÆÄÀÏÀº Æ÷ÇÔ¡£