次の方法で共有


AFX_MANAGE_STATE

DLL のエクスポートされた関数を保護します。

AFX_MANAGE_STATE(AFX_MODULE_STATE* pModuleState )

パラメーター

  • pModuleState
    AFX_MODULE_STATE 構造体へのポインター。

解説

このマクロが起動されると、pModuleState は直接保持しているスコープにとどまる限り有効なモジュール状態になっています。 スコープから離れると、直前の有効なモジュール状態に自動的に戻ります。

AFX_MODULE_STATE 構造体にはモジュールのグローバル データ、つまり、モジュール状態のうちプッシュまたはポップされた部分が含まれます。

既定では、MFC はメイン アプリケーションのリソース ハンドルを使用して、リソース テンプレートを読み込みます。 DLL でダイアログ ボックスを起動する場合など、DLL 内にエクスポートされた関数がある場合、このテンプレートは実際には DLL モジュールに保存されます。 適切なハンドルを使用するには、モジュール状態を切り替える必要があります。 関数のはじめに以下のコードを追加することによって、切り替えを実行できます。

AFX_MANAGE_STATE(AfxGetStaticModuleState( ));

これにより、現在のスコープが終わるまで、現在のモジュールの状態と AfxGetStaticModuleState から返された状態が入れ替わります。

モジュール状態と MFC の詳細については、「MFC の一般的なトピック」の「MFC モジュールの状態データの管理」と「テクニカル ノート 58: MFC のモジュール状態の実装」を参照してください。

注意

MFC でアセンブリのアクティベーション コンテキストを作成する場合、AfxWinInit を使用してコンテキストを作成し、AFX_MANAGE_STATE を使用してそのコンテキストをアクティブ化または非アクティブ化します。 また、注意するAFX_MANAGE_STATE静的ライブラリ、MFC と MFC Dll は、MFC コードをユーザー DLL によって選択された適切なアクティブ化のコンテキストで実行するために有効になっています。 詳細については、「MFC モジュール状態でのアクティベーション コンテキストのサポート」を参照してください。

必要条件

**ヘッダー:**afxstat_.h

参照

参照

AfxGetStaticModuleState

概念

MFC マクロとグローバル