为了账号安全,请及时绑定邮箱和手机立即绑定

为什么从 C# 程序调用 C 函数不需要不安全的上下文?

为什么从 C# 程序调用 C 函数不需要不安全的上下文?

C#
肥皂起泡泡 2021-06-03 12:20:50
我最近开始研究 C# 编程(我之前只研究过 C)。我开始知道我们需要使用不安全的上下文来在 C# 程序中使用指针作为Microsoft 文档页面。不使用指针的优点之一是使用不安全的代码会带来安全性和稳定性风险。但是我们不需要使用不安全的上下文来调用 C 中可能包含编写不良的代码或安全漏洞的函数。公共语言运行时无法检测这些 C 函数中的问题。这些是我的问题为什么即使 CLR 无法检测到这些代码中的问题,也不需要使用不安全的上下文来执行用 C 编写的函数?不使用不安全上下文来调用用 C 编写的函数有什么好处?
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

为什么即使 CLR 无法检测到这些代码中的问题,也不需要使用不安全的上下文来执行用 C 编写的函数?

不安全模式与被调用的方法不安全无关,C# 代码也同样不安全。不安全模式是关于绕过的内存管理。如果您通过 CLR(如此托管)分配变量,这些变量被传递到 C++ 库,如 Win32 库,CLR 仍然可以管理使用的内存段,因为它们仍然是 CLR 变量。

不使用不安全上下文来调用用 C 编写的函数有什么好处?

如果您不需要不安全的内存分配,则使用unsafe上下文没有意义。


查看完整回答
反对 回复 2021-06-05
  • 1 回答
  • 0 关注
  • 164 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信