簡體   English   中英

.NET如何允許對已編譯DLL進行API探索?

[英]How does .NET allow API exploration of compiled DLLs?

.NET如何允許對已編譯DLL進行API探索?

因為DLL包含有關所有類型,方法等的元數據 。即使實際代碼也位於IL中,而不是本機代碼中。

基本上,.NET二進制文件仍然比本機二進制文件具有更高的級別,並且包含許多有關其中的內容的信息。 這就是讓反射工作的原因。

我不確定這是否是您要問的問題,但是我只能推薦免費工具.NET Reflector ,該工具可讓您瀏覽任何已編譯的.NET程序集。

如今,我使用它的次數甚至超過了已發布的MSDN文檔,因為它的瀏覽速度更快,並且引導信息也更多。

這取決於。

DLL包含導出的功能列表,但可以簡單地為它們分配一個數字,一個名稱,也可以為它們分配一個亂碼的 C ++名稱。 后者可以使您對函數的參數有所了解,但通常不會記錄數據結構,調用約定和其他必需的屬性。

如果它是COM DLL,則可能包含類型庫作為資源,但是不能保證。 在這種情況下,.NET可以自動導入該庫。

類型庫也可以包含在非COM DLL中,但這不是普遍的做法。

如果您有一個設計為從非COM非托管環境中調用的已編譯DLL,則需要轉換應包含在DLL中的頭文件。

一言以蔽之

暫無
暫無

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

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