Bagaimana cara melihat fungsi DLL?


Jawaban:


73

Untuk kode asli mungkin lebih baik menggunakan Dependency Walker . Juga dimungkinkan untuk menggunakan utilitas baris perintah dumpbin yang datang dengan Visual Studio.


1
Dengan edisi VS yang lebih baru, coba DumpBin sebagai Alat Eksternal .
Laurie Stearn

Ada artikel Wikipedia tentang Ketergantungan Walker. Rupanya program ini telah menjadi usang dan tidak berfungsi dengan beberapa fitur Windows yang lebih baru, tetapi ada pengganti yang tersedia: github.com/lucasg/Dependencies
user1324109

50

Gunakan Penampil Ekspor DLL gratis , sangat mudah digunakan.


8
@sumit, bisakah kamu lebih spesifik? alat ini bekerja untuk saya sepanjang tahun.
Ken D

6
Sebenarnya alat ini bekerja dengan baik, sederhana dan sederhana, hanya apa yang saya butuhkan.
informatik01

5
Ini adalah alat yang hebat untuk menghasilkan daftar metode / fungsi, tetapi tidak menunjukkan parameter metode (atau tipenya).
bvdb

1
Sangat hebat untuk memiliki sesuatu yang kecil dan kompak, dan bukan produk kembung seperti produk MS resmi biasanya.
ワ イ き ん ぐ

38

Anda dapat mencoba Object Browser di Visual Studio.

Pilih Edit Komponen Kustom . Dari sana, Anda dapat memilih dari berbagai perpustakaan .NET, COM atau proyek atau hanya mengimpor dll eksternal melalui Browse.


16
Visual Studio mengatakan "Komponen yang dipilih tidak dapat ditelusuri" saat menggunakan Jelajahi dan pilih DLL :( - msdn.microsoft.com/query/…
Xdg

5
browser objek telah dipindahkan ke View. Dan ya, itu tidak berhasil (mengapa, ini microsoft)
phil294

1
Lebih banyak vendor daripada masalah MS. Probablay tidak ada typelib di dll. Lihat: stackoverflow.com/a/13903040/1614903
Holger Böhnke

@ HolgerBöhnke no typelib di userdll32 baik
Kimmax

2
@Kimmax Yap, tetapi user32.dll adalah DLL windows asli dan bukan server COM. Hanya server COM (mis. COM dll, kontrol ActiveX, * .ocx ...) yang mungkin memiliki typelibs, jika pertama kali dikompilasi, Untuk DLL asli (= objek non COM) beberapa alat lain yang disebutkan di sini (dumpbin et. Al.) Dapat berfungsi. Yaitu, jika ekspor DLL fungsinya dengan nama dan bukan hanya dengan ordinal.
Holger Böhnke

27

Gunakan dumpbinbaris perintah .

  • dumpbin /IMPORTS <path-to-file> harus menyediakan fungsi yang diimpor ke DLL itu.
  • dumpbin /EXPORTS <path-to-file> harus menyediakan fungsi yang diekspornya.


8

Untuk .NET DLL Anda dapat menggunakan ildasm


Karena ildasm adalah produk Microsoft dan diinstal pada PC secara default jika Anda memiliki Visual Studio diinstal. Saya percaya itu adalah pilihan terbaik. Ini juga memiliki UI sehingga Anda tidak perlu menggunakan baris perintah. Terima kasih
Mehrdad Babaki

Itu dapat ditemukan: C: \ Program Files (x86) \ Microsoft SDKs Windows \ <VERSION> \ bin
f4d0

6

Tanpa memberi tahu kami bahasa apa ini dari perakitan dll, kami hanya bisa menebak.

Jadi bagaimana dengan .NET Reflector


2
Maka ini harus menjadi orangmu.
Adriaan Stander

1
Reflektor. Dulu gratis, tapi ini produk komersial sekarang. Untuk .net dll "JustDecompile" adalah alternatif gratis.
bvdb

apakah decompiler hanya memberi tahu Anda apa fungsi yang ada. dapatkah kita melihat implementasinya juga suatu saat nanti?
vipin8169

2

Jika DLL ditulis dalam salah satu bahasa .NET dan jika Anda hanya ingin melihat fungsi apa, ada referensi ke DLL ini dalam proyek.

Kemudian klik dua kali DLL di folder referensi dan kemudian Anda akan melihat fungsi apa yang ada di jendela OBJECT EXPLORER

Jika Anda ingin melihat kode sumber file DLL Anda dapat menggunakan aplikasi dekompiler seperti .NET reflector. Semoga ini bisa membantu Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.