Condividi tramite


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

Vedere anche

Riferimenti

Avviso del compilatore C4867

Altre risorse

Macro di opzione del compilatore