Sdílet prostřednictvím


Identifikace funkcí v knihovnách DLL

Identita funkce knihovny DLL se skládá z následujících prvků:

  • Název nebo pořadové číslo funkce

  • Název souboru DLL, ve kterém lze najít implementaci

Například zadání MessageBox funkce v User32.dll identifikuje funkci (MessageBox) a její umístění (User32.dll, User32 nebo user32). Programovací rozhraní aplikace Microsoft Windows (Rozhraní API systému Windows) může obsahovat dvě verze každé funkce, která zpracovává znaky a řetězce: 1 bajtovou verzi ANSI a dvoubajtů znakovou verzi Unicode. Pokud není zadána, znaková sada reprezentovaná polem CharSet je výchozí hodnota ANSI. Některé funkce můžou mít více než dvě verze.

MessageBoxA je vstupní bod ANSI pro MessageBox funkci; MessageBoxW je verze Unicode. Názvy funkcí pro konkrétní knihovnu DLL, například user32.dll, můžete zobrazit spuštěním různých nástrojů příkazového řádku. Můžete například použít dumpbin /exports user32.dll nebo link /dump /exports user32.dll získat názvy funkcí.

Nespravovanou funkci můžete ve svém kódu pojmenovat, jak chcete, pokud nový název namapujete na původní vstupní bod v souboru DLL. Pokyny k přejmenování nespravované funkce knihovny DLL ve spravovaném zdrojovém kódu najdete v tématu Určení vstupního bodu.

Platform Invoke umožňuje řídit značnou část operačního systému voláním funkcí v rozhraní Windows API a dalších knihovnách DLL. Kromě rozhraní API pro Windows je k dispozici celá řada dalších rozhraní API a knihoven DLL prostřednictvím volání platformy.

Následující tabulka popisuje několik běžně používaných knihoven DLL v rozhraní API systému Windows.

knihovna DLL Popis obsahu
GDI32.dll Funkce rozhraní GDI (Graphics Device Interface) pro výstup zařízení, jako jsou funkce pro správu výkresu a písma.
Kernel32.dll Funkce operačního systému nízké úrovně pro správu paměti a zpracování prostředků
User32.dll Funkce pro správu systému Windows pro zpracování zpráv, časovače, nabídky a komunikaci

Kompletní dokumentaci k rozhraní API systému Windows najdete v sadě SDK platformy. Příklady, které demonstrují, jak sestavit deklarace založené na .NET, které se mají použít s platformním voláním, najdete v části Marshalling Data with Platform Invoke.

Viz také