Freigeben über


_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.

Siehe auch

Referenz

Compilerwarnung C4867

Weitere Ressourcen

Compiler Options Macros