Поделиться через


Практическое руководство. Создание проверяемых проектов на языке C++ (C++/CLI)

Мастер приложений Visual C++ не создает проверяемые проекты, однако их можно преобразовать в проверяемые. В этом разделе описаны способы задания свойств проекта и изменения исходных файлов проекта, чтобы из проектов Visual C++ могли получаться проверяемые приложения.

Параметры компилятора и компоновщика

По умолчанию в проектах .NET используется флаг компилятора /clr, а компоновщик настраивается для работы с платформой x86. В проверяемом коде необходимо использовать флаг /clr:safe, а также дать команду компоновщику создавать код MSIL вместо машинных инструкций.

Изменение параметров компилятора и компоновщика

  1. Перейдите на страницы свойств проекта. Для получения дополнительной информации см. Открытие свойств страниц проекта.

  2. На странице Общие разверните узел Свойства конфигурации и задайте для свойства Поддержка общеязыковой среды выполнения (CLR) значение CLR-поддержка безопасного MSIL (/clr:safe).

  3. На странице Дополнительно разверните узел Компоновщик и задайте для свойства Тип изображения CLR значение Принудительно использовать изображение с безопасным уровнем целостности (/CLRIMAGETYPE:SAFE).

Удаление собственных типов данных

Поскольку собственные типы данных являются непроверяемыми, даже если они не используются, необходимо удалить все файлы заголовков, содержащие собственные типы.

Примечание

Следующая процедура относится к проектам приложений Windows Forms (.NET) и консольных приложений (.NET).

Удаление ссылок на собственные типы данных

  • Закомментируйте все содержимое файла Stdafx.h.

Настройка точки входа

Поскольку в проверяемых приложениях нельзя использовать библиотеки времени выполнения C (CRT), они не могут использовать функцию Main библиотеки CRT в качестве стандартной точки входа. Это означает, что необходимо заблаговременно явно предоставить компоновщику имя вызываемой функции. В данном случае имя Main() используется вместо main() или _tmain(), чтобы обозначить точку входа, независимую от библиотеки CRT. Поскольку точка входа должна быть задана явно, это имя является произвольным.

Примечание

Следующая процедура применяется к проектам консольных приложений (.NET).

Настройка точки входа

  1. Измените имя _tmain() на Main() в главном файле проекта CPP.

  2. Перейдите на страницы свойств проекта. Для получения дополнительной информации см. Открытие свойств страниц проекта.

  3. На странице Дополнительно разверните узел Компоновщик и введите Main в качестве значения точки входа.

См. также

Ссылки

Чистый и проверяемый код (C++/CLI)