次の方法で共有


AfxDoForAllObjects

更新 : 2007 年 11 月

アプリケーションのメモリ空間に new を使って割り当てられたすべての CObject 派生クラスのために反復関数を実行します。

void AfxDoForAllObjects(
   void (*pfn
)(CObject* pObject,
   void* pContext
),
   void* pContext 
); 

パラメータ

  • pfn
    各クラスで実行する反復関数へのポインタ。この関数の引数は、CObject へのポインタと、呼び出し元が関数に提供する補足データへの void ポインタです。

  • pContext
    呼び出し側が反復関数に引き渡せる省略可能なデータへのポインタ。このポインタは NULL でもかまいません。

解説

スタック オブジェクト、グローバル オブジェクト、埋め込みオブジェクトは含まれません。pContext で AfxDoForAllObjects に渡されるポインタは、呼び出しのたびに指定された反復関数に渡されます。

fb4f48ys.alert_note(ja-jp,VS.90).gifメモ :

この関数は MFC ライブラリのデバッグ環境でしか動作しません。

使用例

#ifdef _DEBUG
void DoForAllObjects(CObject* pObject, void* pContext)
{
   int *pnCount = (int*)pContext;

   pObject->AssertValid();
   if (pnCount != NULL)
      (*pnCount)++;
}
#endif // _DEBUG
#ifdef _DEBUG
   //AfxDoForAllObjects will call the function DoForAllObjects 
   //For each CObject-derived object that is allocated on the heap
   int nCount = 0;
   AfxDoForAllObjects(DoForAllObjects, &nCount);
   TRACE("%d Objects Checked\n", nCount);
#endif

必要条件

ヘッダー : afx.h

参照

概念

MFC マクロとグローバル