다음을 통해 공유


_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()

Note '&' 문자를 추가 하는 맵 매크로, 코드에 추가 해야 하지 것입니다.

참고 항목

참조

컴파일러 경고 C4867

기타 리소스

Compiler Options Macros