8

我想知道 C# 项目设置“允许不安全代码”是否仅适用于项目本身中的不安全 C# 代码,或者在链接本机 C++ DLL 时是否需要设置此选项?如果在托管 DLL 中链接本身链接到本机 DLL 呢?这个选项到底在做什么?

4

4 回答 4

11

它与 C# 中的“不安全”关键字有关。“不安全”会关闭所有通常会发生的检查,并允许您直接访问内存。它不是指调用本机 C++ DLL 或接口。

于 2008-10-24T14:29:10.423 回答
7

它允许您使用“不安全”块。

unsafe(...)
{
}
于 2008-10-24T14:28:56.837 回答
6

这仅与unsafe块的使用有关(可以使用指针的地方)。它不管理 P/Invoke。

于 2008-10-24T14:29:23.577 回答
4

必须使用不安全的 { } 上下文。它曾经需要使用 sizeof() 但在以后的版本中不再适用。

如果您要外部连接到用另一种语言(如 C)编写的另一个 DLL,则不需要允许不安全的代码。

于 2008-10-24T14:29:00.940 回答