apel Dll funcția c
DLL (în engleză Dynamic-Link Library -. Dynamic Link Library) - implementat de Microsoft partajate bibliotecile pe Windows și bibliotecile OS / 2. În mod normal, au extensia de fișier *. dll, *. OCX (pentru bibliotecile care conțin controale ActiveX) sau *. DRV (drivere versiuni mai vechi ale sistemului de operare). Structura DLL este același ca în PE-fișiere (Portable Executable) pentru 32-64 de biți Windows, și New-Executable (NE) pentru 16 biți pentru Windows. DLL poate conține cod, date și resurse în orice combinație.
intrare populare
Diverse programe de mediu Multiscreen efectua de multe ori aceleași acțiuni, de exemplu, o cruce în colțul din dreapta sus al ferestrei pentru a închide, este atras în mod egal de cele mai multe programe. Ar fi inutil să se fiecare dintre aceste programe a fost funcția corespunzătoare - ar fi fanned mărimea lor. Prin urmare, este rezonabil ca astfel de funcții acționat în uz comun. Pentru aceasta sunt biblioteca cu legare dinamică. Funcțiile corespunzătoare sunt încărcate în memoria calculatorului din fișierul program, dar din dosar special este deja în execuție. De fapt, sistemul de operare nu le încărcați din nou. Dacă executați programul necesită încărcarea bibliotecilor dinamice, verificările sistemului de operare, o astfel de bibliotecă este deja în memorie. Dacă este, sistemul de operare crește contorul pentru clienții din unitatea de link-ul de bibliotecă dinamică. La finalizarea lucrărilor, programul indică sistemului de operare de necesitatea de a descărca biblioteca partajată. În acest caz, sistemul de operare reduce contorul de client de către unul. În cazul în care, după această reducere a numărului de clienți ajunge la zero, atunci biblioteca dinamică este într-adevăr descărcate din memoria calculatorului.
Pe Windows, bibliotecile dinamice sunt stocate în fișiere cu extensia *. dll. În plus față de subrutina pot fi stocate și în alte resurse, cum ar fi pictogramele ilibitmapy. În codul aplicație care utilizează o funcție dintr-o bibliotecă de legături dinamice, încărcarea și descărcarea bibliotecii trebuie să fie înregistrate imediat. Compilatorul nu este necesar codul funcție conținute în bibliotecile partajate. Când începe programul, se poate, cu toate acestea, uita-te pentru dll corespunzătoare. Dacă acest dll nu a fost găsit pe calculator, programul va fi, în general, nu se efectuează, și afișează un mesaj despre absența unei biblioteci dinamice link-ul.
Odată selectat, introduceți un nume și faceți clic pe OK, apoi faceți clic pe Următorul și alegeți tipul Application „bibliotecă DLL.“
Apoi, va ajunge la fișierul în cazul în care doriți să scrieți un program dll.
Exemplu de fișier DLL scris
Cel mai simplu exemplu de cod este după cum urmează:
#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)
PARAM reveni;
>
O funcție afișează un mesaj, celelalte returnează valoarea primite.
Apoi, va compila dll și a obține 2 fișiere: .. dll și *** *** lib (în exemplul meu va dll.dll și dll.lib), atunci trebuie să creați un fișier antet (*** h în mină. de exemplu, se va dll.h), care specifică funcțiile care sunt în acest fișier DLL.
Un exemplu de a scrie în fișierul antet:
void LetterList ();
int PutInt (int param);
În ea, vom descrie un prototip al funcțiilor noastre. Acest fișier pe care îl introduceți în programul dvs., care va conecta dll.
DLL funcția C ++ apel
Mulți oameni pun întrebarea: cum de a apela o funcție de dll c ++. În acest articol, vom descrie.
Deci, am compilat fișier DLL, Liberia și antetul fișierului. Toate acestea le copiem în programul nostru în cazul în care ne vom conecta dll.
Pentru a face acest lucru, creați un nou proiect: File - New - Proiect - aplicatii consola Win32 (de exemplu) - Efectuat. În acest proiect vkidyvaete în cazul în care este fișierul exe și dll.dll dll.lib și fișierul Heder (dll.h) vă vkidyvaete în cazul în care fișierele antet pentru proiectul dumneavoastră.
Fișierul rezultat vom introduce codul de program, pe care le numim cele două funcții (PutInt și LetterList)
#include "stdafx.h"
#include "dll.h"
#include
#include
int _tmain (int argc, _TCHAR * argv [])
int x = PutInt (5);
LetterList ();
Vă rugăm să rețineți că includem fișierul antet (#include „dll.h“), pe care le-am creat.
Deja există unele)))
Conectarea dll în Visual Studio
Trebuie doar să conectați fișierul. Acest lucru se face în Visual Studio, după cum urmează: - Project Properties - Kompanovschik - Intrare - Dependențe suplimentare. Acolo te face drum spre faylu.lib
În cazul meu - este: D: \ Studio \ Primer \ Debug \ dll.lib;
Acum, vă construi proiectul și pentru a obține următorul rezultat:
Asta lucrează cu dll. Eu cred că aceasta este cea mai simplă metodă de a lucra cu bibliotecile încărcate dinamic.
Deci: în acest articol, am răspuns vospros:
Ar trebui să fie așa:
* .dll și * lib la dosarul Debug și * .h în proiect.