簡體   English   中英

系統如何確定給定的DLL是否是.NET DLL?

[英]How does the system determine whether a given DLL is a .NET DLL?

系統如何確定給定的DLL是.NET DLL還是Win32 DLL?

Windows上的DLL和Exe文件符合可移植可執行(PE)文件格式(有關詳細信息,請參見此處 )。

.Net元數據存儲在CLR數據部分的PE文件中。

如果PE文件具有CLR數據部分,則DLL或Exe是.Net程序集。 如果不是這樣,那么AFAIK,不是。

有關PE文件格式的更多詳細信息,請參見此處

系統與它無關。 使用它的代碼必須知道該怎么做。 如果您正在編寫.NET應用程序,並且想添加一個dll,則如果它是.net,則CLR知道該怎么做(IL中的單個指令)。 如果不是,那你就得做些事。 聲明來自該庫的函數。 這是嚴格的編譯時間決定。

閱讀.Net程序集 最簡單的方法是查找程序集元數據。 .Net程序集具有IL代碼,因此它們與包含二進制代碼的普通庫完全不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM