Condividi tramite


Modifiche ATL e MFC: ATL 7.1 e MFC 7.1

Aggiornamento: novembre 2007

Nota   È possibile che alcune funzionalità presentate in questo argomento non siano più presenti nella versione corrente di Visual C++.

Sono state apportate alcune modifiche alle librerie ATL e MFC e alle procedure guidate in Visual C++ .NET 2003 che possono creare interruzioni nel codice esistente.

  • Problemi relativi alle procedure guidate durante la migrazione di un progetto da ATL 6.0 ad ATL 7.1 (ATL)

  • Rimozione del metodo CAtlServiceModuleT::InitializeSecurity da CAtlServiceModuleT (ATL)

  • Funzione SetRfc822Time aggiornata

  • Le procedure guidate ATL predefinite non consentono di creare progetti su Windows NT

Problemi relativi alle procedure guidate durante la migrazione di un progetto da ATL 6.0 ad ATL 7.1

Quando si converte un progetto Visual C++ 6.0 in un progetto Visual C++ .NET 2003, i gestori di messaggi vengono aggiunti alla fine della mappa messaggi. Se in tale mappa è presente una voce CHAIN_*_MAP(...), gli elementi aggiunti dalla procedura guidata vengono inclusi alla fine della voce ed è possibile che non vengano elaborati.

Quando ad esempio si esegue la migrazione di un progetto contenente un controllo ATL Visual C++ 6.0 in un progetto Visual C++ .NET 2003, il gestore OnInitDialog non viene mai chiamato perché MESSAGE_HANDLER viene collocato dopo la voce CHAIN_MSG_MAP(...), anziché prima.

Per assicurarsi che il gestore OnInitDialog venga chiamato, è necessario includere la riga CHAIN_MSG_MAP(CComControl<Name of class>) alla fine della voce CHAIN_MSG_MAP(...). In alternativa, è necessario che l'implementazione della classe base OnInitDialog esegua l'inizializzazione necessaria.

Rimozione del metodo CAtlServiceModuleT::InitializeSecurity da CAtlServiceModuleT

In Visual Studio .NET 2003 questo metodo non viene implementato nella classe base. Per ulteriori informazioni, vedere CAtlServiceModuleT::InitializeSecurity.

Funzione SetRfc822Time aggiornata

Per evitare potenziali sovraccarichi del buffer, la funzione SetRfc822Time attualmente dispone di un parametro supplementare e di un valore restituito che indica la lunghezza della stringa richiesta per memorizzare i dati di ora restituiti.

Le procedure guidate ATL predefinite non consentono di creare progetti su Windows NT

Il compilatore MIDL di Visual Studio .NET 2003 include l'impostazione predefinita /robust, che comporta l'arresto dei progetti in esecuzione in Windows NT 4.

Per impostare il flag del compilatore MIDL su /no_robust

  1. Fare clic con il pulsante destro del mouse sul progetto, quindi scegliere Proprietà dal menu di scelta rapida.

    Verrà visualizzata la finestra di dialogo Proprietà progetto.

  2. Nel riquadro sinistro fare clic su MIDL, quindi selezionare Riga di comando.

  3. Immettere /no_robust nella casella di testo Opzioni aggiuntive.

Vedere anche

Riferimenti

Modifiche a ATL e MFC