VC++ .Net Clr/Safe 和 Clr/Pure

发布于 2024-09-15 17:44:49 字数 97 浏览 3 评论 0原文

在 VC++ .Net 中,Clr/Safe (/clr:safe) 和 Clr/Pure (/clr:pure) 是什么意思?

In VC++ .Net, The What does the Clr/Safe (/clr:safe) and Clr/Pure (/clr:pure) means?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

请爱~陌生人 2024-09-22 17:44:56

我认为这些信息还不够。从另一个答案看来,这只是类型检查。从此文档看来,它的意义远不止于此。

当使用 /clr(不是 /clr:pure/clr:safe)且 __clrcall不使用,获取函数的地址总是返回本机入口点函数的地址。使用 __clrcall 时,不会创建本机入口点函数,因此您获得的是托管函数的地址,而不是入口点 thunk 函数。有关详细信息,请参阅双重转换。

/clr(公共语言运行时编译)意味着所有函数和函数指针都是 __clrcall 并且编译器不允许将编译区内的函数标记为任何其他内容比__clrcall。使用 /clr:pure 时,只能在函数指针和外部声明上指定 __clrcall

I don't think that's enough information. It seemed from the other answer that it was just type checking. It seems from this doc that it's a lot more than that.

When /clr (not /clr:pure or /clr:safe) is used and __clrcall is not used, taking the address of a function always returns the address of the native entry point function. When __clrcall is used, the native entry point function is not created, so you get the address of the managed function, not an entry point thunk function. For more information, see Double Thunking.

/clr (Common Language Runtime Compilation) implies that all functions and function pointers are __clrcall and the compiler will not permit a function inside the compiland to be marked anything other than __clrcall. When /clr:pure is used, __clrcall can only be specified on function pointers and external declarations.

完美的未来在梦里 2024-09-22 17:44:53

来自 doc

/clr:pure 生成 Microsoft
仅中间语言 (MSIL)
没有本机的输出文件
可执行代码。然而,它可以
包含编译为 MSIL 的本机类型。

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

From the doc:

/clr:pure Produces a Microsoft
Intermediate Language (MSIL)-only
output file that has no native
executable code. However, it can
contain native types compiled to MSIL.

/clr:safe Produces an MSIL-only (no
native executable code), verifiable
output file. /clr:safe enables
verification diagnostics (PEVerify
Tool (Peverify.exe)).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文