Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.