次の方法で共有


_CrtDoForAllClientObjects

ヒープ内のすべての _CLIENT_BLOCK 型に対して、アプリケーションによって提供される関数を呼び出します (デバッグ バージョンのみ)。

void _CrtDoForAllClientObjects(     void ( * pfn )( void *, void * ),    void *context );

パラメーター

  • pfn
    アプリケーションによって提供された関数コールバック関数へのポインター。 この関数の最初のパラメーターは、データを指します。 2 番目のパラメーターは、_CrtDoForAllClientObjects の呼び出しに渡されるコンテキスト ポインターです。

  • context
    アプリケーションによって提供される関数に渡す、アプリケーションによって提供されるコンテキストへのポインター。

解説

_CrtDoForAllClientObjects 関数は、ヒープのリンク リストで _CLIENT_BLOCK 型のメモリ ブロックを検索し、この型のブロックがある場合は、アプリケーションによって提供される関数を呼び出します。 見つかったブロックと context パラメーターは、アプリケーションによって提供される関数に引数として渡されます。 デバッグ中に、アプリケーションはメモリを割り当てるためのデバッグ ヒープ関数を明示的に呼び出し、ブロックに _CLIENT_BLOCK ブロック型を割り当てるように指定することによって、割り当ての特定のグループを追跡できます。 これらのブロックは個別に追跡し、リーク検出やメモリ状態のレポート時に異なる方法で報告できます。

_crtDbgFlag フラグの _CRTDBG_ALLOC_MEM_DF ビット フィールドがオンでない場合、_CrtDoForAllClientObjects はすぐに制御を返します。 _DEBUG が未定義の場合、_CrtDoForAllClientObjects の呼び出しはプリプロセスで削除されます。

_CLIENT_BLOCK 型、およびこれを他のデバッグ関数で使用する方法の詳細については、「デバッグ ヒープ上のメモリ ブロックの型」を参照してください。 デバッグ バージョンのベース ヒープに対するメモリ ブロックの割り当て、初期化、管理方法の詳細については、「CRT デバッグ ヒープ」を参照してください。

pfn が NULL の場合は、「パラメーターの検証」に説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、この関数は errno、_doserrno、_sys_errlist、および _sys_nerr を EINVAL に設定して処理を戻します。

必要条件

ルーチン

必須ヘッダー

_CrtDoForAllClientObjects

<crtdbg.h>、<errno.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

ライブラリ:CRT ライブラリの機能 のデバッグ バージョンのみ。

使用例

dfacobjs」を参照してください。

同等の .NET Framework 関数

該当なし。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

関連項目

デバッグ ルーチン

_CrtSetDbgFlag

_CrtReportBlockType

その他の技術情報

ヒープの状態をレポートする関数