Neues in Visual C++ 2008

Aktualisiert: November 2007

Dieses Thema enthält eine Einführung in neue Features sowie Änderungen in dieser Version von Visual Studio 2008.

Integrierte Entwicklungsumgebung (Integrated Development Environment, IDE) von Visual C++

Begriff

Definition

In ATL-, MFC- und Win32-Anwendungen erstellte Dialogfelder entsprechen jetzt den Formatrichtlinien von Windows Vista.

Wenn Sie ein neues Projekt mithilfe von Visual Studio 2008 erstellen, entsprechen alle in die Anwendung eingefügten Dialogfelder der Windows Vista-Formatrichtlinie. Wenn Sie ein mit einer früheren Visual Studio-Version erstelltes Projekt neu kompilieren, werden alle bereits vorhandenen Dialogfelder weiterhin so dargestellt wie zuvor. Weitere Informationen zum Einfügen von Dialogfeldern in Anwendungen finden Sie unter Dialog-Editor.

Der ATL-Projekt-Assistent bietet jetzt eine Option zum Registrieren von Komponenten für alle Benutzer.

Ab Visual Studio 2008 werden die vom ATL-Projekt-Assistenten erstellten COM-Komponenten und Typbibliotheken im HKEY_CURRENT_USER-Knoten der Registrierung registriert, sofern Sie nicht Komponente für alle Benutzer registrieren ausgewählt haben. Weitere Informationen finden Sie unter Anwendungseinstellungen, ATL-Projekt-Assistent.

Der ATL-Projekt-Assistent bietet keine Option zum Erstellen attributierter ATL-Projekte mehr.

Ab Visual Studio 2008 besitzt der ATL-Projekt-Assistent keine Option zum Ändern des attributierten Status eines neuen Projekts mehr. Alle neuen mit dem Assistenten erstellten ATL-Projekte sind jetzt nicht attributiert.

Schreibvorgänge in die Registrierung können umgeleitet werden.

Seit Einführung von Windows Vista muss ein Programm zum Ausführen von Schreibvorgängen in bestimmten Bereichen der Registrierung im erhöhten Modus ausgeführt werden. Es ist nicht empfehlenswert, Visual Studio immer im erhöhten Modus auszuführen. Durch die Umleitung pro Benutzer werden Registrierungseinträge von HKEY_CLASSES_ROOT automatisch nach HKEY_CURRENT_USER umgeleitet, ohne dass der Programmiercode geändert werden muss. Weitere Informationen finden Sie unter Eigenschaftenseiten "Linker".

Der Klassen-Designer bietet jetzt eingeschränkte Unterstützung für systemeigenen C++-Code.

In früheren Versionen von Visual Studio konnte der Klassen-Designer nur mit Visual C# und Visual Basic verwendet werden. C++-Benutzer können den Klassen-Designer ab sofort verwenden, allerdings nur im schreibgeschützten Modus. Weitere Informationen zur Verwendung des Klassen-Designers mit C++ finden Sie unter Arbeiten mit Visual C++-Code im Klassen-Designer.

Visual C++-Bibliotheken

Allgemein

Begriff

Definition

Anwendungen können an bestimmte Versionen der Visual C++-Bibliotheken gebunden sein.

Manchmal ist eine Anwendung abhängig von Aktualisierungen, die an den Visual C++-Bibliotheken nach der Veröffentlichung vorgenommen wurden. In diesem Fall kann das Ausführen der Anwendung auf einem Computer, auf dem frühere Versionen der Bibliothek vorhanden sind, zu einem unerwarteten Verhalten führen. Sie können jetzt eine Anwendung an eine bestimmte Version der Bibliotheken binden, sodass sie nicht auf einem Computer ausgeführt werden kann, auf dem eine frühere Version der Bibliotheken vorhanden ist. Weitere Informationen hierzu finden Sie unter Verteilen einer Anwendung und Binden an bestimmte Bibliotheken.

STL/CRT-Bibliothek

Begriff

Definition

Visual C++ umfasst jetzt die STL/CLR-Bibliothek.

Die STL/CLR-Bibliothek ist ein Paket der Standard Template Library (STL), einer Teilmenge der C++-Standardbibliothek, die mit C++ und der Common Language Runtime (CLR) von .NET Framework eingesetzt werden kann. Mit STL/CLR können Sie nun alle Container, Iteratoren und Algorithmen der STL in einer verwalteten Umgebung verwenden.

MFC-Bibliothek

Begriff

Definition

Windows Vista unterstützt Allgemeine Steuerelemente.

Zur Unterstützung von Features in Windows Vista, oder um die Funktionalität aktueller MCF-Klassen zu verbessern, wurden in 18 neuen oder vorhandenen Klassen über 150 Methoden hinzugefügt.

Die neue CNetAddressCtrl-Klasse ermöglicht es Ihnen, IPv4- und IPv6-Adressen oder DNS-Namen einzugeben. Die neue CPagerCtrl-Klasse vereinfacht die Verwendung des Windows-Pager-Steuerelements. Und die neue CSplitButton-Klasse vereinfacht die Verwendung des Windows-SplitButton-Steuerelements zur Auswahl einer standardmäßigen oder optionalen Aktion.

C++-Unterstützungsbibliothek

Begriff

Definition

Mit C++ wird die Marshallingbibliothek eingeführt.

Die Marshallingbibliothek bietet eine einfache optimierte Möglichkeit, Daten zwischen systemeigenen und verwalteten Umgebungen zu marshallen. Die Bibliothek ist eine Alternative zu komplexeren und weniger effizienten Ansätzen, z. B. der Verwendung von PInvoke. Weitere Informationen finden Sie unter Overview of Marshaling in C++.

ATL-Server

Begriff

Definition

ATL-Server wird als Shared-Source-Projekt veröffentlicht.

Ein Großteil der ATL Server-CodeBase wurde als Shared-Source-Projekt unter CodePlex veröffentlicht und wird nicht mit Visual Studio 2008 installiert. Mehrere Dateien, die mit ATL Server verbunden sind, sind nicht länger Teil von Visual Studio. Eine Liste der entfernten Dateien finden Sie unter Removed ATL Server Files.

Klassen für die Datencodierung und -decodierung aus atlenc.h sowie Dienstprogrammfunktionen und -klassen aus atlutil.h und atlpath.h sind jetzt Bestandteil der ATL-Bibliothek.

Microsoft unterstützt auch weiterhin ATL Server-Versionen, die in früheren Versionen von Visual Studio enthalten sind, solange diese Visual Studio-Versionen unterstützt werden. CodePlex setzt die Entwicklung des ATL Server-Codes als Communityprojekt fort. CodePlex-Versionen von ATL Server werden von Microsoft nicht unterstützt.

Visual C++-Compiler und -Linker

Compileränderungen

Begriff

Definition

Der Compiler unterstützt verwaltete inkrementelle Builds.

Wenn Sie diese Option angeben, kompiliert der Compiler keinen Code neu, wenn sich eine Assembly ändert, auf die verwiesen wird. Stattdessen führt er einen inkrementellen Build aus. Dateien werden nur neu kompiliert, wenn die Änderungen den abhängigen Code beeinflussen. Weitere Informationen finden Sie unter Eigenschaftenseite "Allgemein" (Projekt).

Attribute für ATL-Server werden nicht mehr unterstützt.

Der Compiler unterstützt mehrere Attribute nicht mehr, die sich direkt auf ATL-Server bezogen haben. Eine vollständige Liste der entfernten Attribute finden Sie unter Wichtige Änderungen.

Der Compiler unterstützt die Intel Core-Mikroarchitektur

Der Compiler ist während der Codegenerierung für die Intel Core-Mikroarchitektur optimiert. Diese Optimierung ist in der Standardeinstellung aktiviert und kann nicht deaktiviert werden, da sie auch von Pentium 4 und anderen Prozessoren verwendet wird.

Systeminterne Funktionen unterstützen neuere AMD- und Intel-Prozessoren.

Mehrere neue systeminterne Anweisungen unterstützen die größere Funktionalität in neueren AMD- und Intel-Prozessoren. Weitere Informationen über diese neuen systeminternen Funktionen finden Sie unter Supplemental Streaming SIMD Extensions 3 Instructions, Streaming SIMD Extensions 4 Instructions, SSE4a and Advanced Bit Manipulation Intrinsics, AES Intrinsics, _mm_clmulepi64_si128 und __rdtscp.

Die __cpuid-Funktion wurde aktualisiert.

Die __cpuid-Funktionen unterstützen jetzt mehrere neue Features der letzten AMD- und Intel-Prozessorrevisionen. Der systeminterne __cpuidex ist neu hinzugekommen und erfasst weitere Informationen aktueller Prozessoren.

Die /MP-Compileroption reduziert die gesamte Buildzeit.

Durch die /MP-Option lässt sich die Gesamtzeit für die Kompilierung mehrerer Quelldateien deutlich reduzieren, indem mehrere Prozesse erstellt werden, durch die die Dateien gleichzeitig kompiliert werden. Diese Option ist besonders auf Computern hilfreich, die Hyperthreading, mehrere Prozessoren oder mehrere Prozessorkerne unterstützen.

Die /Wp64-Compileroption und das __w64-Schlüsselwort sind veraltet.

Die /Wp64-Compileroption und das __w64-Schlüsselwort, durch die 64-Bit-Portabilitätsprobleme erkannt werden, sind veraltet und werden in einer zukünftigen Compilerversion entfernt. Verwenden Sie statt dieser Compileroption und dieses Schlüsselworts einen Visual C++-Compiler, der für eine 64-Bit-Plattform konzipiert ist. Weitere Informationen finden Sie unter 64 Bit-Programmierung mit Visual C++.

/Qfast_transcendentals

Generiert Inlinecode für transzendente Funktionen. Weitere Informationen finden Sie unter /Qfast_transcendentals (Erzwingen von schnellen Transzendenten).

/Qimprecise_fwaits

Entfernt die fwait-Befehle in try-Blöcken, wenn Sie die /fp:except-Compileroption verwenden. Weitere Informationen finden Sie unter /Qimprecise_fwaits (Entfernen von fwaits in Try-Blöcken).

Änderungen am Linker

Begriff

Definition

Informationen zur Benutzerkontensteuerung werden jetzt vom Visual C++-Linker (link.exe) in Manifestdateien für ausführbare Dateien eingebettet.

Dieses Feature ist standardmäßig aktiviert. Weitere Informationen finden Sie unter Wie Benutzerkontensteuerung (UAC) die Anwendung beeinflusst. Weitere Informationen dazu, wie Sie dieses Feature deaktivieren oder das Standardverhalten ändern, finden Sie unter /MANIFESTUAC (bettet UAC-Informationen in Manifest ein).

Der Linker verfügt ab sofort über die /DYNAMICBASE-Option zur Aktivierung des ASLR (Address Space Layout Randomization)-Features in Windows Vista.

Mit dieser Option wird der Header einer ausführbaren Datei geändert, um anzugeben, ob für die Anwendung zur Ladezeit nach dem Zufallsprinzip ein Rebase-Vorgang ausgeführt werden soll. Weitere Informationen finden Sie unter /DYNAMICBASE (Address Space Layout Randomization verwenden).

Visual C++-Beispiele

Neue Beispiele für Visual Studio 2008

Begriff

Definition

CFileDialog-Beispiel: Protokollierungsereignisreihenfolge

Erstellt ein benutzerdefiniertes Dialogfeld, das veranschaulicht, welche Ereignisse generiert werden, wenn Sie einen CFileDialog erstellen.

CMNCTRL3-Beispiel: Veranschaulicht neue MFC-Steuerelemente, die in Visual Studio 2008 verfügbar sind

Veranschaulicht einige der neuen Steuerelemente, die mit MFC in Windows Vista verfügbar sind. Dazu gehören die Befehlslinkschaltfläche (CButton), das Pager-Steuerelement (CPagerCtrl), die Trennschaltfläche (CSplitButton) und das Netzwerkadressen-Steuerelement (CNetAddressCtrl).

NETADDR-Beispiel: Net Address Verifier-Steuerelement von Windows Vista

Veranschaulicht die Verwendung des Windows Vista-Steuerelements zum Überprüfen von Netzadressen.

StlClrLibrary-Beispiel: Veranschaulicht STL-/CLRs-Funktionen

Veranschaulicht einige der Funktionen, die bei Verwendung der STL/CLR-Bibliothek verfügbar sind.

Visual C++ Express Edition

Erweiterungen der Visual C++ Express Edition

Begriff

Definition

Die Visual C++ Express Edition enthält jetzt das Windows SDK.

Benutzer der Visual C++ Express Edition können jetzt das Windows SDK nutzen, ohne es separat herunterzuladen und zu installieren. Die Visual C++ Express Edition umfasst jetzt auch den Win32-Projekt-Assistenten.

Verwandte Abschnitte

Begriff

Definition

Wichtige Änderungen

Enthält eine Liste der grundlegenden Änderungen in Visual C++ 2008.

Portieren und Aktualisieren von Programmen

Stellt Links zu Informationen bereit, die das Portieren von anderen Plattformen und das Aktualisieren von früheren Visual C++Versionen beschreiben.

Gewusst wie: Aktualisieren von Projekten aus vorherigen Versionen von Visual C++

Bietet Links zu Informationen über die Aktualisierung von Visual C++-Projekten aus früheren Versionen.

Siehe auch

Weitere Ressourcen

Erste Schritte mit Visual C++

Änderungen in früheren Produktversionen