Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: pekfos
Udoskonalił: Piotr DejaVu Szawdyński
Biblioteki C/C++

GetModuleFileName

[funkcja] Pobiera pełną ścieżkę do pliku, który zawiera wskazany moduł.

Składnia

C/C++
#include <windows.h>

DWORD WINAPI GetModuleFileName(
HMODULE hModule,
LPTSTR lpFilename,
DWORD nSize
);

Argumenty

ArgumentOpis
HMODULE hModuleUchwyt do załadowanego modułu, którego chcemy odczytać ścieżkę. Jeśli wartość tego argumentu zostanie ustawiona na NULL to funkcja zwróci ścieżkę do pliku wykonywalnego aktualnego procesu.
LPTSTR lpFilenameWskaźnik na bufor do którego zostanie zapisana ścieżka.
DWORD nSizeRozmiar bufora wyrażony w liczbie znaków (TCHAR).

Zwracana wartość

Zwraca liczbę skopiowanych znaków do bufora (nie licząc znaku terminalnego) w przypadku sukcesu. Jeżeli bufor wyjściowy jest zbyt mały aby pomieścić ścieżkę to funkcja:
  • ucina kopiowany łańcuch do nSize znaków (łańcuch będzie zakończony znakiem terminalnym);
  • ustawia kod błędu na ERROR_INSUFFICIENT_BUFFER;
  • zwraca wartość przekazaną przez argument nSize.
Funkcja zwraca wartość 0 w przypadku wystąpienia innego błędu. Aby otrzymać rozszerzone informacje o błędzie, wywołaj funkcję » WinAPIGetLastError.

Opis szczegółowy

Funkcja pobiera pełną ścieżkę do pliku, który zawiera wskazany moduł. Wskazany moduł musi być załadowany przez aktualny proces. Aby określić ścieżki do modułów innego procesu, użyj funkcji GetModuleFileNameEx.

W przypadku gdy moduł DLL jest załadowany przez dwa różne procesy, to ścieżka do niego w jednym z procesów może się różnić w stosunku do tej w drugim procesie.

Wymagania

Minimalny obsługiwany klientWindows 2000 Professional
Minimalny obsługiwany serwerWindows 2000 Server
Bibliotekakernel32.lib
DLLkernel32.dll

Przykład

C/C++
#include <windows.h>
#include <cstdio>

int main()
{
    char buffer[ MAX_PATH ];
    ::GetModuleFileNameA( NULL, buffer, MAX_PATH );
    printf( "path: %s\n", buffer );
    return 0;
}

Linki zewnętrzne