“Unmanaged code(非托管代码)”指不在 .NET 的 CLR(公共语言运行库)管理之下运行的代码,通常是直接编译为本机机器码并由操作系统加载执行的程序/库(如 C/C++ 生成的 EXE/DLL)。它需要开发者自己更直接地处理内存管理、指针、资源释放等;与之相对的是 managed code(托管代码)。在某些语境下也泛指“未被某个运行时环境管理的代码”。
/ʌnˈmænɪdʒd koʊd/
Unmanaged code runs outside the .NET runtime.
非托管代码在 .NET 运行时之外运行。
The application uses P/Invoke to call unmanaged code in a native DLL, so memory and resource cleanup must be handled carefully to avoid leaks and crashes.
该应用使用 P/Invoke 调用本机 DLL 中的非托管代码,因此必须谨慎处理内存与资源清理,避免泄漏与崩溃。
un- 表示否定(“不、非”);manage 来自拉丁语 manus(手),引申为“管理、处理”;**-ed** 形成过去分词作形容词;code 来自拉丁语 codex(法典、汇编),后来引申为“编码、代码”。合起来字面意思是“未被管理的代码”,在 .NET 生态中固定用来对比 “managed code”。