2017-02-10 1 views
0

Fondamentalement, j'ai un projet Visual Studio qui construit une DLL (un plug-in audio VST). Lorsque ce type de scénario de projet a été configuré pour moi dans le passé, je serais en mesure de construire, exécuter et déboguer le plugin. Visual Studio lancerait automatiquement le programme que j'utilisais pour héberger le plugin. J'essaie d'obtenir le même effet dans mon projet actuel, mais je ne sais pas comment le mettre en place. Actuellement lorsque je compile et exécute ma DLL dans Visual Studio, j'obtiens l'erreur "Impossible de démarrer le programme". La DLL est toujours compilée, et je peux toujours l'exécuter, mais je ne peux pas la déboguer à partir de Visual Studio, car je ne sais pas ce que je dois faire dans mes paramètres de projet pour que cela se produise. Comment puis-je faire ceci?Comment configurer Visual Studio pour déboguer une DLL ("Impossible de démarrer l'erreur du programme")

PLUS D'INFO:

Ce que je sais est que, dans les projets où cette sucessfully travaille, il y a quelques modifications apportées aux paramètres du projet Visual Studio sous les champs marqués « pré-construction des événements » et « post-construction événements, donc je suppose que ce que je veux faire est de les éditer d'une manière ou d'une autre pour dire à Visual Studio ce qui suit: "Hey, avant d'essayer d'exécuter et de déboguer cette DLL, vous devez lancer un autre programme), puis vous devez attendre que ce programme charge la DLL, puis vous pouvez déboguer Ne pas être un ordinateur stupide et essayer de le déboguer avant même qu'il ne soit chargé dans Max.exe ... "

Je ne sais pas: TOUT AUTRE. C'est littéralement tout ce que je sais à propos de ce que j'essaie de faire, hering la tentative colorée de parler à un ordinateur en anglais.

Actuellement lorsque je compile et exécute ma DLL dans Visual Studio, j'obtiens l'erreur "Impossible de démarrer le programme". Ce n'est pas surprenant vu que le projet ne sait rien sur l'environnement que je veux utiliser pour tester la DLL, mais le problème est que je n'ai pas la moindre idée de ce que Visual Studio a besoin de savoir. Je n'en sais vraiment pas assez sur la programmation pour comprendre les implications de ce que j'essaie de faire non plus. Oui, j'ai mentionné ces champs marqués pré-construction et post-construction parce que je me souviens qu'ils étaient importants, mais je ne sais pas exactement quoi ou comment écrire dans ces champs, et je ne sais pas non plus s'il y aura plus de choses Je dois dire à Visual Studio avant que cela fonctionne. Q. Je ne suis pas vraiment sûr de ce que sont les événements avant et après la construction, ou comment ils fonctionnent. Et je connais à peine la première chose à propos de la personnalisation des paramètres du projet VS. Tout ce que je sais, c'est comment écrire du code de traitement audio. J'ai ressenti le besoin de cette clause de non-responsabilité parce qu'en général mes questions sont rencontrées avec des programmeurs en colère qui pensent que je ne fais pas ma propre recherche; ils ne réalisent pas que je suis un ingénieur du son qui a sauté la programmation 101. Oui, comment déboguer une DLL est une question commune, j'en suis sûr, mais les réponses à ces questions tendent à supposer des connaissances préalables que je n'ai pas.

+1

Allez dans les propriétés de configuration -> Déboguer et changer la "commande" à l'exécutable qui va charger votre DLL. – PaulMcKenzie

+0

Vous pouvez également vous attacher au processus existant Déboguer -> Attacher au processus – Unick

Répondre

1

Vous devez modifier le champ Commande dans les propriétés de débogage de votre projet. Faites un clic droit sur votre projet dans l'explorateur de solution et cliquez sur Propriétés (c'est généralement le dernier élément). Ouvrez la page Débogage sous Propriétés de configuration. Le champ Commande indique quel exécutable lancer lors du débogage. Par défaut, il contient $ (TargetPath) qui fait référence au binaire final que votre projet compile. Ceci est inutile pour les DLL puisque les DLL ne sont pas exécutables. Changez ceci au chemin de n'importe quelle application de tiers pour laquelle vous écrivez un plugin.

Avec cette modification, le lancement avec le débogage lancera réellement l'application tierce et y attachera le débogueur. Une fois que l'application charge votre plugin, vous pourrez le déboguer normalement.

1

Pour Visual Studio,

  1. En Solution Explorer, clic droit sur le projet et sélectionnez Properties.
  2. Dans Properties, choisissez Configuration Properties -> Debugging. Pour Command, entrez le chemin complet de l'exécutable qui chargera votre DLL. Remplissez le Command Arguments et Working Directory en conséquence.

En outre, vous devez vous assurer que l'exécutable charge réellement la DLL que vous construisez. Une erreur que beaucoup font est de lancer leur exécutable, et ne pas réaliser que l'exécutable charge une autre version de la DLL qu'ils essayent de déboguer. Cela peut arriver du fait que Windows recherche la première DLL trouvée en utilisant la logique de recherche DLL (répertoire exe, chemin, etc.).