CWinApp::m_pszExeName хранит только название программы. А как узнать полный путь к программе? Не искать же по исполняемому файлу.
06.06.05 09:07: Перенесено из 'C/C++. Прикладные вопросы'
Здравствуйте, Ceazare, Вы писали:
C>CWinApp::m_pszExeName хранит только название программы. А как узнать полный путь к программе? Не искать же по исполняемому файлу.
GetModuleFileName.
Здравствуйте, Ceazare, Вы писали:
C>CWinApp::m_pszExeName хранит только название программы. А как узнать полный путь к программе? Не искать же по исполняемому файлу.
Недокуметированный __targv[0]
Здравствуйте, _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 — пожалуй, наиболее грамотный ход. Во всяком случае, подделать путь можно только по-хакерски (будем надеяться, что мы сами себе не враги).