Путь к папке файла программы.
От: Mobster  
Дата: 05.07.01 09:43
Оценка:
Привет!!!

Кто подскажет как программно узнать путь к папке, где находится сам exe-модуль программы?
Пробовал через CWinApp->m_lpCmdLine, но насколько понял, там содержаться только параметры командной строки.

Заранее благодарю!!!
Re: Путь к папке файла программы.
От: Willi  
Дата: 05.07.01 09:51
Оценка: +1
Здравствуйте Mobster, вы писали:

M>Привет!!!


M>Кто подскажет как программно узнать путь к папке, где находится сам exe-модуль программы?

M>Пробовал через CWinApp->m_lpCmdLine, но насколько понял, там содержаться только параметры командной строки.

M>Заранее благодарю!!!


DWORD GetModuleFileName(
HMODULE hModule, // handle to module
LPTSTR lpFilename, // file name of module
DWORD nSize // size of buffer
);

The GetModuleFileName function retrieves the full path and file name for the file containing the specified module.
\/\/i||i
Re[2]: Путь к папке файла программы.
От: IT Россия linq2db.com
Дата: 05.07.01 11:12
Оценка: 1 (1)
W>The GetModuleFileName function retrieves the full path and file name for the file containing the specified module.


а отрезать лишнее можно так

char path_buf[_MAX_PATH];
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];

::GetModuleFileName(NULL,path_buf,sizeof(path_buf)-1);
_splitpath(path_buf,drive,dir,0,0);
_makepath(path_buf,drive,dir,0,0);
Если нам не помогут, то мы тоже никого не пощадим.
Re: Путь к папке файла программы.
От: Аноним  
Дата: 05.07.01 22:34
Оценка: -1
Здравствуйте Mobster

CString MyAppExeName = ::AfxGetApp()->m_pszExeName;

Чего уж проще... :)
Re[2]: Путь к папке файла программы.
От: Mobster  
Дата: 06.07.01 02:23
Оценка:
Здравствуйте Аноним, вы писали:

А>Здравствуйте Mobster


А>CString MyAppExeName = ::AfxGetApp()->m_pszExeName;


А>Чего уж проще... :)



Да мне и не нужно знать имя модуля.
Я спрашивал про путь к папке, где находится модуль.
Читать вопрос надо внимательнее :-))))))
Re: Спасибо всем!!!
От: Mobster  
Дата: 06.07.01 02:27
Оценка:
Re[3]: Путь к папке файла программы.
От: Корнилов Григорий Петрович http://kornilow.newmail.ru
Дата: 09.07.01 06:15
Оценка:
Здравствуйте IT, вы писали:

W>>The GetModuleFileName function retrieves the full path and file name for the file containing the specified module.



IT>а отрезать лишнее можно так


IT> char path_buf[_MAX_PATH];

IT> char drive[_MAX_DRIVE];
IT> char dir[_MAX_DIR];

IT> ::GetModuleFileName(NULL,path_buf,sizeof(path_buf)-1);

IT> _splitpath(path_buf,drive,dir,0,0);
IT> _makepath(path_buf,drive,dir,0,0);

Shlwapi.dll с функциями !
Re: Путь к папке файла программы.
От: FoxProg  
Дата: 09.07.01 07:14
Оценка:
Здравствуйте Mobster, вы писали:

M>Привет!!!


M>Кто подскажет как программно узнать путь к папке, где находится сам exe-модуль программы?

M>Пробовал через CWinApp->m_lpCmdLine, но насколько понял, там содержаться только параметры командной строки.

M>Заранее благодарю!!!




// Хоть Вы уже и получили ответ на Ваш вопрос, но все же пусть будет до кучи


// Для VC++ с MFC
CString startupdir()
{
CString path = _pgmptr;
int f;

if ((f = path.ReverseFind('\\')) != -1)
{
path = path.Left(f);
}
return path;
}



/////////////////////////////////////////////////////////////////


// Для консольных VC++, BC 3.1
char *startupdir()
{
char *exename;
char *retvalue; //[MAXPATH];

retvalue=new char[MAXPATH+1];

#ifdef _MSC_VER
exename=_pgmptr;
#else
exename=_argv[0];
#endif

char *i;
if ((i=strrchr( exename, '\\' ))==NULL)
{
*retvalue=0;
}
else
{
memcpy( retvalue, exename, i-exename );
retvalue[i-exename]=0;
}
return retvalue;
}


// Примечание для варианта номер 2:
// использовать так:

char *dirname = startupdir();
.........
.........
.........
delete []dirname;

Сергей Абросимов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.