Dll hívás c függvény
DLL (angol DLL -. Dynamic Link Library) - a Microsoft által alkalmazott osztott könyvtárakat Windows és OS / 2 Normális könyvtárak a fájl kiterjesztése *. dll, *. OCX (könyvtárak tartalmazó ActiveX kontrollok) vagy a *. drv (illesztőprogramok régebbi verziójú OS). DLL struktúra ugyanaz, mint a PE-fájlokat (Portable Executable) a 32-64 bites Windows és Új-Végrehajtható (NE) 16 bites Windows. DLL tartalmazhatnak kód, az adatok és a források, bármilyen kombinációban.
népszerű bejegyzés
Különböző programok osztott környezet sokszor azonos műveleteket hajtják végre, például egy kereszt a jobb felső sarokban az ablak bezárásához, állítják egyaránt a legtöbb program. Dolog lenne, hogy ezeket a programokat, volt a megfelelő funkciót - ez lett legyezte méretük. Ezért érthető, hogy az ilyen funkciók járt el közös használatra. Erre a könyvtár dinamikus kötés. A megfelelő funkciók töltenek be a számítógép memóriájában a program fájlt, de a speciális fájl már végrehajtás. Tény, hogy az operációs rendszer nem tölti be őket újra. Ha fut a program előírja, hogy a terhelés dinamikus könyvtárakat, az operációs rendszer ellenőrzi, így a könyvtár már a memóriában. Ha igen, akkor az operációs rendszer növeli a számláló az ügyfelek számára a dynamic link library egységet. Befejezése után a munka, a program azt mondja az operációs rendszer az igény, hogy kirak a megosztott könyvtárba. Ebben az esetben az operációs rendszer csökkenti az ügyfél számláló eggyel. Ha e csökkentés után az ügyfelek száma eléri a nullát, akkor a dinamikus könyvtár valóban kikerül a számítógép memóriájában.
Windows, dinamikus könyvtárakat tárolják kiterjesztésű fájlok *. dll. Amellett, hogy a szubrutin ott is tárolhatjuk más források, mint például ilibitmapy ikonok. Az alkalmazás-kód, amely egy funkciót a dynamic link library, be- és kirakodás a könyvtár regisztrálni kell azonnal. A fordító nem szükséges funkció kód szerepel a megosztott könyvtárakat. Amikor a program elindul, akkor azonban, keresse meg a megfelelő dll. Ha ez a dll nem található meg a számítógépen, akkor a program általában nem kell elvégezni, és megjelenít egy üzenetet hiányában a dynamic link library.
Miután kiválasztotta, adja meg a nevét, majd kattintson az OK gombra, majd kattintson a Tovább gombra, és válaszd ki az Application Type „DLL könyvtár.”
Ezután kapsz a fájlt, ahol szeretné, hogy írjon egy dll programot.
Példa az írás dll fájl
A legegyszerűbb példa a kód a következő:
#include "stdafx.h"
#include
extern "C ++" __declspec (dllexport) void LetterList ()
std :: cout <<"This function was called from LetterList() " <
extern "C ++" __declspec (dllexport) int PutInt (int param)
visszatérés param;
>
Egy függvény egy üzenetet jelenít meg, a másik visszatér kapott értéket.
Akkor összeállításához dll, és kap 2 kép: .. Dll és *** *** lib (az én például akkor dll.dll és dll.lib), akkor létre kell hozni egy fejléc fájlt (*** h az enyémben. például, akkor dll.h), amely meghatározza a funkciókat, amelyek ebben a dll fájlt.
Egy példa az írás a header fájlban:
void LetterList ();
int PutInt (int param);
Ebben leírjuk egy prototípus a funkciókat. Ez a fájl akkor beilleszteni a programba, amely összekapcsolja a dll fájlt.
DLL függvény hívás c ++
Sokan fel a kérdést: hogyan hívja a funkciót a dll fájlokat a C ++. Ebben a cikkben, azt leírni.
Tehát, már összeállított dll fájlt, Libéria és fejléc fájlt. Mindez azt másolja be a programot, ahol mi fog kapcsolódni a dll fájlt.
Ehhez hozzon létre egy új projektet: File - New - Project - konzol alkalmazások Win32 (például) - Kész. Ebben a projektben akkor vkidyvaete hol van az exe fájlt, és dll.dll dll.lib és Heder fájlt (dll.h) vkidyvaete meg, ahol a fejléc fájlokat a projekt.
Az eredményül kapott fájl belépünk a programkód, amely hívjuk a két funkció (PutInt és LetterList)
#include "stdafx.h"
#include "dll.h"
#include
#include
int _tmain (int argc, _TCHAR * argv [])
int x = PutInt (5);
LetterList ();
Felhívjuk figyelmét, hogy mi is fejléc fájlt (#include „dll.h”), amelyet azért hoztunk létre.
Már van néhány)))
Csatlakozó a dll fájlt a Visual Studio
Csak csatlakoztatni kell a fájlt. Ez úgy történik, a Visual Studio a következő: Project - Tulajdonságok - Kompanovschik - Input - További függőségek. Ott nem teszik az utat a faylu.lib
Az én esetemben - ez: D: \ stúdió \ Primer \ Debug \ dll.lib;
Most építeni a projekt, és kap a következő eredménnyel:
Ez működik a dll fájlokat. Úgy vélem, hogy ez a legegyszerűbb módszer, hogy működjön együtt dinamikusan betölthető könyvtárakat.
Tehát: ebben a cikkben, én válaszoltam vospros:
Meg kell, mint ez:
* .dll és * .lib a Debug mappában, és a * .h a projektben.