Changer le répertoire de travail actuel VS13?

Comme indiqué dans ce message, le répertoire de travail lorsque je débogue mon programme SDL est relatif au .vcproj au lieu du .exe (qui devrait être IMO)

Je me demande donc si je peux de toute façon changer cela. Ainsi, lorsque j’appuierai sur F5, le chemin sera relatif au fichier .exe et non .vcproj? La solution actuelle (relativement facile) que j’utilise consiste à ouvrir simplement le dossier et à démarrer le programme à partir de là, mais je préférerais de loin le fait d’appuyer simplement sur F5.

La réponse naïve à votre question est que vous pouvez définir l’option Répertoire de travail dans les propriétés de configuration de débogage sur $(TargetDir) . Le paramètre par défaut est $(ProjectDir) et, par défaut, le répertoire du projet n’est pas celui où le fichier exécutable est sorti. Cependant, je ne vous recommande pas de prendre cette option, comme je l’explique ci-dessous.

Vous essayez de résoudre ce problème dans le mauvais sens. Votre problème fondamental est que vous supposez que le répertoire de travail est identique au répertoire qui contient le fichier exécutable. Il n’y a aucune raison pour que cela soit, et vous ne devriez pas vous en fier un. Vous savez que les fichiers se trouvent dans le même répertoire que l’exécutable, vous devez donc y chercher plutôt que le répertoire de travail, qui est parfois, par coïncidence, identique au répertoire exécutable.

Ainsi, au lieu de compter sur l’appelant du processus qui configure le répertoire de travail à votre guise, rendez votre programme indépendant du répertoire de travail. Vous indiquez que vous souhaitez utiliser des fichiers dont vous connaissez l’emplacement par rapport au répertoire exécutable. Donc, il y a la réponse. Construisez des chemins d’access complets à vos fichiers, en utilisant le répertoire contenant l’exécutable comme base.

Si vous devez connaître l’emplacement de l’exécutable, appelez GetModuleFileName() et GetModuleFileName() le nom du fichier. Ce qui vous rest est le répertoire qui contient votre exécutable. Combinez cela avec le chemin relatif de vos fichiers et votre code est maintenant indépendant du répertoire de travail.