Oppure

Loading
16/05/08 13:02
Zonzo
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 16/05/08 13:03
aaa
16/05/08 13:42
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
aaa
16/05/08 17:25
Zonzo
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?
aaa
16/05/08 19:52
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.
aaa
16/05/08 20:32
Amarath
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
aaa
16/05/08 20:48
Zonzo
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 16/05/08 20:51
aaa
16/05/08 20:51
Amarath
E allora la procedura header + implementazione è la migliore ;)
aaa
16/05/08 20:56
Zonzo
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 16/05/08 20:57
aaa