Преобразование проектов из смешанного режима в чистый промежуточный язык
Все проекты среды CLR Visual C++ по умолчанию ссылаются на библиотеки времени выполнения C.Следовательно, эти проекты классифицируются как приложения смешанного режима, поскольку в них объединяется машинный код и код, предназначенный для среды CLR (т.е. управляемый код).Они компилируются в промежуточный язык (IL), также называемый языком MSIL.
Преобразование проектов из смешанного режима в чистый промежуточный язык
Удалите ссылки на библиотеки времени выполнения C (CRT):
В CPP-файле, определяющем точку входа приложения, измените точку входа на Main().Значение Main() указывает, что данный проект не ссылается на CRT.
В обозревателе решений щелкните правой кнопкой мыши проект и выберите в контекстном меню пункт Свойства, чтобы открыть страницы свойств приложения.
На странице свойств Дополнительно узла Компоновщика проекта введите для параметра точка входа значение Main.
Для консольных приложений на странице свойств Система узла Компоновщика проекта выберите поле Подсистема и измените его значение на Console (/SUBSYSTEM:CONSOLE).
Примечание Для приложений Windows Forms это свойство устанавливать не нужно, поскольку поле Подсистема по умолчанию имеет значение Windows (/SUBSYSTEM:WINDOWS).
В файле stdafx.h закомментируйте все операторы #include.Например, в консольных приложениях:
// #include <iostream> // #include <tchar.h>
-или-
В приложениях Windows Forms:
// #include <stdlib.h> // #include <malloc.h> // #include <memory.h> // #include <tchar.h>
Для приложений Windows Forms в файле Form1.cpp закомментируйте оператор #include, который ссылается на файл windows.h.Например:
// #include <windows.h>
Добавьте в файл stdafx.h следующий код:
#ifndef __FLTUSED__ #define __FLTUSED__ extern "C" __declspec(selectany) int _fltused=1; #endif
Удалите все неуправляемые типы:
Везде, где это возможно, замените неуправляемые типы ссылками на структуры из пространства имен System.Основные управляемые типы перечислены в следующей таблице.
Структура
Описание
Представляет логическое значение.
Представляет 8-битовое целое число без знака.
Представляет символ Юникода.
Представляет текущее время, обычно выраженное как дата и время суток.
Представляет десятичное число.
Представляет число двойной точности с плавающей запятой.
Представляет глобальный уникальный идентификатор (GUID).
Представляет 16-разрядное целое число со знаком.
Представляет 32-разрядное целое число со знаком.
Представляет 64-разрядное целое число со знаком.
Определяемый платформой тип, который используется для представления указателя или дескриптора.
Представляет 8-разрядное целое число со знаком.
Представляет число одиночной точности с плавающей запятой.
Представляет интервал времени.
Представляет беззнаковое 16-разрядное целое число.
Представляет беззнаковое 32-разрядное целое число.
Представляет беззнаковое 64-битовое целое число.
Определяемый платформой тип, который используется для представления указателя или дескриптора.
Указывает метод, который не возвращает значение, т.е. метод, который имеет тип возвращаемого значения "Void".