_ATL_ENABLE_PTM_WARNING
Definire questa macro per forzare l'utilizzo della sintassi standard- conforme C++ ANSI per il puntatore alle funzioni membro.Utilizzando questa macro provoca un errore del compilatore C4867 a essere generato quando la sintassi non standard da inizializzare un puntatore a una funzione membro.
#define _ATL_ENABLE_PTM_WARNING
Note
Le librerie MFC e ATL sono state modificate in base alla conformità migliore standard di C++ compilatore di Visual C++.Secondo lo standard ANSI C++, la sintassi di un puntatore alla funzione membro della classe deve essere &CMyClass::MyFunc.
Quando _ATL_ENABLE_PTM_WARNING non è definito (il caso predefinito), ATL/MFC disabilita l'errore C4867 in macro mapping (notevolmente di mappe messaggi in modo da poter continuare il codice creato nelle versioni precedenti di compilare come prima.Se si definisce _ATL_ENABLE_PTM_WARNING, il codice deve essere standard di C++ conforme.
Tuttavia, non standard è stato deprecato, pertanto è necessario spostare il codice esistente nella sintassi conforme agli standard di C++.Ad esempio, il seguente:
BEGIN_MESSAGE_MAP(CMFCListViewDoc, CDocument)
ON_COMMAND(ID_MYCOMMAND, OnMycommand)
END_MESSAGE_MAP()
Deve essere modificato:
BEGIN_MESSAGE_MAP(CMFCListViewDoc, CDocument)
ON_COMMAND(ID_MYCOMMAND, &CMFCListViewDoc::OnMycommand)
END_MESSAGE_MAP()
Si noti che per le macro di mapping che aggiungono "&" il carattere, non è necessario aggiungerla nuovamente nel codice.