PDA

Visualizza la versione completa : [C] Creare una dll e renderla disponibile


Felixfree
27-02-2007, 19:43
Salve, premetto che non sono assolutamente esperto di quanto sto per dire, perci non arrabbiatevi e abbiate pazienza! Il mio problema il seguente:

- Devo realizzare una funzione in C, molto semplice, e successivamente compilarla per ottenere un file .dll. A questo punto devo rendere questo file, che di fatto una libreria, disponibile ad un'altra applicazione (per la cronaca trattasi di PostgreSQL, un ORDBMS).

- Siccome solitamente non sviluppo in C mi sono scaricato questo ambiente di sviluppo: "devcpp-4.9.9.2_setup.exe", va bene per i miei scopi?

- Sperando che la risposta sia affermativa chiedo inoltre: una volta prodotto il file .dll devo prendere altri accorgimenti per rendere in generale fruibile questo file? In altre parole, lasciando stare come poi far PostgreSQL a utilizzare la libreria, in generale c' qualche altra cosa da fare affinch il file .dll espleti la sua funzione?

- Il sistema operativa sul quale lavoro Win XP Professional.

Ciao Fabio

mondobimbi
28-02-2007, 08:10
mi sembra che sotto windows tu debba dichiarare le sunzioni da esportare come __export




#ifdef _WIN_
#ifdef __BUILDING_THE_DLL
#define __EXPORT_TYPE __export
#else
#define __EXPORT_TYPE __import
#endif
#else
#define __EXPORT_TYPE
#endif

//---------------------------------------------------------------------------
extern "C"
{

int __EXPORT_TYPEmia_funzioneda_esportare();

}



ciao
sergio

MItaly
28-02-2007, 14:48
__export una parola riservata di Visual C++... con altri compilatori credo che tu debba usare un file .def...

Felixfree
28-02-2007, 15:12
Ragazzi grazie ma ne s quanto prima... ovviamente non per colpa vostra ma mia!

Cerchiamo di ricapitolare:

Con "devcpp-4.9.9.2_setup.exe" possibile compilare un sorgente scritto in C ed ottenere un file .dll?

Gi sapere se ho installato l'ambiente giusto non sarebbe poca cosa!

MItaly
28-02-2007, 16:55
S, con dev-cpp (ma soprattutto con il suo compilatore) si possono creare dll, se non sbaglio puoi anche segnalare le funzioni esportate con declspec(dllexport).

Loading