Udostępnij za pośrednictwem


Konwertowanie projektów z trybu mieszanego do czystego Intermediate Language

Wszystkie projekty Visual C++ CLR połączyć biblioteki uruchomieniowej C domyślnie.W związku z tym projekty te są klasyfikowane jako aplikacje trybu mieszanego, ponieważ łączą w kodzie macierzystym na kod, który jest przeznaczony dla plików wykonywalnych języka wspólnego (kod zarządzany).Gdy są sporządzane są kompilowane na pośrednie język (IL), znany także jako Microsoft intermediate language (MSIL).

Aby przekonwertować aplikacji trybu mieszanego na czystych języka pośredniego

  1. Usuwanie łącza do biblioteki uruchomieniowej C (CRT):

    1. W pliku .cpp Definiowanie punktu wejścia aplikacji, Zmień punkt wejścia do Main().Za pomocą Main() wskazuje, że projekt nie zawiera łączy do CRT.

    2. W oknie Solution Explorer, kliknij prawym przyciskiem myszy projekt, a następnie wybierz Właściwości w menu skrótów, aby otworzyć strony właściwości dla danej aplikacji.

    3. W Zaawansowane stronę właściwości projektu dla programu łączącego, wybierz Punktu wejścia , a następnie wprowadź główne w tym polu.

    4. W przypadku aplikacji konsoli w systemu stronę właściwości projektu dla programu łączącego, wybierz podsystemu polu, a także zmienić tutaj, aby konsoli (/ SUBSYSTEM: CONSOLE).

      [!UWAGA]

      Nie musisz ustawić tej właściwości dla aplikacji Windows Forms, ponieważ podsystemu pole jest ustawione na systemu Windows (/ SUBSYSTEM: WINDOWS) domyślnie.

    5. W stdafx.h, komentarz się wszystkich #include instrukcji.Na przykład w aplikacji konsoli:

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

      -lub-

      Na przykład w aplikacjach Windows Forms:

      // #include <stdlib.h>
      // #include <malloc.h>
      // #include <memory.h>
      // #include <tchar.h>
      
    6. Dla aplikacji Windows Forms, w Form1.cpp, w komentarz #include instrukcji, która odwołuje się do windows.h.Na przykład:

      // #include <windows.h>
      
  2. Dodaj następujący kod do stdafx.h:

    #ifndef __FLTUSED__
    #define __FLTUSED__
       extern "C" __declspec(selectany) int _fltused=1;
    #endif
    
  3. Usuń wszystkie typy niezarządzanego:

    1. Wszędzie tam, gdzie jest to właściwe, zastąpić niezarządzanego typy odwołań do struktury System obszaru nazw.Typowe typy zarządzane są wymienione w poniższej tabeli:

      Struktura

      Opis

      Wartość logiczna

      Reprezentuje wartość logiczną.

      Bajt

      Reprezentuje 8-bitową całkowitą bez znaku.

      Char

      Reprezentuje znak Unicode.

      DateTime

      Reprezentuje moment w czasie, zwykle wyrażona jako datę i godzinę, o.

      Wartość dziesiętna

      Reprezentuje liczbę dziesiętną.

      Wartość dwubajtowa

      Reprezentuje liczba zmiennoprzecinkowa podwójnej precyzji.

      Guid

      Reprezentuje unikatowy identyfikator globalny (GUID).

      Int16

      Reprezentuje całkowita 16-bitowych.

      Int32

      Reprezentuje 32-bitową całkowitą podpisane.

      Int64

      Reprezentuje całkowita 64-bitowych.

      IntPtr

      Typ specyficzne dla platformy, która jest używana do reprezentowania wskaźnik lub dojścia.

      SByte

      Reprezentuje 8-bitowa podpisana liczba całkowita.

      Pojedyncze

      Reprezentuje liczba zmiennoprzecinkowa pojedynczej precyzji.

      Obiekt TimeSpan

      Reprezentuje przedział czasu.

      UInt16

      Reprezentuje 16-bitowa liczba całkowita bez znaku.

      UInt32

      Reprezentuje 32-bitowa liczba całkowita bez znaku.

      UInt64

      Reprezentuje 64-bitowa liczba całkowita bez znaku.

      UIntPtr

      Typ specyficzne dla platformy, która jest używana do reprezentowania wskaźnik lub dojścia.

      Void

      Wskazuje metodę, która nie zwraca wartości; Metoda ma zwrócony typ void.