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
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.
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
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.
J'ai lu un blog sur PInvoke Interop adjoint, qui peut faire face à nos propres DLLs ainsi http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120
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.
- 1. Exception non gérée à 0x10012c5d (highgui110.dll)
- 2. Mémoire non gérée et mémoire gérée
- 3. code dll non géré
- 4. Expression naine non gérée
- 5. asp.net exception non gérée
- 6. étrange exception non gérée
- 7. Exception non gérée dans Windows
- 8. Strange "IOException était non gérée"
- 9. Exception non gérée CachedRawResponse asp.net
- 10. Où DLLImport recherche-t-il les DLL non managées?
- 11. Utilisation de la DLL C++ gérée à partir de C#
- 12. Fonction de rappel à partir d'une DLL non gérée dans VB .NET
- 13. System.StackOverflowException non gérée (MVC Model BINDING)
- 14. Une exception non gérée a été générée
- 15. Existe-t-il un moyen d'appeler une DLL non gérée (non COM) à partir de l'application C#?
- 16. Chaîne cryptée C++ non gérée en octets C# [
- 17. Création de SecureString à partir d'une chaîne unicode non gérée
- 18. Console Application - Impossible d'intercepter une exception non gérée
- 19. Communication interprocessus entre l'application C# et l'application C++ non gérée
- 20. exception non gérée à essayer de créer JAXBContext (JAXB 2.0)
- 21. Comment détecter une application non gérée a avorté
- 22. Une exception win32 non gérée s'est produite dans runMidlet.exe
- 23. Sécurité du thread/processus pour la ressource non gérée
- 24. gestionnaire d'exception non gérée dans .Net 3.5 SP1
- 25. exposer une bibliothèque de classe C++ non gérée à C#
- 26. Empêche wxPython d'afficher une boîte de dialogue 'Exception non gérée'
- 27. API de recherche de profils Google
- 28. Recherche d'une API d'aide Java open-source
- 29. Classe non enregistrée .... lorsque j'essaie d'appeler une bibliothèque C# gérée à partir d'un C++ non géré
- 30. connexion d'une source d'événement gérée à un récepteur d'événements non géré
Est-ce que pinvoke.net inclut des dlls non dans win32? – Will
Je pense qu'il existe d'autres API non gérées, mais je ne sais pas lesquelles. –