Ответ 1
Вы можете сделать это с помощью функции GetModuleFileName.
TCHAR szFileName[MAX_PATH + 1];
GetModuleFileName(NULL, szFileName, MAX_PATH + 1)
Возможный дубликат:
Как получить исполняемое имя приложения в Windows (С++ Win32 или С++/CLI)?
Как получить текущее имя и путь файла экземпляра из моего собственного приложения win32 на С++?
Например; если мое приложение было C:\Проекты\testapps\getapppath.exe он мог бы сказать, что путь C:\Проекты\testapps\getapppath.exe
Вы можете сделать это с помощью функции GetModuleFileName.
TCHAR szFileName[MAX_PATH + 1];
GetModuleFileName(NULL, szFileName, MAX_PATH + 1)
GetCurrentProcess, затем QueryFullProcessImageNameзабастовкa >
Другие ответы лучше для вашего собственного процесса - это предпочтительнее для удаленных. Per документы:
Чтобы получить имя модуля текущий процесс, используйте Функция GetModuleFileName с NULL ручка модуля. Это более эффективно чем называть Функция GetProcessImageFileName с дескриптор текущего процесса.
Чтобы получить имя основного исполняемый модуль для удаленного процесса в формате пути win32, используйте Функция QueryFullProcessImageName.
UPDATE: работает только для консольных приложений!
Путь программы передается как первый аргумент, он хранится в argv[0]
в функции main(argc, argv[])
.
Испытано:
int _tmain(int argc, _TCHAR *argv[])
{
_tprintf(L"%s", argv[0]);
return 0;
}
Печать полного пути.