C#项目设置“允许不安全的代码”的实际function是什么
我想知道C#项目设置“允许不安全代码”是否仅适用于项目本身的不安全C#代码,还是在链接本机C ++ DLL时是否需要设置此选项? 如何链接自身链接到本机DLL的托管DLL? 这个选项在引擎盖下真正做了什么?
它与C#中的“unsafe”关键字有关。 “unsafe”会关闭通常会发生的所有检查,并允许您直接访问内存。 它不是指调用本机C ++ DLL或接口。
它允许您使用“不安全”块。
unsafe(...) { }
这只涉及使用unsafe
块(可以使用指针)。 它不管理P / Invoke。
必须使用不安全的{}上下文。 过去需要使用sizeof(),但在以后的版本中不再适用。
如果您要使用另一种语言(如C语言)编写的另一个DLL,则不需要允许不安全的代码。