_ATL_ENABLE_PTM_WARNING
Definieren Sie dieses Makro, um die Verwendung von Standard-kompatibler Syntax ANSI C++ für Zeiger auf Memberfunktionen zu erzwingen. Mithilfe dieses Makros veranlasst den Compilerfehler C4867 generiert werden, wenn nichtstandardisierte Syntax verwendet wird, um einen Zeiger auf eine Memberfunktion zu initialisieren.
#define _ATL_ENABLE_PTM_WARNING
Hinweise
Die ATL- und MFC-Bibliotheken wurden geändert, um die von Visual C++-verbesserte Standard-C++-Kompatibilität Compilers entspricht. Gemäß dem Standard ANSI C++ sollte die Syntax eines Zeigers auf eine Klassenmemberfunktion &CMyClass::MyFunc sein.
Wenn _ATL_ENABLE_PTM_WARNING nicht (Standard Fall) definiert ist, deaktiviert ATL/MFC den Fehler C4867 in den Makrozuordnungen (besonders Meldungszuordnungen) für Code, der in früheren Versionen erstellt wurde, fortgesetzt werden kann, um als zuvor zu erstellen. Wenn Sie _ATL_ENABLE_PTM_WARNING definieren, muss der Code kompatibler C++-Standard sein.
Allerdings ist das nichtstandardisierte Formular veraltet, deshalb müssen Sie vorhandenen Code auf kompatible StandardSyntax C++ verschieben. Beispielsweise Folgendes:
BEGIN_MESSAGE_MAP(CMFCListViewDoc, CDocument)
ON_COMMAND(ID_MYCOMMAND, OnMycommand)
END_MESSAGE_MAP()
Sollte geändert werden:
BEGIN_MESSAGE_MAP(CMFCListViewDoc, CDocument)
ON_COMMAND(ID_MYCOMMAND, &CMFCListViewDoc::OnMycommand)
END_MESSAGE_MAP()
Beachten Sie das für Zuordnungsmakros, die "&." Zeichen hinzufügen, sollten Sie es im Code nicht erneut hinzufügen.