ZKX's LAB

托管内存与非托管内存 托管代码与非托管代码的区别

2020-12-05知识11

C#中提到的非托管的dll和托管的dll,两者有什么不同吗?

托管内存与非托管内存 托管代码与非托管代码的区别

托管代码与非托管代码的区别 1简单的说,就是代码被编译成MSIL后在.net的Framework下运行,同操作系统底层的交互都交给framework去做。所谓非托管代码就是脱离了Framework的管制,直接同底层API打交道。

托管内存与非托管内存 托管代码与非托管代码的区别

C#和C++ 关于托管与非托管的问题 C#是内存托管的,你new出来的对象C#系统还会自动创建一个系统指针指向它,如果你创建的指针都被销毁了,.NET系统就会自动利用系统指针将空间销毁掉,这个就是垃圾回收的原理,你new出来的对象用完后可以不用再管它,反正系统会解决一切,不过你也可以通过调用对象的Dispose方法来手动销毁,托管不托管与语言有关,而非使用方法,就好比坏人做了一件好事了那他就不再是坏人了么?C++是非托管的,new出来的对象需要自己手动销毁,否则会内存泄露,C++销毁内存用delete,delete是一个语句运算符,不是函数,你还可以重载delete运算符,不过在C++中delete数组需要用delete[]来删除

托管内存与非托管内存 托管代码与非托管代码的区别

qrcode
访问手机版