5
A
回答
4
从annakata的回答是:(!希望)
托管代码不会被编译成机器码,而是这是一台机器上的解释和执行一些 服务,因此内运行的中间语言 安全的框架,处理危险的东西,如内存和 线程为你。在现代用法中,这通常意味着.NET,但并不是必须的。
非托管代码被编译为机器代码,因此直接由OS执行。因此它有能力去做 破坏/强大的事情托管代码没有。这是一切 如何用来工作,所以通常它与旧的东西一样的.dll
现在,什么是引擎盖下回事关联? 托管与非托管是全部关于内存。
在托管代码中,代码本身不直接处理内存。它向代表代码的运行时提供指令。这样,可以阻止不安全或非法操作,并且代码在半沙箱中运行。托管语言可以并经常具有非托管代码 - 这就是计算的本质。
可视化内存就像一个巨大的停车场。托管语言和非托管语言之间的区别如下所示:
在托管语言中,您走向代理并解释您希望停放10辆汽车。你不知道他们停在哪里其中,但你知道,仆人会很乐意随时为你找回他们。你也不会去决定他们停在哪里 - 你只需告诉代客他们需要停放。
在非托管语言中,选择这些点是您的工作。你可以开车进入其他车辆,停在残疾人的地方,无论 - 这给你更好的表现(你不必经常中转指示给仆人)但是你也可以犯很多愚蠢/危险的错误。
相关问题
- 1. 托管代码在非托管
- 2. 将非托管C++代码编译为托管代码
- 3. 通多 - 从托管代码维数组非托管代码
- 4. 什么是托管代码和非托管代码?
- 5. 使用托管代码中的非托管代码
- 6. 如何使用托管代码从非托管代码?
- 7. 在调试托管代码时调试非托管代码
- 8. .NET中的托管代码和非托管代码
- 9. 从非托管代码调用托管代码
- 10. 更改托管代码中非托管代码的内存值
- 11. 从托管代码调用非托管代码的性能
- 12. C++/cli将托管代码传递给非托管代码
- 13. 调试托管代码和非托管代码
- 14. 在非托管C++代码
- 15. 从非托管代码
- 16. 非托管dll代码
- 17. MEF和非托管代码
- 18. 托管代码和非托管代码之间的调用代码
- 19. 半非托管代码与c#
- 20. 与来自托管代码
- 21. C++托管代码
- 22. 托管Java代码
- 23. 托管源代码管理?
- 24. 托管的system.timer over un托管代码
- 25. 如何将数据从非托管代码推送到托管代码?
- 26. 非托管代码之间的快速数据交换和托管代码
- 27. 在托管代码和非托管代码之间共享数据库事务
- 28. 从托管代码调用非托管DLL函数时出错
- 29. 调试托管的.NET代码从非托管C++调用
- 30. 从非托管代码返回分配的值到托管
这是关于垃圾收集的一切,使得托管代码与众不同的地方在于GC可以找回代码使用的对象引用。即时编译器在此方案中起着非常关键的作用,除了将MSIL编译为机器代码(就像C编译器用C代码所做的那样),它还*生成一个表,告诉GC在哪里查找对象引用。该表是不同的,非托管代码不能提供该表。 –