se usi il compilatore vc6 o NET crea un progetto per una dll NON MFC
nelle opzioni del compilatore di default avrai che compilando il progetto ti creerà per esmpio tua.dll e tua.lib se usi.

Usando queste opzioni devi portare nella dir dell'exe la dll e la lib che hai creato.

avrai anche tua.cpp e tua.h

Se hai fatto questa scelta sopra, nel progetto devi mettere anche un file che si chiama per esmpio tua.def lo crei con il notepad e lometti nel progetto. Nel file.def ci devi scrivere questo:

LIBRARY tua
EXPORTS

perchè stai usando una dll dinamca e la sua lib quindi in questo caso la dll deve sapere le funzioni che esporterai.

se nelle opzioni del compilatore scegli l'opzione Static Library allora non ti serve + avere il file.def perchè il tutto è compreso nell'unico file che ti verrà creato che si chiama tua.lib infatti avrà dimensioni maggiori.

Dunque se opti per la dll + la lib nel file.def (che sarebbe tua.def che hai creato) devi mettere la funzione da esportare.
esempio:

LIBRARY tua
EXPORTS
Inizializzazione

ora nel file tua.h immetti la funzione da esportare che è:
extern "C" void __declspec (dllexport) Inizializzazione();

magari ti fai ritornare un tru o false con questa:

extern "C" bool __declspec (dllexport) RitornaFlag();

Nel file .cpp ci metti le funzioni così:

Inizializzazione()
{
...fai l'inizializzazione
}

bool RitornaFlag()
{

return false;
}


Nel progetto dell'exe che richiama la dll e la lib oppure (come sopra) solo la lib perchè hai scelto la Static Library, in un file.h globale o nel cpp pricipale (il main) metti le stesse righe delle funzioni da esportare ovvero i prototipi.
esempio ci incolli le stesse righe così:

extern "C" void __declspec (dllexport) Inizializzazione();
extern "C" bool __declspec (dllexport) RitornaFlag();

Nel progetto che richiama la dll + la lib o solo la lib, nelle opzioni del compilatore devi includere tua.lib (se non funziona nulla)
e come detto prima tua.lib e tua.dell o solo tua.lib deve stare nella dir del progetto dell'exe.

dal mai del progetto per richiamare la funzione basta che metti la sua chiamata:
esempio:

Inizializzazione();

oppure

if(RitornaFlag())//valore del flag di stato
a=2;
else
a=3:

-------------------------

ora che lo rileggo mi sembra quasi un tut?



ciao