BOOL APIENTRY DllMain - vstupný bod alebo vstupná funkcia knižnice (entry point). Túto funkciu volá systém automaticky, ak je načítaná do pamäte alebo naopak, ak je z pamäte odstránená. (Teda drevorubačsky povedané, ak je nejaky program, ktorý danú knižnicu používa, spustený alebo ak ho vypneme).
switch (reason) - reason je dôvod, prícina, kedy došlo k načítaniu/odstráneniu z pamäte. Tu môžeš použiť tieto hodnoty:
DLL_PROCESS_ATTACH (01h) - knižnica je načítaná do pamäte, kde je aj proces, ktorý knižnicu používa.
DLL_PROCESS_DETACH (00h) - knižnica je odstránená z pamäte, kde je aj proces, ktorý knižnicu používa.
// nasledujúce dve hodnoty nemusíš ovládať, pretože ako začiatočník sa s nimi asi nestretneš
DLL_THREAD_ATTACH (02h) - proces, ktorý knižnicu používa, vytvoril nový thread.
DLL_THREAD_DETACH (03h) - proces, ktorý knižnicu používa, zrušil thread.
Tento vstupný bod knižnice sa zvyčajne používa na inicializácie premenných, ale môže celý ostať prázdny.
Keďže DLL knižnica sa používa (hlavne) na exportovanie funkcií, takže za entry point-om nasledujú funkcie, ktoré potom v inom module načítavaš.
Funkciu exportuješ takto:
Kód:
extern "C" __declspec(dllexport)
int WINAPI tvojaFunkcia(int parameter1);
kde tvojaFunkcia je názov funkcie (int pred WINAPI zmeň podľa návratovej hodnoty tvojej funkcie) a parameter1 je parameter predávaný funkcii. Ak je ich viac, alebo žiadne nemá, tak to patrične uprav.