Errore di compilazione
Salve ho un file, creato da me, con la definizione di alcune classi (per la gestione di vettori e matrici).
Se includo questo file in un mio progetto, lo compilo e lo utilizzo, non ho nessun problema nè in fase di compilazione, nè in fase di utilizzo.
Ho però la necessita di utilizzare queste mie classi in un'altra libreria, scritta in C e non da me. Ma ottengo errori, ovvero solamente all'inclusione in questa libreria del mio file ottengo errori in compilazione.
Evidentemente il problema è in questa inclusione, ma non capisco il motivo. Probabilmente mi sfugge qualcosa.
Grazie.
Se includo questo file in un mio progetto, lo compilo e lo utilizzo, non ho nessun problema nè in fase di compilazione, nè in fase di utilizzo.
Ho però la necessita di utilizzare queste mie classi in un'altra libreria, scritta in C e non da me. Ma ottengo errori, ovvero solamente all'inclusione in questa libreria del mio file ottengo errori in compilazione.
Evidentemente il problema è in questa inclusione, ma non capisco il motivo. Probabilmente mi sfugge qualcosa.
Grazie.
Risposte
Le informazioni sono poche.....
....qual'è il messaggio di errore?
Come hai impostato la struttura del tuo progetto?
Ad esempio:
- tuofile.c
- tuofile.h
- altrofile.c che contiene #include
....qual'è il messaggio di errore?
Come hai impostato la struttura del tuo progetto?
Ad esempio:
- tuofile.c
- tuofile.h
- altrofile.c che contiene #include
se includi le definizioni delle tue classi in un file sorgente con estensione .c il compilatore interpreterà il codice in C e non in C++. Il C non ha le classi. Se è per questo prova a rinominare il file sorgente con estensione .cpp
Ti spiego meglio, ho i miei due file:
- 3dmath.h interfaccia della classe
- 3dmat.cpp implementazione della classe
Come dicevo prima se in un mio progetto includo e utilizzo questa classe non ho nessun problema. Ma mi trovo a doverla utilizzare in una libreria non scritta da me (è in C).
Questa libreria è composta da alcuni header file e da alcuni sorgneti. In uno di questi header file devo creare una mia funzione e mi serve anche le 3dmath per le operazioni che deve fare e il dato che deve ritornare.
Quindi nell'header della libreria metto #include "3dmath.h" ma ottengo errori in fase di compilazione, precisamente:
Questo gruppo di quattro errori è ripetuto per tutti i file sorgente della libreria in questione, quindi in totale ho 32 errori essendo i sorgenti 8.
Il fatto è che proprio non capisco dove sia il problema...
Grazie.
- 3dmath.h interfaccia della classe
- 3dmat.cpp implementazione della classe
Come dicevo prima se in un mio progetto includo e utilizzo questa classe non ho nessun problema. Ma mi trovo a doverla utilizzare in una libreria non scritta da me (è in C).
Questa libreria è composta da alcuni header file e da alcuni sorgneti. In uno di questi header file devo creare una mia funzione e mi serve anche le 3dmath per le operazioni che deve fare e il dato che deve ritornare.
Quindi nell'header della libreria metto #include "3dmath.h" ma ottengo errori in fase di compilazione, precisamente:
1>------ Inizio compilazione: Progetto: Blending, Configurazione: Debug Win32 ------ 1>Compilazione in corso... 1>glmimg_sim.c 1>c:\documents and settings\enigma\desktop\blending\blending\3dmath.h(10) : error C2061: errore di sintassi: identificatore 'Vector3D' 1>c:\documents and settings\enigma\desktop\blending\blending\3dmath.h(10) : error C2059: errore di sintassi: ';' 1>c:\documents and settings\enigma\desktop\blending\blending\3dmath.h(11) : error C2449: trovato '{' in ambito file. Si è omesso di specificare un'intestazione di funzione? 1>c:\documents and settings\enigma\desktop\blending\blending\3dmath.h(230) : error C2059: errore di sintassi: '}'
Questo gruppo di quattro errori è ripetuto per tutti i file sorgente della libreria in questione, quindi in totale ho 32 errori essendo i sorgenti 8.
Il fatto è che proprio non capisco dove sia il problema...
Grazie.
"ZeroMemory":
se includi le definizioni delle tue classi in un file sorgente con estensione .c il compilatore interpreterà il codice in C e non in C++. Il C non ha le classi. Se è per questo prova a rinominare il file sorgente con estensione .cpp
Oddio, ecco cosa mi sfuggiva. Il fatto è che una cosa simile mi era già capitata in passato e proprio questo era il problema e la soluzione.
Grazie dell'illuminazione, io mi stavo scervellando per capire cosa non andasse...
Grazie.
