2 votes

Compilation de .dll pendant que l'application est en cours d'exécution

Supposons le scénario suivant : Une application ( app.exe ) utilise plusieurs dll. Je suis en train de déboguer une fonction, bugged_function() de l'une des dll utilisées par l'application : util.dll . Pendant que je débogue bugged_function() Je comprends alors que quelque chose dans le code est erroné et que des modifications doivent être apportées.

Étapes à suivre pour effectuer les opérations normalement :

1. fermer app.exe

2. modifier le code dans la fonction

3. recompiler util.dll

4. réexpédition app.exe

Ce que je veux :

Contournement des étapes 1 et 4 . Pour ce faire, je dois décharger d'une manière ou d'une autre, si possible, util.dll afin qu'elle puisse être remplacée lors de la compilation. L'application doit d'une manière ou d'une autre recharger la bibliothèque.

EDIT 1 :

Je ne sais pas comment bugged_function() est appelé. Supposons que je n'ai accès qu'au code source de la bibliothèque util.dll utilisé par app.exe .

EDIT 2 :

J'utilise Visual Studio 2010, et lorsque je débogue, je m'attache à app.exe processus.

3voto

tmpearce Points 8306

Si l'application utilise la dll via l'établissement de liens dynamiques en cours d'exécution il pourrait être déchargé ( FreeLibrary ou similaire), puis rechargée ( LoadLibrary ou similaire).

Si l'application utilise la dll via liaison dynamique au moment du chargement Je pense que vous n'avez pas de chance.

Edit : J'ai légèrement mal lu la question. Puisque vous ne pouvez pas modifier app.exe vous devrez compter sur la fonctionnalité intégrée de cette application pour le chargement et le déchargement en cours d'exécution, si elle en est dotée. Cela dépend totalement de l'application.

1voto

Addison Babcock Points 71

Visual studio peut éditer et continuer. Ainsi, si vous vous trouvez à un point d'arrêt, vous pouvez apporter les modifications nécessaires, puis poursuivre le débogage. Visual Studio compilera et appliquera les modifications tout en maintenant l'état.

Édition : correction de l'édition et poursuite de la dénomination.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X