A dll a programban Visual C


Szöveg verzió: 2.0

Sokan tudják, hogy van két alapvető módja van a DLL a programba - explicit és implicit.

Az explicit kapcsolat (explicit összekapcsolása) az alkalmazás kéri a LoadLibrary függvény betölti a DLL, majd a GetProcAddress funkciót kapunk egy mutatót a kívánt funkciót (vagy változó), és miután dolgozik velük a FreeLibrary kirak a könyvtár, és hagyják el a forrásokat.







A Visual C ++ 6.0 van egy másik módja annak, hogy csatlakozni DLL, amely egyesíti szinte minden előnye a két módszer a korábban tárgyalt - elhalasztották loading DLL (delay-terhelés DLL). Késleltetett terhelési támogatását igényli az operációs rendszer (és így működne, még a Windows 95), és végre egy kapcsoló Visual C ++ 6.0. Ha lusta rakodási a DLL betöltése csak akkor, ha az alkalmazás kapcsolódik az egyik funkció bennük. Ez átlátszó, a programozó számára (azaz oka LoadLibrary / GetProcAddress nem szükséges). A munka végeztével könyvtári funkciókat befejeződött, akkor a memóriában maradnak, vagy letöltés útján __FUnloadDelayLoadedDLL funkciót. Calling ezt a funkciót - az egyetlen kódváltoztatások, amelyek szükségesek lehetnek ahhoz, hogy a programozó (szemben az implicit kapcsolat DLL). Ha a szükséges DLL nem található, az alkalmazás összeomlik, de itt a helyzet lehet korrigálni, fogása kivétel alkalmazásával __try / __ kivéve építési. Mint látható, lusta rakodási DLL - egy nagyon praktikus eszköz a programozó.







Ezen kívül azt feltételezzük, hogy az import könyvtár tartalmazza MyDll.lib fájlt.

implicit kapcsolat

Ez a legegyszerűbb módja DLL programunk. Minden amire szükségünk van -, hogy adja át az összekötő importálja a könyvtár nevét, hogy ő használta a gyártási folyamatban. Ezt meg lehet tenni a különböző módokon.

Először is, akkor közvetlenül hozzá MyDll.lib fájlt a projekt team keresztül Projekt-> Hozzáadás Projekt-> Files. Másodszor, akkor adja meg a könyvtár nevét importálni linker lehetőségeket. Ehhez nyissa meg a projekt beállítások ablak (Projekt-> Beállítások). És hozzá az Object / Library modulok fül Link name MyDll.lib. Végül, akkor beágyaz egy linket az import könyvtár közvetlenül a forráskód a program. Erre a célra az irányelv #pragma c gombot megjegyzést. A mi esetünkben ez szükséges beszúrni egy sort a program:

Most már használhatja a programot a változók, függvények és osztályok szereplő DLL, mintha egy statikus könyvtár. Például: