Inicializace knihovny DLL
Obvykle se knihovna DLL inicializuje kódem (jako přidělování paměti), který musí být spuštěn při načtení knihovny DLL. Když používáte aplikaci Visual C++, kde přidáte kód k inicializaci vaší knihovny DLL, závisí knihovna DLL na typu, který vytváříte. Pokud nepotřebujete přidat kód inicializace nebo ukončení, nemusíte při vytváření knihovny DLL udělat nic zvláštního. Potřebujete-li vaši knihovnu DLL inicializovat, následující tabulka popisuje, kam svůj kód přidáte.
Typ adres DLL |
Kde přidat kód inicializace a ukončení |
---|---|
Obvyklá knihovna DLL |
V objektech knihoven DLL CWinApp InitInstance a ExitInstance. |
Rozšířená knihovna DLL |
Ve funkci DllMain vytvořené průvodcem MFC DLL. |
Non-MFC knihovna DLL |
Ve funkci nazvané DllMain které poskytnete. |
V systému Win32 mohou všechny knihovny DLL obsahovat funkci vstupního bodu (obvykle nazvaný DllMain), která je volána pro inicializaci a ukončení. To vám dává možnost k přidělení nebo uvolnění dalších prostředků podle potřeby. Systém Windows volá funkci vstupního bodu ve čtyřech situacích: přidělení procesu, odebrání procesu, přidělení vlákna a odebrání vlákna.
Knihovna jazyka C poskytuje za běhu funkci vstupního bodu nazvanou _DllMainCRTStartup volanou funkcí DllMain. V závislosti na typu knihovny DLL byste měli mít funkci nazvanou DllMain ve zdrojovém kódu nebo byste měli používat DllMain poskytovanou v knihovně MFC.
Co chcete udělat?
Co chcete vědět více?
Funkční specifikace pro DllMain (sada SDK pro systém Windows)
Funkce vstupního bodu dynamické knihovny (sady SDK systému Windows)