PDA

Visualizza la versione completa : [c++] problema inclusione


debbelandia
26-04-2003, 14:44
con la libreria process.h è possibile include in un programma un altro processo (altro exe).

E' possibile includere un file conpilato in modo da proteggere il codice, per esempio se io faccio una libreria e voglio che uno mi utilizzi gli oggetti senza però modificare il codice...E' possibile?????

Luc@s
26-04-2003, 14:46
Originariamente inviato da debbelandia
con la libreria process.h è possibile include in un programma un altro processo (altro exe).

E' possibile includere un file conpilato in modo da proteggere il codice, per esempio se io faccio una libreria e voglio che uno mi utilizzi gli oggetti senza però modificare il codice...E' possibile?????

Basta aggiungere, nella compilazione, il files oggetto(.obj in win, .o in linux) della libreria tra la lista degli oggetti linkati e fornire solo il .h con le definizioni delle funzioni:)

debbelandia
26-04-2003, 14:53
ho provato ma non trova i file *.cpp e .h

debbelandia
26-04-2003, 14:59
puoi essere più preciso?

Allora do il file.h

e inserisco nella cartella della conpilazione il file .obj....


io ho fatto due file uno con la dichiarazione delle classi e l'altro con la loro implementazione(.cpp) in questo includo il file della dichiarazione e poi nel programma includo quello della implementazione....


devo inserire un codie particolare nel file .h per dirgli dove sono le inplementazioni?

Luc@s
26-04-2003, 15:03
Il files .h serve x sapere che funz ha la libreria.
Il files .obj e come qualsiarsi altro files che tu linchi come stdio o stdlib o iostream.

Ti sei mai chiesto come mai nella caerella imclude trovi solo i files .h con le difenizioni ????

debbelandia
26-04-2003, 15:09
Senti come faccio?


Faccio un file .h ci metto l'implementazione, compilo e cancello dal file .h l'implementazione?

Luc@s
26-04-2003, 15:10
T iesemplifico il tutto:

//file impl.h
class Screen
{
public:
Screen();
~Screen();
void set(int punt );
inline int get();
private:
int _punt;
};

//file impl.cpp

int Screen::get()
{
return _punt
}
void Screen::set(int punt)
{
_punt = punt;
};

Tu compili e dai in pasto al tuo cliente il files .h cosi sa che funzioni ha la lib e il files .obj che sara lincato nella fase di linking.
Cosi il cliente lincherìa la tua lib e pora fare:

Screen *sc;
sc->set(5);
cout << sc->get() <<endl;

standard
26-04-2003, 15:10
scusate se mi intrometto, ma debbelandia, tu vuoi crearti un tuo file di libreria?

in questo caso devi precompilare il .cpp e il .h per crearti il file .lib

poi linkare il .lib nel tuo programma e inserire l'include al .h nel file .cpp

per far questo dovrebbe esserci un tool insieme al tuo compilatore che ti permette di farlo.

cmq non so sono andato fuori tema :tongue:

ciauz

debbelandia
26-04-2003, 15:15
Non capisco...


allora ho in file


libreria.h

class ciao
{
...
void metodo();
};


e un file

inplementazione.cpp

#include "<libreria.h>"
void ciao::metodo();
{

}

come devo fare?




Come devo fare?

Luc@s
26-04-2003, 15:16
leggi il mio post sopra:metallica

Loading