|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.02.2019, 03:57 | #1 |
Пользователь
Регистрация: 20.10.2018
Сообщений: 16
|
Смена стандартного каталога программы при отладке
Не могу решить следующую проблему: когда запускаю свое написанное консольное приложение - все прекрасно работает, причем работает независимо от того на какой конфигурации я собирал проект (debug или release), но когда я запускаю через студию, через отладку (локальный отладчик windows) - приложение отказывается работать. как выяснилось проблема в том, что при отладке изменяется стандартный каталог программы. дело в том, что для работы моей программы прежде читает конфиг: ifstream ind; ind.open( "config.cfg" ); этот конфиг лежит в папке с исполняемым файлом, но почему-то мое приложение в упор не видит этот файл при запуске через отладку (когда запускаю через exe - то все прекрасно видит). я изменил "config.cfg" на конкретный путь и все заработало, почти. а "почти" потому, что кроме конфига мое приложение читает еще очень много других файлов, которые лежат в каталоге с exe и менять путь в коде для каждого файла как-то не очень правильно, я считаю...
так вот, вопрос такой, как это исправить? как поменять этот самый стандартный каталог? почему стандартный каталог при отладке не соответствует стандарт стандартному каталогу при запуске через exe ? чтобы проверить что не так, я использовал функции GetCurrentDir(cCurrentPath, sizeof(cCurrentPath)) - показала одинаковый путь при запуске с отладкой и при обычном. а вот функция GetModuleFileName(NULL, buffertest2, sizeof(buffertest2) / sizeof(buffertest2[0])); при отладке вместо D:\my_project\project.exe показала D:\my_project\scr\...\project.exe мне кажется проблема в этом, и понятно почему, но можно это как-то пофиксить? исходные файлы я переносить не хочу, и путать их вместе с exe тоже |
08.02.2019, 04:39 | #2 |
Пользователь
Регистрация: 20.10.2018
Сообщений: 16
|
ха, даже при изменении каталога выходного файла в конфигурации проекта (функция начинает показывать GetModuleFileName такойже путь при отладке, как и при запуске через exe) - проблема не уходит
|
08.02.2019, 07:40 | #3 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
08.02.2019, 08:39 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Ничего не меняется, нужный путь указывается в настройках отладчика и по умолчанию равно пути, где собирается приложение. У вас явно в настройках есть "..".
Поменяйте настройки да и исправьте приложение - мало ли как потребители будут его запускать... |
08.02.2019, 11:51 | #5 |
Пользователь
Регистрация: 20.10.2018
Сообщений: 16
|
в конфигурации приложение>отладка>рабочий каталог>$(TargetDir) и все как надо заработало, всем спасибо, при том что в самом TargetDir я не убирал ".."!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помощь в отладке программы | Bar$ | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 08.02.2017 13:20 |
команда cd, смена текущего каталога в cmd через chdir.exe | crosby87 | Общие вопросы C/C++ | 3 | 27.11.2013 00:05 |
ИС при отладке программы | Svensson | Помощь студентам | 1 | 12.11.2008 00:28 |
Смена базового каталога диска в Вин ХР про | Alpa | Windows | 3 | 23.09.2007 19:13 |