ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡
µÚÈýµç×ÓÊé ·µ»Ø±¾ÊéĿ¼ ¼ÓÈëÊéÇ© ÎÒµÄÊé¼Ü ÎÒµÄÊéÇ© TXTÈ«±¾ÏÂÔØ ¡ºÊղص½ÎÒµÄä¯ÀÀÆ÷¡»

ÉîÈëdz³öMFCµÚ2°æ(PDF¸ñʽ)-µÚ26²¿·Ö

¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿! Èç¹û±¾ÊéûÓÐÔĶÁÍ꣬ÏëÏ´μÌÐø½Ó×ÅÔĶÁ£¬¿ÉʹÓÃÉÏ·½ "Êղص½ÎÒµÄä¯ÀÀÆ÷" ¹¦ÄÜ ºÍ "¼ÓÈëÊéÇ©" ¹¦ÄÜ£¡




¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Õâ¸ö³ÌÐòÓëRTTI¡¡Ïà¹ØµÄµØ·½ÓÐÈý¸ö£º¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1¡£¡¡±àÒëʱÐèÑ¡ÓÃ/GR¡¡Ñ¡Ï/GR¡¡¡¡µÄÒâ˼ÊÇenable¡¡C£«£«¡¡RTTI£©¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡2¡£¡¡°üº¬typeinfo¡£h¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡3¡£¡¡ÐµÄtypeid¡¡ÔËËã×Ó¡£ÕâÊÇÒ»¸ö¶àÔØ£¨overloading£©ÔËËã×Ó£¬¶àÔصÄÒâ˼¾ÍÊÇÓµ¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÓÐÒ»¸öÒÔÉϵÄÐÍʽ£¬Äã¿ÉÒÔÏëÏóÄÇÊÇÒ»ÖÖ¾²Ì¬µÄ¶à̬£¨Polymorphism£©¡£typeid¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÄ²ÎÊý¿ÉÒÔÊÇÀà±ðÃû³Æ£¨Èç±¾Àý#58¡¡×󣩣¬Ò²¿ÉÒÔÊǶÔÏóÖ¸Õ루Èç±¾Àý#58¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÓÒ£©¡£Ëü´«»ØÒ»¸ötype_info&¡£type_info¡¡ÊÇÒ»¸öÀà±ð£¬¶¨ÒåÓÚtypeinfo¡£h¡¡¡¡ÖУº¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡class¡¡type_info¡¡£û¡¡



94¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡157¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡public£º¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡virtual¡¡~type_info£¨£©£»¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡int¡¡operator==£¨const¡¡type_info&¡¡rhs£©¡¡const£»¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡int¡¡operator£¡=£¨const¡¡type_info&¡¡rhs£©¡¡const£»¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡int¡¡before£¨const¡¡type_info&¡¡rhs£©¡¡const£»¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡const¡¡char*¡¡name£¨£©¡¡const£»¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡const¡¡char*¡¡raw_name£¨£©¡¡const£»¡¡

¡¡¡¡¡¡¡¡¡¡private£º¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¡¡¡£¡£¡¡

¡¡¡¡¡¡¡¡¡¡£ý£»¡¡



¡¡¡¡¡¡¡¡ËäÈ»Visual¡¡C£«£«¡¡±àÒëÆ÷×Ô´Ó4¡£0¡¡°æÒѾ­Ö§³ÖRTTI¡¡£¬µ«MFC¡¡4¡£x¡¡²¢Î´Ê¹ÓñàÒëÆ÷µÄÄÜÁ¦¡¡

¡¡¡¡¡¡¡¡Íê³ÉÆä¶ÔRTTI¡¡¡¡µÄÖ§³Ö¡£MFC¡¡ÓÐ×Ô¼ºÒ»Ì×ÑØÓÃÒѾõİ취£¨´Ó1¡£0¡¡°æ¾Í¿ªÊ¼ÁË£©¡£à¸£¬¡¡

¡¡¡¡¡¡¡¡²»ÒªÒòΪMFC¡¡¡¡µÄ×÷·¨ÌØÊâ¶ø·ÇÄÑËü£¬ÏëÏë¿´ËüµÄÓƾÃÀúÊ·¡£¡¡



¡¡¡¡¡¡¡¡MFC¡¡¡¡µÄRTTI¡¡ÄÜÁ¦Ç£³¶µ½Ò»×é·Ç³£ÉñÃصĺ꣨¡¡DE¡¡CLARE_D¡¡YNAMIC¡¡¡¡¡¢¡¡

¡¡¡¡¡¡¡¡IMPLEMENT¡¡¡¡D¡¡YNAMIC¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CRuntimeClass¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡MFC¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£©ºÍÒ»¸ö·Ç³£ÉñÃصÄÀà±ð£¨¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£©¡£¡¡¡¡¡¡¡¡¡¡³ÌÐòÔ±¶¼Öª¡¡

¡¡¡¡¡¡¡¡µÀÔõôÓÃËü£¬È´Ã»¼¸¸öÈ˶®µÃÆäÔË×÷Ô­Àí¡£´óµÀ²»¹ýÈýÁ½ÐУ¬Ëµ´©²»ÖµÒ»ÎÄÇ®£¬ÏÂÒ»Õ¡¡

¡¡¡¡¡¡¡¡ÎҾͷÂÕæ³öÒ»¸öRTTI¡¡¡¡µÄDOS¡¡°æ±¾¸øÄã¿´¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dynamic¡¡Creation£©¡¡

¶¯Ì¬Éú³É¡¡£¨¡¡



¡¡¡¡¡¡¡¡¶ÔÏóµ¼ÏòÊõÓïÖÐÓÐÒ»¸öÃûΪpersistence£¬Òâ˼ÊÇÓÀÐø´æÁô¡£·ÅÔÚRAM¡¡¡¡ÖеĶ«Î÷£¬ÉúÃü¡¡

¡¡¡¡¡¡¡¡Êܵ½µçÁ¦µÄ×óÓÒ£¬²»¿ÉÄÜÓÀÐø´æÁô£»Î¨Ò»µÄ°ì·¨ÊÇ°ÑËüдµ½ÎļþÈ¥¡£MFC¡¡¡¡µÄÒ»¸öÊõÓï¡¡

¡¡¡¡¡¡¡¡Serialize£¬¾ÍÊÇ×öÓйØÎļþ¶ÁдµÄÓÀÐø´æÁô¶¯×÷£¬²¢ÇÒʵ×ö×÷³öÒ»¸öÐéÄ⺯Êý£¬¾Í½Ð×÷¡¡

¡¡¡¡¡¡¡¡Serialize¡¡¡£¡¡



¡¡¡¡¡¡¡¡¿´ÆðÀ´ÓÀÐø´æÁôÓë±¾½ÚµÄÖ÷Ì⡸¶¯Ì¬Éú³É¡¹ËƺõûÓÐʲô¸ÉÁ¬¡£ÓУ¡Äã°ÑÄãµÄ×ÊÁÏ´¢´æ¡¡

¡¡¡¡¡¡¡¡µ½Îļþ£¬ÕâЩ×ÊÁϺܿÉÄÜ£¨Í¨³£ÊÇ£©¶ÔÏóÖеijÉÔ±±äÁ¿¡¡ÎÒ°ÑËü¶Á³öÀ´ºó£¬ÊƱØÒªÒÀ¾Ý¡¡

¡¡¡¡¡¡¡¡ÎļþÉϵļÇÔØ£¬ÖØÐÂnew¡¡¡¡³öÄÇЩ¸ö¶ÔÏóÀ´¡£ÎÊÌâÔÚÓÚ£¬¼´Ê¹ÎҵijÌÐòÓÐÄÇЩÀà±ð¶¨Ò壨¾Í¡¡

¡¡¡¡¡¡¡¡ËãÎҵijÌÐòºÍÄãµÄ³ÌÐòÓÐÒ»ÑùµÄÄÚÈݺÃÁË£©£¬ÎÒÄܹ»Õâô×öÂ𣺡¡



¡¡¡¡¡¡¡¡¡¡¡¡char¡¡className£§30£§¡¡=¡¡getClassName£¨£©£»¡¡//¡¡´ÓÎļþ£¨»òʹÓÃÕßÊäÈ룩»ñµÃÒ»¸öÀà±ðÃû³Æ¡¡

¡¡¡¡¡¡¡¡¡¡¡¡CObject*¡¡obj¡¡=¡¡new¡¡classname£»¡¡//¡¡ÕâÒ»ÐÐÐв»Í¨¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡95¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡158¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê×ÏÈ£¬new¡¡classname¡¡Õâ¸ö¶¯×÷¾Í¹ý²»Á˹ء£Æä´Î£¬¾ÍËã¹ýµÃÁ˹أ¬new¡¡¡¡³öÀ´µÄ¶ÔÏ󾿡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¾¹¸ÃÊÇʲôÀà±ðÀàÐÍ£¿ËäÈ»ÒÔÒ»¸öÖ¸ÏòMFC¡¡Àà±ðÀÏ×æ×Ú£¨CObject¡¡£©µÄ¶ÔÏóÖ¸ÕëÀ´ÈÝÄÉ¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ëü¾ø¶ÔûÓÐÎÊÌ⣬µ«ÖÕ²»ºÃ×ÜÊÇÈç´Ë°É£¡²»¼ûµÃÕâÑù×Ó¾ÍÄܹ»Âú×ãÄãµÄ³ÌÐòÐèÇó°¡¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÔÈ»£¬ÄãÄܹ»ÒÔSerialize¡¡¡¡º¯Êýдµµ£¬ÎÒÄܹ»ÒÔSerialize¡¡¡¡º¯Êý¶Áµµ£¬µ«ÎÒ¾ÍÊÇû°ì·¨»Ö¸´¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡­¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÄãÔ­À´µÄ״̬¡¡¡¡³ý·ÇÎҵijÌÐòÄܹ»¡¸¶¯Ì¬Éú³É¡¹¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DE¡¡CLARE¡¡¡¡D¡¡YNCREA¡¡TE¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡MFC¡¡Ö§³Ö¶¯Ì¬Éú³É£¬¡¡¿¿µÄÊÇÒ»×é·Ç³£ÉñÃصĺ꣨¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IMPLEMENT¡¡¡¡D¡¡YNCREA¡¡TE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CRuntimeClass¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£©ºÍÒ»¸ö·Ç³£ÉñÃصÄÀà±ð£¨¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£©¡£µÚ£³ÕÂÖÐÎÒ½«¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡°ÑËü³éË¿°þ¼ë£¬ÒÔÒ»¸öDOS¡¡³ÌÐò·ÂÕæ³öÀ´¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Exception¡¡Handling£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Òì³£´¦Àí¡¡£¨¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Exception¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C£«£«¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¨Òì³£Çé¿ö£©ÊÇÒ»¸öÆÄΪÐÂÏʵġ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÓïÑÔÌØÕ÷£¬¿ÉÒÔ°ïÖúÄã¹ÜÀíÖ´ÐÐʱÆÚµÄ´í¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡nested¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Wat¡¡C£«£«¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Îó£¬ÌرðÊÇÄÇЩ·¢ÉúÔÚÉî¶È³²×´£¨¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£©º¯Êýµ÷ÓÃÖ®ÖеĴíÎ󡣡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÊÇ×îÔçÖ§¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡³ÖANSI¡¡C£«£«¡¡Òì³£Çé¿öµÄ±àÒëÆ÷£¬Borland¡¡C£«£«¡¡4¡£0¡¡Ëæºó¸ú½ø£¬È»ºóÊÇMicrosoft¡¡Visual¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C£«£«¡¡ºÍSymantec¡¡C£«£«¡¡¡£ÏÖÔÚ£¬ÕâÒѳÉΪC£«£«¡¡±àÒëÆ÷±ØÐèÖ§³ÖµÄÏîÄ¿¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C£«£«¡¡¡¡exception¡¡¡¡¡¡¡¡¡¡¡¡¡¡C¡¡¡¡setj¡¡mp¡¡¡¡longjmp¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÄ¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ù±¾ÉÏÊÇÓë¡¡¡¡¡¡¡¡¡¡¡¡µÄ¡¡¡¡¡¡¡¡¡¡¡¡ºÍ¡¡¡¡¡¡¡¡¡¡¡¡¡¡º¯Êý¶ÔµÈµÄ¶«Î÷£¬µ«ËüÔö¼ÓÁËÒ»¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ð©¹¦ÄÜ£¬ÒÔ´¦ÀíC£«£«¡¡³ÌÐòµÄÌرðÐèÇó¡£´ÓÉî¶È³²×´µÄÀý³Ìµ÷ÓÃÖÐÖ±½ÓÒÔÒ»Ìõ¿ì½Ý·½Ê½³·»Ø¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µ½Òì³£Çé¿ö´¦ÀíÀý³Ì£¨exception¡¡handler¡¡£©£¬ÕâÖÖ¡¸´íÎó¹ÜÀí·½Ê½¡¹Ô¶±È½á¹¹»¯³ÌÐòÖо­¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¹ý²ã²ãµÄÀý³Ì´«»ØһϵÁеĴíÎó״̬À´µÄºÃ¡£ÊÂʵÉÏexception¡¡handling¡¡ÊÇMFC¡¡ºÍ¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡OWL¡¡Á½¸öapplication¡¡frameworks¡¡¡¡µÄ·Àµ¯ÖÐÐÄ¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C£«£«¡¡µ¼ÈëÁËÈý¸öеÄexception¡¡±£Áô×Ö£º¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1¡£¡¡try¡¡¡£Ö®ºó¸úËæÒ»¶ÎÒÔ£û¡¡¡¡£ý¡¡¡¡È¦³öÀ´µÄ³ÌÐò´úÂ룬exception¡¡¿ÉÄÜÔÚÆäÖз¢Éú¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡2¡£¡¡catch¡¡¡£Ö®ºó¸úËæÒ»¶ÎÒÔ£û¡¡¡¡£ý¡¡¡¡È¦³öÀ´µÄ³ÌÐò´úÂ룬ÄÇÊÇexception¡¡´¦ÀíÀý³ÌÖ®ËùÔÚ¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡catch¡¡Ó¦¸Ã½ô¸úÔÚtry¡¡Ö®ºó¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡3¡£¡¡throw¡¡¡£ÕâÊÇÒ»¸öÖ¸ÁÓÃÀ´²úÉú£¨Å׳ö£©Ò»¸öexception¡¡¡£¡¡



96¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡159¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÚ£²Õ¡¡¡¡C£«£«¡¡µÄÖØÒªÐÔÙ£ü¡¡



¡¡ÏÂÃæÊǸöʵÀý¡¡¡¡£º¡¡



¡¡¡¡¡¡¡¡try¡¡£û¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡try¡¡block¡£¡¡

¡¡¡¡¡¡¡¡£ý¡¡

¡¡¡¡¡¡¡¡catch¡¡£¨char¡¡*p£©¡¡£û¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printf£¨¡¨Caught¡¡a¡¡char*¡¡exception£»¡¡value¡¡£¥sn¡¨£»p£©£»¡¡

¡¡¡¡¡¡¡¡£ý¡¡

¡¡¡¡¡¡¡¡catch¡¡£¨double¡¡d£©¡¡£û¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printf£¨¡¨Caught¡¡a¡¡numeric¡¡exception£»¡¡value¡¡£¥gn¡¨£»d£©£»¡¡

¡¡¡¡¡¡¡¡£ý¡¡

¡¡¡¡¡¡¡¡catch¡¡£¨¡£¡£¡££©¡¡£û¡¡¡¡//¡¡catch¡¡anything¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printf£¨¡¨Caught¡¡an¡¡unknown¡¡exceptionn¡¨£©£»¡¡

¡¡¡¡¡¡¡¡£ý¡¡



MFC¡¡Ôç¾ÍÖ§³Öexception£¬²»¹ýÔçÆÚËüÓõÄÊǷDZê×¼Óï·¨¡£Visual¡¡C£«£«¡¡4¡£0¡¡±àÒëÆ÷±¾ÉíÖ§¡¡



³ÖÍêÕûµÄC£«£«¡¡exceptions£¬MFC¡¡Ò²Òò´ËÓÐÁËÁ½¸öexception¡¡°æ±¾£ºÄã¿ÉÒÔʹÓÃÓïÑÔ±¾Éí¡¡



ÌṩµÄÐÔÄÜ£¬Ò²¿ÉÒÔÑØÓÃMFC¡¡¹ÅÀϵķ½·¨£¨ÒÔºêÐÎʽ³öÏÖ£©¡£ÈËÃÇÔø¾­ÒòΪMFC¡¡¡¡µÄ¡¡



·½°¸²»Í¬ÓÚANSI¡¡±ê×¼¶ø·ÇÄÑËü£¬µ«ÊDz»ÒªÍü¼ÇËüÒѾ­ÔË×÷Á˶àÉÙÄê¡£¡¡



MFC¡¡¡¡µÄexceptions¡¡»úÖÆÊÇÒÔºêºÍexception¡¡types¡¡Îª»ù´¡¡£ÕâЩºêÀàËÆC£«£«¡¡¡¡µÄ¡¡



exception¡¡±£Áô×Ö£¬¶¯×÷Ò²ÂúÏñ¡£MFC¡¡¡¡ÒÔÏÂÁкê·ÂÕæC£«£«¡¡exception¡¡handling£º¡¡



¡¡¡¡¡¡¡¡TRY¡¡

¡¡¡¡¡¡¡¡CATCH£¨type£»object£©¡¡

¡¡¡¡¡¡¡¡AND_CATCH£¨type£»object£©¡¡

¡¡¡¡¡¡¡¡END_CATCH¡¡

¡¡¡¡¡¡¡¡CATCH_ALL£¨object£©¡¡

¡¡¡¡¡¡¡¡AND_CATCH_ALL£¨object£©¡¡

¡¡¡¡¡¡¡¡END_CATCH_ALL¡¡

¡¡¡¡¡¡¡¡END_TRY¡¡

¡¡¡¡¡¡¡¡THROW£¨£©¡¡

¡¡¡¡¡¡¡¡THROW_LAST£¨£©¡¡



MFC¡¡ËùʹÓõÄÓï·¨ÓëÈÕ½¥¸¡Ïֵıê×¼ÉÔ΢²»Í¬£¬²»¹ýÆä¼ä²îÒì΢²»×ãµÀ¡£ÎªÁËÒÔMFC¡¡



²¶×½exceptions£¬ÄãÓ¦¸Ã½¨Á¢Ò»¸öTRY¡¡¡¡Çø¿é£¬ÏÂÃæ½Ó×ÅCATCH¡¡¡¡Çø¿é£º¡¡



¡¡¡¡¡¡¡¡TRY¡¡£û¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡try¡¡block¡£¡¡

¡¡¡¡¡¡¡¡£ý¡¡

¡¡¡¡¡¡¡¡CATCH¡¡£¨CMemoryException£»¡¡e£©¡¡£û¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡97¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡160¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÚƪ¡¡¡¡ÎðÔÚ¸¡É°ºB¸ß̨¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printf£¨¡¨Caught¡¡a¡¡memory¡¡exception¡£n¡¨£©£»¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡AND_CATCH_ALL¡¡£¨e£©¡¡£û¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡printf£¨¡¨Caught¡¡an¡¡exception¡£n¡¨£©£»¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡END_CATCH_ALL¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡THROW¡¡ºêÏ൱ÓÚC£«£«¡¡ÓïÑÔÖеÄthrow¡¡Ö¸ÁÄãÒÔʲôÀàÐÍ×öΪTHROW¡¡µÄ²ÎÊý£¬¾Í¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»áÓÐÒ»¸öÏà¶ÔÓ¦µÄAfxThrow_¡¡¡¡º¯Êý±»µ÷Óã¨ÕâÊÇ̨ÃæϵÄÐÐΪ£©£º¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡MFC¡¡Exception¡¡Type¡¡¡¡¡¡¡¡¡¡¡¡MFC¡¡Throw¡¡Function¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DOS¡¡support¡¡¡¡Windows¡¡support¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CMemoryException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡AfxThrowMemoryException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CFileException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡AfxThrowFileException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CArchiveException¡¡¡¡¡¡¡¡¡¡¡¡¡¡AfxThrowArchiveException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CNotSupportedException¡¡¡¡AfxThrowNotSupportedException¡¡¡¡¡¡v¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CResourceException¡¡¡¡¡¡¡¡¡¡¡¡AfxThrowResourceException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡COleException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡AfxThrowOleException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡COleDispatchException¡¡¡¡¡¡AfxThrowOleDispatchException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CDBException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡AfxThrowDBException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CDaoException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡AfxThrowDaoException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CUserException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡AfxThrowUserException¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡v¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÒÔÏÂÊÇMFC¡¡4¡£x¡¡¡¡µÄexceptions¡¡ºê¶¨Ò壺¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡in¡¡AFX¡£H¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡////////////////////////////////////////////////////////////////////////¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Exception¡¡macros¡¡using¡¡try£»¡¡catch¡¡and¡¡throw¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡¡¡£¨for¡¡backward¡¡patibility¡¡to¡¡previous¡¡versions¡¡of¡¡MFC£©¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡#ifndef¡¡_AFX_OLD_EXCEPTIONS¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡#define¡¡TRY¡¡£û¡¡AFX_EXCEPTION_LINK¡¡_afxExceptionLink£»¡¡try¡¡£û¡¡



98¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡161¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÚ£²Õ¡¡¡¡C£«£«¡¡µÄÖØÒªÐÔÙ£ü¡¡



#define¡¡CATCH£¨class£»¡¡e£©¡¡£ý¡¡catch¡¡£¨class*¡¡e£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£û¡¡ASSERT£¨e¡­¡·IsKindOf£¨RUNTIME_CLASS£¨class£©£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_afxExceptionLink¡£m_pException¡¡=¡¡e£»¡¡



#define¡¡AND_CATCH£¨class£»¡¡e£©¡¡£ý¡¡catch¡¡£¨class*¡¡e£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£û¡¡ASSERT£¨e¡­¡·IsKindOf£¨RUNTIME_CLASS£¨class£©£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_afxExceptionLink¡£m_pException¡¡=¡¡e£»¡¡



#define¡¡END_CATCH¡¡£ý¡¡£ý¡¡



#define¡¡THROW£¨e£©¡¡throw¡¡e¡¡

#define¡¡THROW_LAST£¨£©¡¡£¨AfxThrowLastCleanup£¨£©£»¡¡throw£©¡¡



//¡¡Advanced¡¡macros¡¡for¡¡smaller¡¡code¡¡

#define¡¡CATCH_ALL£¨e£©¡¡£ý¡¡catch¡¡£¨CException*¡¡e£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£û¡¡£û¡¡ASSERT£¨e¡­¡·IsKindOf£¨RUNTIME_CLASS£¨CException£©£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_afxExceptionLink¡£m_pException¡¡=¡¡e£»¡¡



#define¡¡AND_CATCH_ALL£¨e£©¡¡£ý¡¡catch¡¡£¨CException*¡¡e£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£û¡¡£û¡¡ASSERT£¨e¡­¡·IsKindOf£¨RUNTIME_CLASS£¨CException£©£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_afxExceptionLink¡£m_pException¡¡=¡¡e£»¡¡



#define¡¡END_CATCH_ALL¡¡£ý¡¡£ý¡¡£ý¡¡



#define¡¡END_TRY¡¡£ý¡¡catch¡¡£¨CException*¡¡e£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£û¡¡ASSERT£¨e¡­¡·IsKindOf£¨RUNTIME_CLASS£¨CException£©£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_afxExceptionLink¡£m_pException¡¡=¡¡e£»¡¡£ý¡¡£ý¡¡



#else¡¡//_AFX_OLD_EXCEPTIONS¡¡



////////////////////////////////////////////////////////////////////////¡¡

//¡¡Exception¡¡macros¡¡using¡¡setjmp¡¡and¡¡longjmp¡¡

//¡¡¡¡£¨for¡¡portability¡¡to¡¡pilers¡¡with¡¡no¡¡support¡¡for¡¡C£«£«¡¡exception¡¡handling£©¡¡



#define¡¡TRY¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£û¡¡AFX_EXCEPTION_LINK¡¡_afxExceptionLink£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if¡¡£¨£º£ºsetjmp£¨_afxExceptionLink¡£m_jumpBuf£©¡¡==¡¡0£©¡¡



#define¡¡CATCH£¨class£»¡¡e£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else¡¡if¡¡£¨£º£ºAfxCatchProc£¨RUNTIME_CLASS£¨class£©£©£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£û¡¡class*¡¡e¡¡=¡¡£¨class*£©_afxExceptionLink¡£m_pException£»¡¡



#define¡¡AND_CATCH£¨class£»¡¡e£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡else¡¡if¡¡£¨£º£ºAfxCatchProc£¨RUNTIME_CLASS£¨class£©£©£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£û¡¡class*¡¡e¡¡=¡¡£¨class*£©_afxExceptionLink¡£m_pException£»¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡99¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡162¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÚƪ¡¡¡¡ÎðÔÚ¸¡É°ºB¸ß̨¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡#define¡¡END_CATCH¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡else¡¡£û¡¡£º£ºAfxThrow£¨NULL£©£»¡¡£ý¡¡£ý¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡#define¡¡THROW£¨
·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨0£© ²È£¨0£©
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿!
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæдԭ´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøŶ£¡