我想知道.NET dll和普通dll之间的确切区别.
第一个问题,什么是"普通DLL"?我正在使用"正常"这个词.但它似乎不对吗?
因为两者都遵循PE格式.是的,我同意.NET DLL有一个额外的部分.除此之外,其他每件事都是一样的.
我也知道在.NET代码转换成CIL/MSIL然后填写PE文件的.text部分?MSIL?因为没有二进制代码.但如果他们把MSIL放在.text部分.Loader假定它是二进制代码并允许它执行.事实并非如此.我错过了什么?
我很惊讶地知道这一点
甚至DLL文件扩展名也是人为的.您可以使用具有完全不同扩展名的DLL - 例如.OCX控件和控制面板小程序(.CPL文件)是DLL.
还有哪些扩展名用于DLL文件?
但我可以理解使用不同扩展的原因.为什么他们不遵循.NET DLLS的情况?他们可以使用新的扩展来区分它与"普通"DLL.它们甚至ASSEMBLY在.NET中具有不同的dll 名称(),但无法更改扩展名.是吧?
另一个完全不同的问题:什么是DLL注册?他们使用regsvr32.exe.对?我在安装Windows XP SP3时注意到了它.在安装之后和重新启动窗口之前,我检查了启动列表,发现了很多regsvr32.exe带有很多DLL 的条目.
请随意潜入您想要的深度.我正在学习链接器,加载器,二进制格式.我也熟悉PE文件格式.