2011-02-01 3 views
0

J'ai un projet avec quelques DLL C# qui utilisent d'autres dll vb6. J'ai aussi dlls vb6 qui utilisent d'autres dll vb6. Je voudrais cartographier toutes ces dépendances, donc je saurai quelles dll vb6 sont toujours utilisées.COM Dll dépendance arbre

Merci.

+1

Avez-vous encore le projet .vbp fichiers autour des DLL VB6? Je ne pense pas qu'il existe un moyen facile de tirer les informations de dépendance COM sur une DLL VB6 compilé. Bien sûr, même alors, il peut y avoir des dépendances listées qui ne sont pas réellement utilisées. –

+0

J'ai les fichiers .vbp. Je veux voir un arbre avec toutes les dépendances à n'importe quel objet vb6 de n'importe quel autre projet. –

+0

Une partie de votre question est un doublon de cette question [meilleur outil pour trouver à quelle DLL un autre VB6 DLL est référencé] (http://stackoverflow.com/questions/69538/what-is-the-best-tool-to- trouver-quel-dll-un-autre-vb6-dll-est-référencé-à) – MarkJ

Répondre

2

Vous prenez un morceau de papier et y écrivez le nom de toutes vos DLL. Ensuite, vous prenez un stylo et dessinez une flèche de DLL A à DLL B si DLL A a une dépendance sur DLL B.

Ensuite, vous savez qu'une DLL est inutilisée s'il n'y a pas de flèches pointant vers elle.

Ce que vous avez maintenant un directed acyclic graph (DAG) - il est probablement pas un arbre, car vous pourriez avoir une Une DLL qui fait référence à DLL B et C, toutes deux référence DLL D.

Étant donné que chaque DAG induit un ordre partiel, vous pouvez prendre un nouveau morceau de papier et redessiner votre graphique de telle sorte que les DLL qui sont sont dépendances sont sous les DLL qui les ont comme dépendances, ce qui fera une feuille de référence utile.

1

essayer Dependency Walker http://www.dependencywalker.com/

+0

Cela fonctionne-t-il pour les DLL COM? – MarkJ

+0

oui cela fonctionne avec COM dlls, OCX, EXEs comme il est dit sur le site web: Dependency Walker est un utilitaire gratuit qui analyse tout module Windows 32 bits ou 64 bits (exe, dll, ocx, sys, etc.) et construit un diagramme arborescent hiérarchique de tous les modules dépendants –