程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> ual C++ MFC 中常用宏的含義

ual C++ MFC 中常用宏的含義

編輯:.NET實例教程
AND_CATCHAND_CATCH
AND_CATCH(exception_class,exception _object_point_name)
說明:

定義一個代碼塊,它用於獲取廢除當前TRY塊中的附加異常類型。使用CATCH宏以獲得一個異常類型,然後使用AND_CATCH宏獲得隨後的異常處理代碼可以訪問異常對象(若合適的話)已得到關於異常的特別原因的更多消息。在AND_CATCH塊中調用THROW_LAST宏以便把處理過程移到下個外部異常框架。AND_CATCH可標記CATCH或AND_CATCH塊的末尾。

注釋:
AND_CATCH塊被定義成為一個C++作用域(由花括號來描述)。若用戶在此作用域定義變量,那麼記住他們只在此作用域中可以訪問。他也用於exception_object_pointer_name變量。

ASSERT
ASSERT(booleanExpression)
說明:
計算變量的值。如果結構的值為0,那麼此宏便打印一個診斷消息並且成訊運行失敗。如果條件為非0,那麼什麼也不做。 診斷消息的形式為: assertion failed in file in line 其中name是元文件名,num是源文件中運行失敗的中斷號。 在Release版中,ASSERT不計算表達式的值也就不中斷程序。如果必須計算此表達式的值且不管環境如何那麼用VERIFY代替ASSERT。
注釋:
ASSERT只能在Debug版中用

ASSERT_VAILD
ASSERT_VAILD(pObject)
說明:
用於檢測關於對象的內部狀態的有效性。ASSERT_VALID調用此對象的AssertValid成員函數(把它們作為自己的變量來傳遞)。在Release版中ASSERT_VALID什麼也不做。在DEBUG版中,他檢查指針,以不同於NULL的方式進行檢查,並調用對象自己的AssertValid成員函數。如果這些檢測中有任何一個失敗的話,那麼他會以與ASSERT相同的方法顯示一個警告的消息。
注釋:
此函數只在DEBUG版中有效。

BEGIN_MESSAGE_MAP
BEGIN_MESSAGE_MAP(the class,baseclass)
說明:
使用BEGIN_MESSAGE_MAP開始用戶消息映射的定義。在定義用戶類函數的工具(.cpp)文件中,以BEGIN_MESSAGE_MAP宏開始消息映射,然後為每個消息處理函數增加宏項,接著以END_MESSAGE_MAP宏完成消息映射。

CATCH
CATCH(exception_class,exception_object_pointer_name)
說明:
使用此用定義一個代碼塊,此代碼用來獲取當前TRY塊中都一個異常類型。異常處理代碼可以訪問異常對象,如何合適的話,就會得到關於異常的特殊原因的更多消息。調用THROW_LAST宏以把處理過程一下一個外部異常框架,如果exception-class是類CExceptioon,那麼會獲取所有異常類型。用戶可以使用CObject::IsKindOf成員函數以確定那個特別異常被排除。一種獲取異常的最好方式是使用順序的AND_CATCH語句,每個帶一個不同的異常類型。此異常類型的指針由宏定義,用戶不必定義。
注釋:
此CATCH塊被定義作一個C++范圍(由花括號描述)。如用戶在此范圍定義變量,那麼它們只在吃范圍內可以訪問。他還可以用於異常對象的指針名。

DEBUG_NEW
#define new DEBUG_NEW
說明:
幫助查找內存錯誤。用戶在程序中使用DEBUG_NEW,用戶通常使用new運算符來從堆上分配。在Debug模式下(但定義了一個DEBUG符號),DEBUG_NEW為它分配的每個對象記錄文件名和行號。然後,在用戶使用CMemoryState::DumpAllObjectSince成員函數時,每個以DEBUG_NEW分配的對象分配的地方顯示出文件名和行號。 為了使用DEBUG_NEW,應在用戶的資源文件中插入以下指令: #define new DEBUG_NEW 一旦用戶插入本指令,預處理程序將在使用new的地方插入DEBUG_NEW,而MFC作其余的工作。但用戶編譯自己的程序的一個發行版時,DEBUG_NEW便進行簡單的new操作,而且不產生文件名和行號消息。

DECLARE_DYNAMIC
DECLARE_DYNAMIC(class_name)
說明:
但從CObject派生一個類時,此宏增加關於一個對象類的訪問運行時間功能。把DECLARE_DYNAMIC宏加入類的頭文件中,然後在全部需要訪問詞類對象的.CPP文件中都包含此模塊。如果像所描述那樣使用DELCARE_DYNAMIC和IMPLEMENT_DYNAMIC宏,那麼用戶便可使用RUNTIME_CLASS宏和CObject::IsKindOf函數以在運行時間決定對象類。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved