其他分享
首页 > 其他分享> > 我的代码是托管还是非托管?

我的代码是托管还是非托管?

作者:互联网

我正在开发一个.NET库,到目前为止100%管理该库.现在,我需要使用一些win32调用.

我只需要知道什么时候将.NET库称为非托管库?程序集具有非托管代码或何时执行程序集中的非托管代码?

解决方法:

您认为您正在编写100%托管代码,但实际上,如果您深入研究.NET框架的内容,即使调用非托管代码也是如此.尝试使用ILSpy.NET Reflector查找DllImport或extern方法调用.程序集本身是受管理的,因为.NET正在执行所有的JITing,安全性,垃圾回收等工作.到装配体中的对象.当.NET调用非托管函数(Win32等)时,.NET不再具有对代码的控制权,因此这是非托管的!

优良作法是学习如何“管理”非托管代码导入.您应该包装可互操作的调用,以便在可互操作的调用完成后,.NET可以尽可能多地进行清理.

在此处查看有关应如何使用平台调用的信息:

http://msdn.microsoft.com/en-us/library/aa288468%28v=vs.71%29.aspx

标签:net-assembly,c,net
来源: https://codeday.me/bug/20191031/1977405.html