在VC++ .Net中,Clr/Safe (/clr:safe)和Clr/Pure (/clr:pure)意味着什么?
发布于 2010-08-21 06:59:00
来自文档
/clr:pure生成没有本机可执行代码的(MSIL)-only输出文件。但是,它可以包含编译为MSIL的本机类型。 /clr:safe生成一个只使用MSIL(没有本机可执行代码)的可验证输出文件./clr:safe支持验证诊断(PEVerify Tool (Peverify.exe))。
发布于 2017-12-17 07:24:20
我觉得这还不够。从另一个答案看来,这只是一种类型检查。从这位医生看来,这远远不止这些。
当使用
/clr(非/clr:pure或/clr:safe)且不使用__clrcall时,函数的地址始终返回本机入口点函数的地址。当使用__clrcall时,本机入口点函数不会被创建,因此您将得到托管函数的地址,而不是入口点thunk函数。有关更多信息,请参见双击。/clr(公共语言运行时编译)意味着所有函数和函数指针都是__clrcall,编译器将不允许除__clrcall以外的任何其他标记。当使用/clr:pure时,只能在函数指针和外部声明中指定__clrcall。
https://stackoverflow.com/questions/3536692
复制相似问题