Как получить исполнимое имя приложения в WindowsC ++/CLI?

19
задан Deduplicator 9 March 2015 в 12:52
поделиться

5 ответов

Звоните GetModuleFileName () использование 0 как дескриптор модуля.

Примечание: Вы можете также использовать argv [0] параметр к основному или называть GetCommandLine (), если нет никакого основного. Однако имейте в виду, что эти методы не обязательно дадут Вам полный путь к исполняемому файлу. Они отдадут ту же строку символов, которая использовалась для запуска программы. Вызов GetModuleFileName () будет всегда давать Вам полный путь & имя файла.

36
ответ дан 30 November 2019 в 02:12
поделиться

Ответ Ferruccio хорош. Вот некоторый пример кода:

TCHAR exepath[MAX_PATH+1];

if(0 == GetModuleFileName(0, exepath, MAX_PATH+1))
    MessageBox(_T("Error!"));

MessageBox(exepath, _T("My executable name"));
11
ответ дан 30 November 2019 в 02:12
поделиться

Используйте argv аргумент main:

int main(int argc, char* argv[])
{
    printf("%s\n", argv[0]);  //argv[0] will contain the name of the app.
    return 0;
}

Вы, возможно, должны просканировать строку для удаления информации о каталоге и/или расширений, но имя будет там.

8
ответ дан 30 November 2019 в 02:12
поделиться

Используйте __ argv [0]

4
ответ дан 30 November 2019 в 02:12
поделиться

Существует статический метод для блока, который получит его для Вас в.NET.

Assembly.GetEntryAssembly().FullName

Редактирование: Я не понял, что Вы хотели имя файла... можно также получить это путем вызова:

Assembly.GetEntryAssembly().CodeBase

, Который получит Вас полный путь к блоку (включая имя файла).

3
ответ дан 30 November 2019 в 02:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: