Как в MFC узнать путь к своей программе?
От: Ceazare  
Дата: 03.06.05 11:15
Оценка:
CWinApp::m_pszExeName хранит только название программы. А как узнать полный путь к программе? Не искать же по исполняемому файлу.

06.06.05 09:07: Перенесено из 'C/C++. Прикладные вопросы'
Re: Как в MFC узнать путь к своей программе?
От: Константин http://flint-inc.ru/
Дата: 03.06.05 11:20
Оценка:
Здравствуйте, Ceazare, Вы писали:

C>CWinApp::m_pszExeName хранит только название программы. А как узнать полный путь к программе? Не искать же по исполняемому файлу.


GetModuleFileName.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re: Как в MFC узнать путь к своей программе?
От: _nn_  
Дата: 03.06.05 14:18
Оценка:
Здравствуйте, Ceazare, Вы писали:

C>CWinApp::m_pszExeName хранит только название программы. А как узнать полный путь к программе? Не искать же по исполняемому файлу.


Недокуметированный __targv[0]
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: Как в MFC узнать путь к своей программе?
От: Аноним  
Дата: 03.06.05 16:00
Оценка:
Я ище нашел _pgmptr тоже хранит путь. Вот напредумают таких переменных. не легче былобы проще зделать функцию GetFullAppPath()
Re[2]: Как в MFC узнать путь к своей программе?
От: Кодт Россия  
Дата: 04.06.05 15:13
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Недокуметированный __targv[0]


А вот не факт, что argv[0] содержит именно полный путь. Можно поиграться с CreateProcess, ShellExecute и другими способами запуска программы.

Пример:
#include <stdio.h>
int main(int argc, char* argv[]) { printf("it is %s\n", argv[0]); return 0; }

и запускаем его
c:\test> t
it is c:\test\t.exe

c:\test> call T
it is T

c:\test> call .\t
it is .\t


Так что GetModuleFileName — пожалуй, наиболее грамотный ход. Во всяком случае, подделать путь можно только по-хакерски (будем надеяться, что мы сами себе не враги).
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.