_ATL_ENABLE_PTM_WARNING
メンバー関数へのポインターの ANSI C++ の標準準拠構文の使用を強制するには、このマクロを定義します。このマクロを使用してメンバー関数へのポインターを初期化するために標準構文が使用されている場合は C4867 コンパイラ エラーが発生します。
#define _ATL_ENABLE_PTM_WARNING
解説
ATL と MFC ライブラリは、Visual C++ コンパイラの向上、C++ 標準への準拠に一致するように変更されました。ANSI C++ 標準に従って、クラスのメンバー関数へのポインター構文は &CMyClass::MyFunc必要があります。
_ATL_ENABLE_PTM_WARNING が (既定値) の例が定義されていない場合、ATL/MFC は、以前のバージョンで作成されたコードが、前にとしてビルドを継続できるように、マクロ マップ (特にメッセージ マップ) の C4867 エラーを無効にします。_ATL_ENABLE_PTM_WARNINGを定義すると、コードは C++ 規格に準拠してください。
ただし、標準フォームは推奨されているため、C++ の標準準拠構文に既存のコードを実行する必要があります。たとえば、次:
BEGIN_MESSAGE_MAP(CMFCListViewDoc, CDocument)
ON_COMMAND(ID_MYCOMMAND, OnMycommand)
END_MESSAGE_MAP()
変更する必要があります:
BEGIN_MESSAGE_MAP(CMFCListViewDoc, CDocument)
ON_COMMAND(ID_MYCOMMAND, &CMFCListViewDoc::OnMycommand)
END_MESSAGE_MAP()
「__RYANTSAI の文字を追加するマップ マクロの場合に、コードで再び追加しないように注意してください。