![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
victoria1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 6.9.2012 Репутация: нет Всего: нет |
Имеется крупный и сложный код под win (более 500 файлов в исходниках). Результат работы этой программы пишется в файл в домашнюю директорию запустившего пользователя, в папку application data. и этот путь записи где-то прописан в коде программы, не в каких-либо конфигфайлах. как найти, отследить место в коде где устанавливается папка записи?
Поиском ключевых слов вроде application data и др. во всех файлах исходника это сделать не удалось. Найти это нужно с целью изменить папку записи на папку из которой запускается программа. |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
Там где пишется должно быть что-то подобное: [f]open - открытие файла; [f]write или fprintf или out << запись в файл; [f]close - закрытие файла.
Но имя файла может задаваться где-нибудь с совершенно другом месте, например в readConfig(); |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Я уверен, что путь не прошит жестко в коде программы. Он берется из реестра текущего пользователя. На твоем бы месте, я начал бы не с поиска имени папки, а с поиска места записи в этот файл. Затем, зная как называется дескриптор файла, я бы по нему нашел место, где он создается. А там уже рядом должно быть и открытие файла (генерация имени файла). |
|||
|
||||
victoria1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 6.9.2012 Репутация: нет Всего: нет |
Программа консольная и работает без установки. И похоже что не использует реестр. На любой машине без установки работает. состоит из одного exe файла. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
На каком основании сделан такой вывод?
Добавлено через 11 минут и 45 секунд Кстати. Мы тебе не сможем больше ничего полезного подсказать. Найди место записи в файл (если файл текстовый, то ищи по фразам, что программа туда пишет), а затем место создания этого файла. больше ничем не можем быть тебе полезными. |
|||
|
||||
victoria1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 6.9.2012 Репутация: нет Всего: нет |
Нашлось!
Там путь формируется на основе:
Но сразу возник вопрос, а в какой переменной окружения windows содержится путь исполняемого через консоль файла? т.е. аналог pwd unix. как этот путь указать? |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
изучай GetModuleFileName()
|
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
lpCmdLine из WinMain начинается с имени файла
Это сообщение отредактировал(а) bems - 7.9.2012, 13:25 -------------------- Обижено школьников: 8 |
|||
|
||||
victoria1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 6.9.2012 Репутация: нет Всего: нет |
Всем спасибо.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |