PDA

View Full Version : [C++] problemi con ccc_win.h


Alez22g
23-06-2010, 13:46
sto seguendo un corso di informatica il mio professore si attiene al libro Fondamenti di c++ di C. Horstamann il quale fornisce dei header files a scopo didattico tra cui ccc_win.h.
Quando vado a compilare il seguente semplicissimo programma:

#include "ccc_win.h"

int ccc_win_main()
{
cwin << Point(1,3);

return 0;
}

ricevo i seguenti messaggi di errore:

D:\Documenti\C++\Codice\Capitolo03\point.ooint.cpp.text+0x1d)||undefined reference to `Point::Point(double, double)'|

D:\Documenti\C++\Codice\Capitolo03\point.ooint.cpp.text+0x40)||undefined reference to `_cwin'|

D:\Documenti\C++\Codice\Capitolo03\point.ooint.cpp.text+0x45)||undefined reference to `GraphicWindow::operator<<(Point)'|

C:\Programmi\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\libmingw32.a(main.o):main.c.text+0x104)||undefined reference to `_WinMain@16'|

ahh uso codeblocks...ne sarei grato se qualcuno mi aiutasse ne sto uscendo pazzo...le ho provate tutte...il problema credo sia nel linker ma non so come risolverlo. grazie in anticipo!

Alez22g
23-06-2010, 15:49
nessuno può aiutarmi?

fero86
23-06-2010, 16:51
oltre agli headers ti dovrebbero essere forniti anche dei sorgenti con estensione .cpp, é assai probabile che manchino quelli.

Alez22g
23-06-2010, 17:03
si ci sono! ho provato a inserirli nel progetto e compilare il tutto...stesso problema!

fero86
24-06-2010, 00:17
sicuro che siano tutti? li mancano palesemente delle definizioni: non é definita la WinMain, il costruttore di una classe Point, una variabile cwin e un operatore della classe GraphicWindow.

forse quelle definizioni stanno in dei blocchi #ifdef o analoghi, controlla se l'autore di quelle classi documenta qualche macro particolare.

piu di cosi é impossibile aiutarti: mancano delle definizioni, mancano dei sorgenti, tutto lá.

Alez22g
25-06-2010, 09:25
i file sorgenti ci sono il problema credo che risieda nell ultimo messaggio d'errore...

C:\Programmi\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\libmingw32.a(main.o):main.c:(.text+0x104)||undefined reference to `_WinMain@16'|

non riesco a capire cos'è....

fero86
25-06-2010, 14:07
in generale quando leggi i messaggi di errore di compilazione e/o linking non dovresti mai dare retta all'ultimo, bensi al primo: dal secondo in poi sono tutti potenzialmente inaffidabili visto che il codice é errato, capita spesso di correggerli tutti insieme correggendo solo il problema che causa il primo errore.

comunque questa é solo una regola generale; qui nello specifico, come ho giá scritto, mancano alcune definizioni; l'errore di cui tu ti preoccupi indica che manca una funzione WinMain, obbligatoria in tutti i programmi Win32 GUI:
http://msdn.microsoft.com/en-us/library/ms633559(VS.85).aspx

sei sicuro che quella libreria sia fatta per creare programmi GUI e non CUI?
comunque io baderei prima agli errori precedenti. comincia dal primo; cerca di capire dove dovrebbero stare le definizioni mancanti, nessuno puó aiutarti senza conoscere quella libreria.

fero86
25-06-2010, 14:10
ed inoltre ripeto:
forse quelle definizioni stanno in dei blocchi #ifdef o analoghi, controlla se l'autore di quelle classi documenta qualche macro particolare.