Как получить путь к exexuter в C ++? - PullRequest
0 голосов
/ 24 декабря 2010

Я использую Visual studio 2008 и хочу получить абсолютный путь к файлу .exe? то есть когда пользователь открывает exe-файл, мне нужно знать его абсолютный путь ??

заранее спасибо

Ответы [ 3 ]

3 голосов
/ 24 декабря 2010

Под Windows попробуйте следующее:

char ExeName[8192]; // or what ever max. size you expect.

if (0 != GetModuleFileName (NULL, ExeName, sizeof (ExeName)))
{
  printf ("Your array was probably not large enough. Call GetLastError for details\n");
}

Если вы компилируете для Unicode, используйте wchar_t.

1 голос
/ 24 декабря 2010

Если вы хотите получить путь к текущему процессу, вы должны использовать функцию API:

GetModuleFileName

Но, если вы хотите получить полный путь к процессу, который вы не написали,use

GetModuleFileNameEx

Выше функция ожидает на один аргумент больше, чем GetModuleFileName - это HANDLE процесса, путь которого предполагается получить.Более подробно это объясняется на MSDN .

1 голос
/ 24 декабря 2010

Использование глобальной переменной _pgmptr или _wpgmptr, вероятно, самый простой способ. * (Они находятся в stdlib.h.)

* Примечание: при некоторых довольно редких обстоятельствах возможно, что это не сработает ... в этом случае используйте GetModuleFileName(NULL, ...);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...