Ako použiť DLL (C++)

Na začiatok, je potrebné vedieť, že DLL súbory, teda knižnice spustiteľných skriptov sú vynikajúcou vecičkou pre programátorov. Ich využitie je veľké. Na internete však pravdepodobne nájdete len príklady, ako napr. vytvoriť takú knižnicu. V poslednom čase je takýchto príkladov hodne na Microsoft Visual Family (C++, C#, VB). No pre ľudí, ktorí začínajú programovať a chcú aby ich aplikácie bežali aj pod operačnými systémmi ako Windows 95 a neskoršie vdania vynikajúceho operačného systému Microsoft Windows. Tento príklad je vytovrený konkrétne na program Dev-C++, v ktorom je práca veľmi uľahčená.

Najskôr si teda vytvoríme DLL samotné. Minimálen potrebujeme dva súbory a to hlavičku knižnice, teda .h súbor, a potom hlavný, teda .cpp súbor. Nazvime si ich teda kniznica.h a kniznica.cpp. Obsah hlavičky bude nasledovný:

kniznica.h __declspec(dllexport) LPSTR MojeMeno();
__declspec(dllexport) int Kalkulacka(int prveCislo, int druheCislo);

Takže máme hlavičku našej knižnice, ktorú použijeme taktiež v našom testovacom programe, kde si overím, ako naša knižnica bude fungovať. Teraz samotný skript súboru kniznica.cpp

kniznica.cpp #include <windows.h>
#include "kniznica.h"
__declspec(dllexport) BOOL
APIENTRY DllMain(HANDLE hModule,
                 DWORD  ul_reason_for_call,
                 LPVOID lpReserved)
{
   switch (ul_reason_for_call)
   {
   case DLL_PROCESS_ATTACH:
   case DLL_THREAD_ATTACH:
   case DLL_THREAD_DETACH:
   case DLL_PROCESS_DETACH:
      break;
   }
   return TRUE;
}

__declspec(dllexport) LPSTR MojeMeno()
{
   return "Moje meno je Matej";
}

__declspec(dllexport) int Kalkulacka(int prveCislo, int druheCislo)
{
   return prveCislo*druheCislo;
}

V tomto súbore teda mám definované dve funkcie a to MojeMeno(), ktorá vráti Vaše meno (tu to bude Matej). Druhá funkcia je s parametrami Kalkulacka(int prveCislo, int druheCislo), táto vráti prveCislo * druheCislo. Teraz si vytvoríte knižnicu tým spôsobom, že si najskôr skontrolujete, že či v nastaveniach projektu máte ako typ zvolené Win32 DLL a potom v menu Execute kliknite na Compile. Program Vám automaticky vytvorí súbory ako kniznica.dll a libkniznica.a. Skontrolujte, či ich tam máte. Ak áno, tak sa pustite do tvorby skúšobného programu. Tento náš program sa bude skladať len z jedného súboru a to test.cpp. Je potrebné, aby ste mali ale pri tomto súbore hlavičku kniznica.h a taktiež vytvorený súbor libkniznica.a.

test.cpp #include <cstdlib>
#include <iostream>
#include <windows.h>
#include "kniznica.h"

using namespace std;

int main(int argc, char *argv[])
{
    cout << "Testovacia aplikacia na kniznicu" << endl << endl;
    cout << "Funkcia MojeMeno(): " << MojeMeno() << endl;
    int prve, druhe;
    cout << "Zadajte prve cislo: ";
    cin >> prve;
    cout << "Zadajte druhe cislo: ";
    cin >> druhe;
    cout << "Vysledok (prve * druhe): " << Kalkulacka(prve, druhe) << endl;
    cout << endl;
    system("PAUSE");
    return 0;
}

Aby program vedel, že vy chcete použiť knižnicu kniznica.dll, musíte zadať parameter, aby pri vytváraní spojil Váš program s tou knižnicou. V prostredí Dev-C++ to dosiahnete jednoduchou cestou. Zobrazte si Project Options a na záložke Parameters kliknite na tlačidlo Add Library or Object a zvolte umiestneni súboru libkniznica.a a potrvďte. Túto konzolovú aplikáciu si spustite cez Execute > Compile & Run (alebo rovno F9). Program by Vám mal (ak ste spravili všetko správne) vypísať Vaše meno, a potom vynásobiť číslo 15 trojkou a výsledok zobraziť.

Stiahnúť celý projekt - Projekt pre Dev-C++

Copyright ©2005 - 2007 Matej Tomčík - ICQ: 369-071-962