Практическое руководство. Создание проверяемых проектов на языке C++ (C++/CLI)
Мастер приложений Visual C++ не создает проверяемые проекты, однако их можно преобразовать в проверяемые. В этом разделе описаны способы задания свойств проекта и изменения исходных файлов проекта, чтобы из проектов Visual C++ могли получаться проверяемые приложения.
Параметры компилятора и компоновщика
По умолчанию в проектах .NET используется флаг компилятора /clr, а компоновщик настраивается для работы с платформой x86. В проверяемом коде необходимо использовать флаг /clr:safe, а также дать команду компоновщику создавать код MSIL вместо машинных инструкций.
Изменение параметров компилятора и компоновщика
Перейдите на страницы свойств проекта. Для получения дополнительной информации см. Открытие свойств страниц проекта.
На странице Общие разверните узел Свойства конфигурации и задайте для свойства Поддержка общеязыковой среды выполнения (CLR) значение CLR-поддержка безопасного MSIL (/clr:safe).
На странице Дополнительно разверните узел Компоновщик и задайте для свойства Тип изображения CLR значение Принудительно использовать изображение с безопасным уровнем целостности (/CLRIMAGETYPE:SAFE).
Удаление собственных типов данных
Поскольку собственные типы данных являются непроверяемыми, даже если они не используются, необходимо удалить все файлы заголовков, содержащие собственные типы.
Примечание
Следующая процедура относится к проектам приложений Windows Forms (.NET) и консольных приложений (.NET).
Удаление ссылок на собственные типы данных
- Закомментируйте все содержимое файла Stdafx.h.
Настройка точки входа
Поскольку в проверяемых приложениях нельзя использовать библиотеки времени выполнения C (CRT), они не могут использовать функцию Main библиотеки CRT в качестве стандартной точки входа. Это означает, что необходимо заблаговременно явно предоставить компоновщику имя вызываемой функции. В данном случае имя Main() используется вместо main() или _tmain(), чтобы обозначить точку входа, независимую от библиотеки CRT. Поскольку точка входа должна быть задана явно, это имя является произвольным.
Примечание
Следующая процедура применяется к проектам консольных приложений (.NET).
Настройка точки входа
Измените имя _tmain() на Main() в главном файле проекта CPP.
Перейдите на страницы свойств проекта. Для получения дополнительной информации см. Открытие свойств страниц проекта.
На странице Дополнительно разверните узел Компоновщик и введите Main в качестве значения точки входа.