Получить исполняющий каталог в C ++ - PullRequest
1 голос
/ 14 июня 2010

У меня есть файл .CAB, который запускается как часть процесса установки на компьютере под управлением Windows CE.CAB написан на C ++.

Файл CAB запускается дважды как часть процесса обновления, но в разных местах в разное время.Как я могу узнать, из какого каталога выполняется файл .CAB (исполняющий каталог) только с использованием C ++?

Спасибо

1 Ответ

4 голосов
/ 14 июня 2010

Если под «только C ++» вы имеете в виду, не используя Windows API, я не думаю, что в стандартной библиотеке есть функция для этого.

Если вы можете вызвать Win32 API, вам просто нужно вызватьGetModuleFileName() с NULL в качестве первого параметра, и вы получите путь к текущему исполняемому файлу.

Теперь проблема в том, что мы запускаем .CAB, что такое исполняемый файл?Установочная DLL, извлеченная из .CAB, или компонента оболочки, на котором выполняется .CAB?

Вы также можете попробовать GetCommandLine(), поскольку первая запись должна быть путем / именем исполняемого файла (на самом деле этострока передана в CreateProcess(), поэтому вы не можете быть на 100% уверены в этом).

...