Převod projektů ze smíšeného režimu do čistého IL (Intermediate Language)
Ve výchozím nastavení připojují všechny projekty Visual C++ CLR běhové knihovny C.Protože tyto aplikace kombinují nativní kód s kódem cíleným na CLR (Common Language Runtime) (spravovaný kód), jsou klasifikovány jako aplikace smíšeného režimu,Při kompilaci jsou tyto aplikace kompilovány do jazyka IL (Intermediate Language), který je také označován jako MSIL (Microsoft intermediate language).
Převod aplikací smíšeného režimu na aplikace čistého IL
Odeberte propojení na běhové knihovny C (CRT):
V soubor .CPP, který definuje vstupní bod aplikace, změňte vstupní bod na Main(). Použití Main() označuje, že projekt nepřipojuje CRT.
V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt, a z místní nabídky zvolte Vlastnosti pro otevření stránky vlastností aplikace.
Na stránce vlastností Propojovacího programuRozšířené zvolte Vstupní bod a zadejte Main.
Pro aplikaci konzoly na stránce vlastností Propojovacího programuSystém zvolte pole Subsystém a změňte jej na Console (/SUBSYSTEM:CONSOLE).
[!POZNÁMKA]
Tuto vlastnost není třeba nastavovat pro Formulářové aplikace Windows, protože pole Subsystém je ve výchozím nastavení nastaveno na hodnotu Windows (/SUBSYSTEM:WINDOWS).
V souboru stdafx.H zakomentujte všechny příkazy #include. Například pro aplikace konzoly:
// #include <iostream> // #include <tchar.h>
-nebo-
Například pro Formulářové aplikace Windows:
// #include <stdlib.h> // #include <malloc.h> // #include <memory.h> // #include <tchar.h>
Pro Formulářové aplikace Windows zakomentujte v souboru Form1.CPP příkaz #include odkazující na windows.H. Příklad:
// #include <windows.h>
Přidejte následující kód do souboru stdafx.H:
#ifndef __FLTUSED__ #define __FLTUSED__ extern "C" __declspec(selectany) int _fltused=1; #endif
Odeberte všechny nespravované typy:
Pokud je to vhodné, nahraďte nespravované typy odkazy na struktury z oboru názvu Systém.Obecné spravované typy jsou uvedeny v následující tabulce:
Struktura
Description
Představuje logickou hodnotu.
Představuje 8bitový unsigned integer.
Představuje znak sady Unicode.
Představuje okamžik v čase, obvykle vyjádřen jako datum a čas.
Představuje desetinné číslo.
Představuje číslo s plovoucí desetinnou čárkou s dvojitou přesností.
Představuje globálně jedinečný identifikátor (GUID).
Představuje 16bitové celé číslo se znaménkem.
Představuje 32bitové celé číslo se znaménkem.
Představuje 64bitové celé číslo se znaménkem.
Představuje platformně závislý typ, který reprezentuje ukazatel nebo popisovač.
Představuje 8bitové celé číslo se znaménkem.
Představuje číslo s plovoucí desetinnou čárkou s jednoduchou přesností.
Představuje časový interval.
Představuje 16bitový unsigned integer.
Představuje 32bitový unsigned integer.
Představuje 64bitový unsigned integer.
Představuje platformně závislý typ, který reprezentuje ukazatel nebo popisovač.
Označuje metodu, která nevrací žádnou hodnotu; to znamená, že metoda má typ vrácené hodnoty void.