[ MarkoBalkan @ 16.01.2011. 15:04 ] @
1.kako napraviti dll i posebno api, da se preko api-a može spajati na dll?
recimo kao kod baza ili na neki api, recimo da imam h file koji ostaje vani, kad se dll kompajlira i preko njega se spaja na dll.
2.kako iz code-a najbolje kreirati dll?
ako se koristi code i compiler u consoli.

[ Lazar-I @ 06.05.2011. 12:49 ] @
Postupak za GCC (mingw).

heder test.h

Code:

#ifndef TEST_H
#define TEST_H
int test(void);
#endif  


source test.cpp
Code:

#include <stdio.h>
int test()
{
    printf("Zdravo svete!\n");
    return 0;
}


Kompajliranje:

Code:
g++ -c test.cpp -o test.o


Opcija -c obezbeđuje samo kompajliranje, bez linkovanja. Opcija -o omogućava definisanje imena izglazog fajla, u ovom slučaju test.o.

Izgradnja dinamičke biblioteke:

Code:
g++ -shared -o test.dll test.o



Sada se funkcija test iz dinamičke biblioteke test.dll može pozvati iz glavnog programa:

main.cpp
Code:

#include "test.h"

int main(void)
{
test();
return 0;
}


Program se može prevesi komandom:

Code:
g++ -o test.exe main.cpp test.dll 


P.S.

Mislim da se na ovaj način dobija dinamička bilbioteka u ELF formatu, a da je na Windowsima standard COFF.