如何:创建可验证的 C++ 项目 (C++/CLI)
Visual C++ 应用程序向导不创建可验证的项目,但项目可以转换为可验证的。 本主题介绍如何设置项目属性和修改项目源文件来转换 Visual C++ 项目,以生成可验证的应用程序。
编译器和链接器设置
默认情况下,.NET 项目使用 /clr 编译器标志并将链接器配置为用于 x86 硬件。 对于可验证的代码,必须使用 /clr:safe 标志,并且必须指示链接器生成 MSIL,而不是本机机器指令。
更改编译器和链接器设置
显示项目属性页。 有关详细信息,请参阅如何:打开项目属性页。
在**“配置属性”节点下的“常规”页上,将“公共语言运行时支持”属性设置为“安全 MSIL 公共语言运行时支持 (/clr:safe)”**。
在**“链接器”节点下的“高级”页上,将“CLR 映像类型”属性设置为“强制安全 IL 映像 (/CLRIMAGETYPE:SAFE)”**。
移除本机数据类型
由于本机数据类型是不可验证的,因此,即使实际上并没有使用,也必须移除所有包含本机数据类型的头文件。
备注
下面的过程适用于 Windows 窗体应用程序 (.NET) 项目和控制台应用程序 (.NET) 项目。
移除对本机数据类型的引用
- 注释掉 Stdafx.h 文件中的所有内容。
配置入口点
由于可验证的应用程序无法使用 C 运行库 (CRT),因此无法依赖 CRT 来调用主函数作为标准入口点。 这意味着必须显式地向链接器提供最开始要调用的函数的名称。(这种情况下,使用 Main() 而不是 main() 或 _tmain() 来指示非 CRT 入口点,但由于入口点必须显式指定,因此,可为任意名称。)
备注
下面的过程适用于控制台应用程序 (.NET) 项目。
配置入口点
在项目的 main .cpp 文件中将 _tmain() 更改为 Main()。
显示项目属性页。 有关详细信息,请参阅如何:打开项目属性页。
在**“链接器”节点下的“高级”页上,输入 Main 作为“入口点”**属性值。