j'ai un doute dans dlls chargement & traitement en mémoire, normalement dlls sont bibliothèque partagée si dll devrait charger une fois est suffisant.si un processus charge un dll (ex.advapi32.dll) dans des moyens de mémoire, après qu'un autre processus comment se réfère advapi32.dll à ce processus ... comment peut partager l'emplacement commun pour chaque processus ...dll processus dans le système?
Répondre
Je ne suis pas entièrement sûr de savoir quelle est votre question, mais oui, si plusieurs processus importent la même DLL, la lecture Seules les sections de cette DLL sont généralement mappées dans tous ces processus. D'un autre côté, une section qui peut changer, comme le segment BSS (variable), reçoit une copie dans chaque processus de sorte que les changements qu'un processus effectue soient invisibles aux autres processus. Si vous souhaitez que certaines modifications soient partagées entre les processus de votre propre DLL, vous pouvez marquer une section de données dans la DLL comme partagée. La façon exacte de procéder dépend des outils de développement que vous utilisez.
Par Larsen, merci pour votre réponse ... j'ai eu une vue claire sur l'utilisation partagée de dlls .... – Rajakumar
- 1. Exécuter le processus système
- 2. Démarrer le processus de surveillance dans le système
- 3. processus système sous Unix
- 4. Empêcher le processus enfant des appels système
- 5. problème dans l'appel dll par écrit le processus d'appel
- 6. Injecter DLL géré dans le problème de processus natif
- 7. bibliothèque d'informations système/processus portable
- 8. Le régulateur de vitesse s'éteint lorsque j'utilise le processus système
- 9. Exécution d'un processus que l'utilisateur actuel d'un processus système
- 10. Comment le programme devient un processus. Comment le système d'exploitation fait-il du programme un processus?
- 11. Partager des données dll entre différents processus
- 12. problème dans le processus d'accrochage
- 13. Même DLL chargée deux fois dans un processus
- 14. Tuer un processus défunt sur le système UNIX
- 15. Variable globale dans une bibliothèque partagée/dll, partagée entre processus
- 16. Comment le système détermine si une DLL donnée est une DLL .NET?
- 17. Injecter le code dans le processus natif
- 18. comment suivre les DLL chargées dans un processus?
- 19. Comment trouver une DLL chargée par un processus dans AIX?
- 20. Code source du processus inactif du système
- 21. processus à l'échelle SetWindowsHookEx au lieu de l'ensemble du système
- 22. Comment libérer des ressources lorsque la DLL est déchargée ou que le processus se termine
- 23. Est-ce que plusieurs versions d'une même DLL (Boost) peuvent coexister dans le même processus?
- 24. Puis-je charger une DLL 32 bits dans un processus 64 bits sous Windows?
- 25. La meilleure façon de regarder le processus (et les sous-processus) pour le système de fichiers read() I/O?
- 26. Versions DLL et Visual Studio attachées au processus
- 27. Comment puis-je utiliser la substitution de processus du shell dans le système de Perl()?
- 28. système large crochet Shell de .NET à l'aide Unmanaged DLL
- 29. .Dll Serveur Remoting dll dans le même répertoire que l'exécutable
- 30. nécessitant msvcr80.dll et msvcr80d.dll dans le même DLL?
Les DLL sont mappées en mémoire afin qu'elles soient partagées, mais ce n'est que le chargement du code dans la mémoire. Que ce soit un singleton ou que le code crée des instances uniques est entièrement à vous lorsque vous développez la bibliothèque. –