2010-08-21 125 views

回答

3

doc

/CLR:纯产生一个微软 中间语言(MSIL)不具有天然 可执行代码-only 输出文件。不过,它可以包含编译为MSIL的本机类型。

/CLR:安全产生MSIL只(无 本地可执行代码),可验证 输出文件。/clr:安全启用 验证诊断(PEVerify 工具(Peverify.exe))。

+0

这是否阻止我从我的c + + cli程序集中访问DirectX或win32代码? – Gusdor 2011-02-07 09:21:57

+0

我也想知道,如果这些只是类型检查,或者如果这些标题放在标题中标识为纯粹或安全? – 2017-12-17 07:17:22

0

我不认为这是足够的信息。从另一个答案看来,这只是类型检查。从this doc看来,它远不止于此。

/clr(未/clr:pure/clr:safe)用于和__clrcall未使用,取一个函数的地址总是返回本地入口点函数的地址。使用__clrcall时,不会创建原生入口点函数,因此您将获得托管函数的地址,而不是入口点thunk函数。有关更多信息,请参阅Double Thunking。

/clr(公共语言运行库编译)意味着所有的函数和函数指针是__clrcall,编译器将不允许compiland内的功能将被标记比__clrcall其他任何东西。当使用/ clr:pure时,只能在函数指针和外部声明中指定__clrcall