GetModuleFileName
Функция GetModuleFileName позволяет получить
полный путь для указанного модуля.
Чтобы указать процесс, который содержит
указанный модуль, прийдётся воспользоваться
функцией GetModuleFileNameEx.
DWORD GetModuleFileName(
HMODULE hModule,
LPTSTR lpFilename,
DWORD nSize
);
Параметры
- hModule
- [на входе] Дескриптор модуля, чей путь мы хотим
узнать. Если этот параметр равен NULL, GetModuleFileName
возвратит путь текущего модуля.
- lpFilename
- [на выходе] Указатель на буфер, который будет
содержать строку (завершающуюся нулём) с полным
путём модуля. Если длина пути превышает размер,
указанный в параметре nSize, то функция вернёт
путь, но он будет обрезан до nSize символа и
может не содержать в конце нулевого символа.
Windows
NT/2000/XP: Путь может иметь префикс "\\?\", в
зависимости от того, как был загружен модуль.
- nSize
- [на входе] Размер буфера lpFilename в TCHAR-ах.
Возвращаемое значение
Если функция выполнена успешно, то
возвращаемое значение, это длина строки,
скопированной в буфер в TCHAR-ах. Если буфер
слишком мал для хранения имени модуля, то строка
будет обрезана до nSize символа, а функция
вернёт значение nSize.
Если при выполнении функции возникнет ошибка,
то возвращаемое значение будет равно нулю.
Замечания
Если DLL загружена в два процесса, то её имя в
одном процессе может отличаться от имени в
другом процессе.
Для ANSI версии функции, количество TCHAR-ов, это
количество байт; для Unicode версии, это количество
символов.
Требования
Windows NT/2000/XP: Включена в Windows NT 3.1 и позже.
Windows 95/98/Me: Включена в Windows 95 и позже.
Unicode: Для Windows NT/2000/XP существует как Unicode, так и
ANSI версии.
Заголовок: Объявлена в Winbase.h; Windows.h.
Библиотека: Kernel32.lib.
|