Share via


Änderungen in ATL und MFC: ATL 7.1 und MFC 7.1

Aktualisiert: November 2007

Hinweis   Möglicherweise sind einige der unter diesem Thema erwähnten Features in der aktuellen Version von Visual C++ nicht verfügbar.

Aufgrund von Änderungen an den ATL- und MFC-Bibliotheken und -Assistenten in Visual C++ .NET 2003 kann vorhandener Code in einigen Fällen nicht mehr ausgeführt werden.

  • Probleme mit Assistenten, die beim Migrieren eines Projekts von ATL 6.0 in ATL 7.1 (ATL) auftreten.

  • CAtlServiceModuleT::InitializeSecurity wurde aus CAtlServiceModuleT (ATL) entfernt.

  • Die SetRfc822Time-Funktion wurde aktualisiert.

  • Projekte, die mit dem ATL-Standardassistenten erstellt wurden, verursachen unter Windows NT einen Fehler.

Probleme mit Assistenten beim Migrieren eines Projekts von ATL 6.0 auf ATL 7.1

Beim Konvertieren eines Visual C++ 6.0-Projekts in ein Visual C++ .NET 2003-Projekt werden am Ende der Meldungszuordnung Meldungshandler eingefügt. Wenn die Meldungszuordnung über einen CHAIN_*_MAP(...)-Eintrag verfügt, werden die vom Assistenten hinzugefügten Elemente am Ende des Eintrags eingefügt und u. U. nicht verarbeitet.

Wenn Sie beispielsweise ein Projekt mit einem ATL-Steuerelement aus Visual C++ 6.0 in ein Visual C++ .NET 2003-Projekt migrieren, wird der OnInitDialog-Handler niemals aufgerufen. Dies liegt daran, dass der MESSAGE_HANDLER anstatt vor dem CHAIN_MSG_MAP(...)-Eintrag dahinter eingefügt wird.

Um sicherzustellen, dass der OnInitDialog-Handler aufgerufen wird, muss die Zeile CHAIN_MSG_MAP(CComControl<Name of class>) am Ende des CHAIN_MSG_MAP(...)-Eintrags eingefügt werden. Eine andere Möglichkeit besteht darin, dass die erforderliche Initialisierung von der OnInitDialog-Basisklassenimplementierung durchgeführt wird.

"CAtlServiceModuleT::InitializeSecurity" wurde aus "CAtlServiceModuleT" entfernt

In Visual Studio .NET 2003 ist diese Methode nicht in der Basisklasse implementiert. Ausführliche Informationen finden Sie unter CAtlServiceModuleT::InitializeSecurity.

Die SetRfc822Time-Funktion wurde aktualisiert

Um mögliche Pufferüberläufe zu vermeiden, verfügt die SetRfc822Time-Funktion nun über einen zusätzlichen Parameter und Rückgabewert, der die erforderliche Länge der zum Speichern der zurückgegebenen Zeitdaten verwendeten Zeichenfolge angibt.

Projekte, die mit dem ATL-Standardassistenten erstellt wurden, verursachen unter Windows NT einen Fehler.

Der MIDL-Compiler verfügt in Visual Studio .NET 2003 über die Standardeinstellung /robust, die bewirkt, dass unter Windows NT 4 ausgeführte Projekte nicht mehr reagieren.

So ändern Sie das Flag des MIDL-Compilers in "/no_robust"

  1. Klicken Sie mit der rechten Maustaste auf das Projekt, und klicken Sie im Kontextmenü auf Eigenschaften.

    Das Dialogfeld Projekteigenschaften wird angezeigt.

  2. Klicken Sie im linken Bereich auf MIDL, und wählen Sie dann Befehlszeile aus.

  3. Geben Sie im Textfeld Zusätzliche Optionen die Zeichenfolge /no_robust ein.

Siehe auch

Referenz

Änderungen in ATL und MFC