Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Creazione di una libreria personale
Forum - C/C++ - Creazione di una libreria personale

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Zonzo (Ex-Member)
Rookie


Messaggi: 34
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 15:02
Venerdì, 16/05/2008
Volevo sapere come crearmi una libreria personale, dato che uso pezzi di codice uguali nello stesso programma più di una volta, e così facendo spreco molto tempo.
Ecco perchè vorrei crearmi delle funzioni da richiamare, già fatte da me in modo da diminuire il tempo.
Come faccio a creare la libreria?
O per caso conoscete dei libri che lo spiegano?



P.S. Ho gia provato a vedere sia su questo sito, sia su internet,ma non ho trovato un granchè.

Ultima modifica effettuata da Zonzo il 16/05/2008 alle 15:03
PM Quote
Avatar
Amarath (Normal User)
Pro


Messaggi: 85
Iscritto: 08/05/2008

Segnala al moderatore
Postato alle 15:42
Venerdì, 16/05/2008
Cosa intendi esattamente con libreria?? Se intendi un hader o un namespace, non è molto complicato. Ora , appunto, dipende da cosa intendi. Se hai funzini che richiami più volte nel codice, fai un header con l'interfaccia, il cpp con le implementazioni e nel main o in qualsiasi cpp ti serve la lib fai #include "nomelib".

Se poi vuoi dare la libreria a terzi, il discorso cambia poco, o diffondi il cpp, oppure , se vuoi preservare l'information hiding, diffondi l'header e il file oggetto.

Ti consiglio di usare il costrutto if not defined

PM Quote
Avatar
Zonzo (Ex-Member)
Rookie


Messaggi: 34
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 19:25
Venerdì, 16/05/2008
Testo quotato

Postato originariamente da Amarath:

Cosa intendi esattamente con libreria?? Se intendi un hader o un namespace, non è molto complicato. Ora , appunto, dipende da cosa intendi. Se hai funzini che richiami più volte nel codice, fai un header con l'interfaccia, il cpp con le implementazioni e nel main o in qualsiasi cpp ti serve la lib fai #include "nomelib".

Se poi vuoi dare la libreria a terzi, il discorso cambia poco, o diffondi il cpp, oppure , se vuoi preservare l'information hiding, diffondi l'header e il file oggetto.

Ti consiglio di usare il costrutto if not defined



Si esattamente, vorrei creare un header file, in cui possa scrivere tutte le funzioni che uso spesso, non devo diffonderlo a terzi, lo tengo solo per me.
Quindi come faccio, mi potresti fare un esempio?

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 21:52
Venerdì, 16/05/2008
Con quale compilatore / IDE lavori? Con quale sistema operativo ?

Ad esempio, con Windows, puoi creare una libreria a collegamento dinamico (.DLL) o una libreria statica (.LIB). Nei tuoi progetti aggiungerai l'header con le dichiarazioni delle tue funzioni e importerai (come dipende dallo strumento che utilizzi) la libreria.

Bisogna che tu abbia sempre ben chiaro che il file header (.h) NON e' una libreria (come spesso viene definito da chi non ha molta esperienza di C) ma solamente un file che serve al compilatore per conoscere le firme delle funzioni e per le dichiarazioni di strutture e tipi.

La libreria vera e propria e' costituita dal codice delle funzioni.

PM Quote
Avatar
Amarath (Normal User)
Pro


Messaggi: 85
Iscritto: 08/05/2008

Segnala al moderatore
Postato alle 22:32
Venerdì, 16/05/2008
Testo quotato

Postato originariamente da gantonio:

Con quale compilatore / IDE lavori? Con quale sistema operativo ?

Ad esempio, con Windows, puoi creare una libreria a collegamento dinamico (.DLL) o una libreria statica (.LIB). Nei tuoi progetti aggiungerai l'header con le dichiarazioni delle tue funzioni e importerai (come dipende dallo strumento che utilizzi) la libreria.

Bisogna che tu abbia sempre ben chiaro che il file header (.h) NON e' una libreria (come spesso viene definito da chi non ha molta esperienza di C) ma solamente un file che serve al compilatore per conoscere le firme delle funzioni e per le dichiarazioni di strutture e tipi.

La libreria vera e propria e' costituita dal codice delle funzioni.



quoto in pieno. Ma tieni in considerazione che se hai la lib ma nn l'interfaccia, non la puoi usare xkè nn sai cm fare ;)

cmq è molto semplice. Scriviti tutte le funzioni che usi e salvale in un file cpp. Scrivi i prototipi e mettili in un file .h

Richiamando l'header , puoi utilizzare le funzioni implementate nel cpp ;)

Se nn sn stato chiaro, ti faccio un esempio pratico

PM Quote
Avatar
Zonzo (Ex-Member)
Rookie


Messaggi: 34
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 22:48
Venerdì, 16/05/2008
Io uso il compilatore MinGw, come Ambiente di Lavoro ho il Dev-C++, come sistema operativo Windows.
E appunto volevo crearmi delle funzioni da richiamare.
Sembrerebbe più semplice la proposta di Amarath, cioè creare un file cpp e scriverci dentro delle funzioni, e poi nell'headers files dichiararsi i prototipo di tutte le funzioni.
E naturalemente vi sarei grato se mi faceste un esempio, testato e funzionante in modo che possa capire il meccanismo.
Grazie.

Ultima modifica effettuata da Zonzo il 16/05/2008 alle 22:51
PM Quote
Avatar
Amarath (Normal User)
Pro


Messaggi: 85
Iscritto: 08/05/2008

Segnala al moderatore
Postato alle 22:51
Venerdì, 16/05/2008
E allora la procedura header + implementazione è la migliore ;)

PM Quote
Avatar
Zonzo (Ex-Member)
Rookie


Messaggi: 34
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 22:56
Venerdì, 16/05/2008
Testo quotato

Postato originariamente da Amarath:

E allora la procedura header + implementazione è la migliore ;)



Mi faresti un esempio pratico, già testato e funzionante di come creare questa procedura.
Ti Ringrazio...

Ultima modifica effettuata da Zonzo il 16/05/2008 alle 22:57
PM Quote
Avatar
Amarath (Normal User)
Pro


Messaggi: 85
Iscritto: 08/05/2008

Segnala al moderatore
Postato alle 23:14
Venerdì, 16/05/2008
arghh!!!! avevo scritto tutto e poi si è cancellato kakkiooooo!!!!!!

vabbè dai riscrivo..xò sn + sintetico

--

Fai un file.h e kiamalo "nomeclasse.h".

Dentro ci metti solo i prototipi delle funzioni.

Es :  somma.h

****

int somma(int& A,int& B);

****

Poi fai un file .cpp dove implementi il tutto :

Es : somma.cpp

****

int somma(int& A,int& B){
    return(A+B);
}

****

Ora, ogni volta che in un main vuoi richiamarti somma, basta che includi somma.h

Es : main.cpp

****

#include <iostram>
#include <somma.h>  //Questo ovviamente se piazzi la tua roba nella cartella base del dev, altrimenti devi usare gli apici ""

using namespace std;

int a;
int b;
int c;

int main(){

    cout<<"Inserire due numeri interi da sommare : ";
cin>>a>>b;
c = somma(a,b);
cout<<"La somma dei due operandi e' "<<c;
system("PAUSE");
return(0);
}

****

Ora se provi a compilare tutto dovrebbe andare. Se poi ho fatto qualche errore del di battitura o qualche dimenticanza scema ti chiedo scusa, ma stò un po assonnato :rotfl:

-----

EDIT :

Ovviamente davo per scontato che la "libreria" puoi chiamarla tuonome.h e tuonome.cpp e dentro spararci tutte le funzioni fatte da te che usi più spesso :k:

Ultima modifica effettuata da Amarath il 16/05/2008 alle 23:17
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo