2010-10-12 114 views
0

我想知道,如果C#.NET是托管语言,为什么它会产生.dll文件而不是某些.mdll或其他?或者是编译为本地代码的dll?这甚至有可能吗?我的意思是,有DLL的witj调用托管库?谢谢。C#dll文件编译

回答

1

该库包含一个标题,表明它是托管代码。此外,实际的机器代码由JIT编译器在运行时动态生成。

0

因为DLL实际上有一些非托管代码和导入表,也因为不需要多一种文件格式。

至于编译 - 托管程序集编译为安装到GAC并加载的计算机上的本机代码。查询"ngen"了解更多信息。

1

dll只是一个文件扩展名,但内部存储的数据在管理的&本机中完全不同。

而且dll没有编译为本机代码,编译为与机器无关的MSIL代码。

要从本机调用受管dll,必须使您的程序集COM可见。