2008-10-10 7 views
3

J'écris en C#.
Comment puis-je savoir quelles méthodes/fonctions je peux utiliser dans une DLL non managée n'appartenant pas à Windows?
Exmaple: J'ai un logiciel installé sur mon ordinateur, il a une DLL, et je veux savoir quelles sont mes options quant à la création de code pour se connecter à ce logiciel?Recherche d'une API dll non gérée?

Répondre

1

PInvoke.net est une excellente ressource pour .NET interop. Ils listent non seulement les fonctions disponibles dans les bibliothèques natives Windows, mais également la signature que vous devez utiliser dans votre code .NET.

+0

Est-ce que pinvoke.net inclut des dlls non dans win32? – Will

+0

Je pense qu'il existe d'autres API non gérées, mais je ne sais pas lesquelles. –

7

Pour les DLL natives pour lesquelles vous n'avez pas de référence, vous pouvez utiliser l'utilitaire dumpbin dans Visual Studio SDK pour extraire la liste des fonctions exportées dans une DLL.

référence Dumpbin est ici: http://msdn.microsoft.com/en-us/library/c1h23y6c(VS.71).aspx

Et une page CodeProject donnant quelques détails supplémentaires sur la façon d'utiliser dumpbin conjointement avec les signatures de trouver P/Invoke correcte est ici: http://www.codeproject.com/KB/mcpp/usingcppdll.aspx#Retrieve

1

utilisation Depends.exe (qui vient avec VS).

Depends affichera toutes les fonctions exportées pouvant être appelées depuis le code Managed en utilisant Pinvoke.

0

Je voudrais juste ajouter que si elle est un ensemble de COM, comme un composant COM VB6, il peut être parcouru dans le Object Explorer dans Visual Studio et c'est plutôt sympa parce que ça vous donne de très bons résultats.

Questions connexes