Como visualizar as funções da DLL?


Respostas:


73

Para código nativo, provavelmente é melhor usar o Dependency Walker . Também é possível usar o utilitário de linha de comando dumpbin que acompanha o Visual Studio.


1
Com edições mais recentes do VS, tente o DumpBin como uma ferramenta externa .
23818 Laurie Stearn

Existe um artigo da Wikipedia sobre Dependency Walker. Aparentemente, o programa ficou desatualizado e não funciona com alguns recursos mais recentes do Windows, mas há uma substituição disponível: github.com/lucasg/Dependencies
user1324109

50

Use o DLL Export Viewer gratuito , é muito fácil de usar.


8
@sumit você pode ser mais específico? essas ferramentas funcionam para mim ao longo dos anos.
Ken D

6
Na verdade, a ferramenta funciona bem, pura e simplesmente, exatamente o que eu precisava.
informatik01

5
É uma ótima ferramenta para gerar uma lista de métodos / funções, mas não mostra os parâmetros dos métodos (nem seus tipos).
bvdb

1
É ótimo ter algo pequeno e compacto, e não um produto inchado, como os produtos oficiais da MS.
ワ イ き ん ぐ

38

Você pode tentar o Pesquisador de objetos no Visual Studio.

Selecione Editar conjunto de componentes personalizados . A partir daí, você pode escolher entre uma variedade de bibliotecas .NET, COM ou projeto ou apenas importar dlls externas via Browse.


16
O Visual Studio diz "O componente selecionado não pode ser navegado" ao usar Procurar e selecionar DLL :( - msdn.microsoft.com/query/…
Xdg

5
O navegador de objetos foi movido para View. E sim, ele não funciona (por que ele, da Microsoft)
phil294

1
Mais um fornecedor do que um problema de MS. Provavelmente, não há typelib na dll. Veja: stackoverflow.com/a/13903040/1614903
Holger Böhnke

@ HolgerBöhnke não typelib em userdll32 quer
Kimmax

2
@Kimmax Sim, mas o user32.dll é uma DLL nativa do Windows e não um servidor COM. Somente servidores COM (por exemplo, DLLs COM, controles ActiveX, * .ocx ...) possivelmente possuem fontes tipográficas, se eles foram compilados, em primeiro lugar. Para DLLs nativas (= objetos não COM), algumas das outras ferramentas mencionadas aqui (dumpbin et. Al.) Podem funcionar. Ou seja, se a DLL exportar suas funções por nome e não apenas por ordinal.
Holger Böhnke 04/04

27

Use a dumpbinlinha de comando .

  • dumpbin /IMPORTS <path-to-file> deve fornecer a função importada para essa DLL.
  • dumpbin /EXPORTS <path-to-file> deve fornecer as funções que exporta.


8

Para DLLs do .NET, você pode usar o ildasm


Como o ildasm é um produto da Microsoft e está instalado no PC por padrão, se você tiver o Visual Studio instalado. Eu acredito que seja a melhor opção. Ele também possui uma interface do usuário para que você não precise usar a linha de comando. Obrigado
Mehrdad Babaki /

Pode ser encontrado: C: \ Arquivos de Programas (x86) \ Microsoft SDKs \ Windows \ <VERSION> \ bin
f4d0

6

Sem nos dizer de que idioma é este dll / assembly, podemos apenas adivinhar.

Então, que tal o .NET Reflector


2
Então este deve ser o seu cara.
Adriaan Stander

1
O refletor .net costumava ser gratuito, mas agora é um produto comercial. Para o .net dll "JustDecompile" é uma alternativa gratuita.
bvdb

O decompiler apenas informa quais funções existem. podemos ver a implementação deles também?
precisa saber é o seguinte

2

Se uma DLL estiver gravada em uma das linguagens .NET e se você desejar exibir apenas quais funções, há uma referência a essa DLL no projeto.

Em seguida, clique duas vezes na DLL na pasta de referências e você verá as funções que ela possui na janela OBJECT EXPLORER

Se você deseja visualizar o código-fonte desse arquivo DLL, pode usar um aplicativo de descompilador, como o refletor .NET. Espero que isso ajude você.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.