J'ai récemment couru à travers une DLL installée sur mon système que Dependancy Walker (et tous les autres utilitaires que j'ai essayé) dit avoir zéro exportations par nom ou ordinal, mais le fichier est d'environ 4 Mo de taille. Je pensais que le but unique d'une DLL était d'exporter des fonctions pour une utilisation par un autre code alors quel serait le but d'une DLL sans exportations visibles?Comment une DLL peut-elle exporter zéro?
Répondre
Une façon de penser à une DLL est comme un conteneur pour les fonctions. L'exportation d'une fonction à partir d'une DLL rend ces fonctions visibles aux appelants en dehors de la DLL. Alors que l'exportation de fonctions à partir d'une DLL est peut-être le moyen le plus courant d'y accéder, de nombreuses plateformes offrent d'autres moyens d'accéder à des fonctions non exportées comme .NET Framework et Java (et je pense) LoadLibtary/GetProcAddress dans Win32
raisons pour ce faire sont variés, il est souvent parce qu'il est bénéfique pour le développeur d'avoir des fonctions dans une bibliothèque, mais indésirable pour les fonctions à appeler des applications externes
Resource seule DLL, peut-être? Ceux-ci sont souvent utilisés à des fins de localisation, par exemple.
EDIT: il est également possible d'avoir une DLL avec du code qui fait quelque chose dans DllMain() pour rendre ses fonctionnalités disponibles. La DLL peut s'enregistrer avec un répartiteur global, par exemple, ou créer des objets noyau nommés ...
- 1. Comment exporter automatiquement tous les fichiers DLL dépendants
- 2. Comment exporter une définition de struct à partir d'un C .dll natif pour l'utiliser en C#
- 3. Comment exporter la fonction C++ en tant que dll qui provoque une exception?
- 4. Exporter la classe de l'exécutable vers la DLL
- 5. Créer une DLL: Comment utiliser une DLL pour créer une nouvelle DLL?
- 6. SQL Server: comment exporter une table
- 7. comment exporter une table 2D en Java
- 8. comment exporter une image dans un dossier?
- 9. SVN - Comment exporter juste une révision
- 10. Comment exporter une table PostgreSQL en HTML?
- 11. Comment exporter une vue depuis Postgresql/Phppgadmin
- 12. Comment créer une DLL CUDA?
- 13. Comment faire à distance de débogage de DLL dans Delphi 7 à partir de zéro
- 14. Comment exporter l'extracteur Scrubyt?
- 15. Comment exporter des fonctions virtuelles pures à partir d'une DLL en C++?
- 16. Comment emballer plusieurs dll en une seule dll
- 17. jQuery signale incorrectement une largeur de zéro
- 18. Comment exporter des statistiques Oracle
- 19. Comment exporter JasperReport en HTML?
- 20. Comment exporter des publications WordPress?
- 21. Comment éviter une division apparemment inévitable par zéro
- 22. comment afficher une table avec zéro rangées dans UITableView
- 23. Comment exporter toutes les fonctions dans l'extension PHP?
- 24. ACT! - Exporter ou lire une table ACT?
- 25. Exporter une grille hiérarchique pour exceler
- 26. Comment appeler une DLL Delphi de VB6
- 27. Comment décider quand implémenter une DLL?
- 28. Comment rafraîchir applicationSettings dans une DLL
- 29. Comment renvoyer une instance d'une DLL?
- 30. Comment désactiver une sortie de console .DLL?
Oh, c'est logique. Je n'ai jamais réalisé (ou même pensé) qu'il pourrait y avoir des manières d'employer une DLL autrement que par l'intermédiaire de la table d'exportation si vous l'avez écrite. –