Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2019, 03:57   #1
lallollulz
Пользователь
 
Регистрация: 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 тоже
lallollulz вне форума Ответить с цитированием
Старый 08.02.2019, 04:39   #2
lallollulz
Пользователь
 
Регистрация: 20.10.2018
Сообщений: 16
По умолчанию

ха, даже при изменении каталога выходного файла в конфигурации проекта (функция начинает показывать GetModuleFileName такойже путь при отладке, как и при запуске через exe) - проблема не уходит
lallollulz вне форума Ответить с цитированием
Старый 08.02.2019, 07:40   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
менять путь в коде для каждого файла как-то не очень правильно
Наоборот - как раз правильно. И не стандартный, а текущий или рабочий. И не факт, что запуск exe гарантирует его правильность
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.02.2019, 08:39   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от lallollulz Посмотреть сообщение
при отладке изменяется стандартный каталог программы
Ничего не меняется, нужный путь указывается в настройках отладчика и по умолчанию равно пути, где собирается приложение. У вас явно в настройках есть "..".
Поменяйте настройки да и исправьте приложение - мало ли как потребители будут его запускать...
waleri вне форума Ответить с цитированием
Старый 08.02.2019, 11:51   #5
lallollulz
Пользователь
 
Регистрация: 20.10.2018
Сообщений: 16
По умолчанию

в конфигурации приложение>отладка>рабочий каталог>$(TargetDir) и все как надо заработало, всем спасибо, при том что в самом TargetDir я не убирал ".."!
lallollulz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь в отладке программы 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