LoadLibrary a AfxLoadLibrary
Procesy volání LoadLibrary nebo LoadLibraryEx explicitně propojit s knihovnou DLL. (aplikace MFC používají AfxLoadLibrary nebo AfxLoadLibraryEx.) Pokud je funkce úspěšná, namapuje zadanou knihovnu DLL do adresního prostoru volajícího procesu a vrátí popisovač knihovny DLL. Popisovač se vyžaduje v jiných funkcích používaných pro explicitní propojení, GetProcAddress
například a FreeLibrary
. Další informace naleznete v tématu Explicitní propojení.
LoadLibrary
pokusí najít knihovnu DLL pomocí stejné sekvence hledání, která se používá pro implicitní propojení. LoadLibraryEx
poskytuje větší kontrolu nad pořadím cesty hledání. Další informace najdete v tématu Pořadí hledání v knihovně dynamického propojení. Pokud systém nemůže najít knihovnu DLL nebo pokud funkce vstupního bodu vrátí hodnotu FALSE, LoadLibrary
vrátí hodnotu NULL. Pokud volání LoadLibrary
určuje modul DLL, který je již namapován do adresního prostoru volajícího procesu, vrátí funkce popisovač knihovny DLL a zvýší počet odkazů modulu.
Pokud má knihovna DLL funkci vstupního bodu, operační systém volá funkci v kontextu vlákna, které volal LoadLibrary
nebo LoadLibraryEx
. Funkce vstupního bodu není volána, pokud je knihovna DLL již připojena k procesu. K tomu dochází v případě, že předchozí volání LoadLibrary
nebo LoadLibraryEx
pro knihovnu DLL nemá odpovídající volání FreeLibrary
funkce.
Pro aplikace MFC, které načítají rozšiřující knihovny DLL MFC, doporučujeme použít AfxLoadLibrary
nebo AfxLoadLibraryEx
místo LoadLibrary
nebo LoadLibraryEx
. Funkce MFC zpracovávají synchronizaci vláken před explicitně načtením knihovny DLL. Rozhraní (prototypy funkcí) a AfxLoadLibrary
AfxLoadLibraryEx
jsou stejná jako LoadLibrary
a LoadLibraryEx
.
Pokud systém Windows nemůže načíst knihovnu DLL, může se váš proces pokusit o obnovení z chyby. Může například upozornit uživatele na chybu a pak požádat o jinou cestu ke knihovně DLL.
Důležité
Nezapomeňte zadat úplnou cestu všech knihoven DLL. Aktuální adresář může být prohledána jako první při načtení LoadLibrary
souborů . Pokud cestu k souboru plně nekvalifikujete, může být načten jiný soubor, než je zamýšlený soubor. Při vytváření knihovny DLL použijte možnost linkeru /DEPENDENTLOADFLAG k určení pořadí hledání pro staticky propojené závislosti knihovny DLL. V rámci knihoven DLL použijte obě úplné cesty k explicitně načtené závislosti a LoadLibraryEx
nebo AfxLoadLibraryEx
parametry volání k určení pořadí hledání modulu. Další informace najdete v tématu Zabezpečení knihovny Dynamic-Link a Pořadí hledání dynamické knihovny odkazů.