【发布时间】:2008-10-24 14:27:40
【问题描述】:
我想知道 C# 项目设置“允许不安全代码”是否仅适用于项目本身中的不安全 C# 代码,或者在链接本机 C++ DLL 时是否需要设置此选项?如果在托管 DLL 中进行链接,该 DLL 本身链接到本机 DLL?这个选项到底有什么作用?
【问题讨论】:
标签: c# dll interop native unsafe
我想知道 C# 项目设置“允许不安全代码”是否仅适用于项目本身中的不安全 C# 代码,或者在链接本机 C++ DLL 时是否需要设置此选项?如果在托管 DLL 中进行链接,该 DLL 本身链接到本机 DLL?这个选项到底有什么作用?
【问题讨论】:
标签: c# dll interop native unsafe
这与 C# 中的“不安全”关键字有关。 “不安全”会关闭所有通常会发生的检查,并允许您直接访问内存。它不是指调用本机 C++ DLL 或接口。
【讨论】:
它允许您使用“不安全”块。
unsafe(...)
{
}
【讨论】:
这仅与unsafe 块的使用有关(其中可以使用指针)。它不管理 P/Invoke。
【讨论】:
必须使用不安全的 { } 上下文。过去需要使用 sizeof(),但在以后的版本中不再适用。
如果您正在外部使用其他语言(如 C)编写的另一个 DLL,则不需要允许不安全代码。
【讨论】: