Freigeben über


Converting Projects from Mixed Mode to Pure Intermediate Language

Alle CLR-Projekte von Visual C++ sind in der Standardeinstellung mit C-Laufzeitbibliotheken verknüpft.Folglich werden diese Projekte als Anwendungen im gemischten Modus klassifiziert, da in ihnen systemeigener Code mit Code kombiniert ist, der die Common Language Runtime (verwalteten Code) einbindet.Sie werden ggf. in Intermediate Language (IL) kompiliert, die auch als Microsoft Intermediate Language (MSIL) bekannt ist.

So konvertieren Sie eine Anwendung im gemischten Modus in reine Intermediate Language

  1. Entfernen Sie Links zu den C-Laufzeitbibliotheken (CRT):

    1. Ändern Sie in der CPP-Datei, durch die der Einstiegspunkt der Anwendung definiert wird, den Einstiegspunkt in Main().Die Verwendung von Main() weist darauf hin, dass das Projekt nicht mit CRT verknüpft wird.

    2. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie im Kontextmenü Eigenschaften, um die Eigenschaftenseiten für die Anwendung zu öffnen.

    3. Wählen Sie auf der Projekteigenschaftenseite Erweitert für den Linker das Feld Einstiegspunkt aus, und geben Sie dann in dieses Feld Main ein.

    4. Bei Konsolenanwendungen wählen Sie auf der Projekteigenschaftenseite System für den Linker das Feld SubSystem aus und ändern es in Konsole (/SUBSYSTEM:CONSOLE).

      HinweisHinweis

      Diese Eigenschaft muss für Windows Forms-Anwendungen nicht festgelegt werden, da das Feld SubSystem standardmäßig auf Windows (/SUBSYSTEM:WINDOWS) festgelegt ist.

    5. Kommentieren Sie in stdafx.h alle #include-Anweisungen aus.Beispielsweise in Konsolenanwendungen:

      // #include <iostream>
      // #include <tchar.h>
      

      - oder -

      in Windows Forms-Anwendungen:

      // #include <stdlib.h>
      // #include <malloc.h>
      // #include <memory.h>
      // #include <tchar.h>
      
    6. Bei Windows Forms-Anwendungen kommentieren Sie in "Form1.cpp" die #include-Anweisung aus, die auf "windows.h" verweist.Beispiel:

      // #include <windows.h>
      
  2. Fügen Sie zu stdafx.h den folgenden Code hinzu:

    #ifndef __FLTUSED__
    #define __FLTUSED__
       extern "C" __declspec(selectany) int _fltused=1;
    #endif
    
  3. Entfernen Sie alle nicht verwalteten Typen:

    1. Ersetzen Sie nicht verwaltete Typen, sofern angebracht, durch Verweise auf Strukturen aus dem System-Namespace.Gebräuchliche verwaltete Typen sind in der folgenden Tabelle aufgeführt:

      Struktur

      Beschreibung

      Boolean

      Stellt einen booleschen Wert dar.

      Byte

      Stellt eine 8-Bit-Ganzzahl ohne Vorzeichen dar.

      Char

      Stellt ein Unicode-Zeichen dar.

      DateTime

      Stellt einen Zeitpunkt dar, der normalerweise durch Datum und Uhrzeit dargestellt wird.

      Decimal

      Stellt eine Dezimalzahl dar.

      Double

      Stellt eine Gleitkommazahl mit doppelter Genauigkeit dar.

      Guid

      Stellt eine GUID dar (Globally Unique Identifier, globaler eindeutiger Bezeichner).

      Int16

      Stellt eine 16-Bit-Ganzzahl mit Vorzeichen dar.

      Int32

      Stellt eine 32-Bit-Ganzzahl mit Vorzeichen dar.

      Int64

      Stellt eine 64-Bit-Ganzzahl mit Vorzeichen dar.

      IntPtr

      Ein plattformabhängiger Typ zur Darstellung von Zeigern und Handles.

      SByte

      Stellt eine ganze 8-Bit-Zahl mit Vorzeichen dar.

      Single

      Stellt eine Gleitkommazahl mit einfacher Genauigkeit dar.

      TimeSpan

      Stellt ein Zeitintervall dar.

      UInt16

      Stellt eine vorzeichenlose 16-Bit-Ganzzahl dar.

      UInt32

      Stellt eine vorzeichenlose 32-Bit-Ganzzahl dar.

      UInt64

      Stellt eine vorzeichenlose 64-Bit-Ganzzahl dar.

      UIntPtr

      Ein plattformabhängiger Typ zur Darstellung von Zeigern und Handles.

      Void

      Zeigt eine Methode an, die keinen Wert zurückgibt, d. h. eine Methode mit dem Rückgabetyp "void".