Kr0meel
Legacy Member
Ik heb jaren lang fun beleed aan het C++ programmeren voor DOS met de Allegro library, maar een mens moet met zijn tijd mee, en hier ben ik dan, verwoede pogingen aan het doen om deftig voor Windows te programmeren.
Momenteel zit ik echter hopeloos vast en ik denk dat het iets heel doms is dat ik over het hoofd zie:
Ik werk momenteel met Visual C++ 6.0, ik heb mijn eerste eenvoudige probeersel met directX klaar. Dit probeersel werkt zonder compileer of runtime problemen
. Nu wilde ik uiteraard wat groter gaan, en probeerde een klasse te schrijven, en het is daar dat ik vast loop.
Ik heb vanuit de "Class view" de wizard geopend voor het aanleggen van een nieuwe klasse. Deze heb ik zeer origineel "DOG" genoemd, en uiteraard niet van een andere klasse afgeleid. Visual C++ maakt vervolgens 2 bestandjes, eentje met de klasse definitie, "DOG.h", en eentje met de implementaties "DOG.cpp". De .cpp file komt automatisch bij de source files in de "file view", en de .h file komt automatisch, waar had je het ook verwacht, bij de "header files". In de "Class view" komt de klasse ook te voorschijn en kan je ook de constructor en destructor zien. Om de klasse toch iets te laten doen had ik ze één lidvariabele, namelijk de "int age" meegegeven (waarde wordt in constructor geïnitialiseerd).
Ik compileer het project nog eens en HUP, alles wunderbahr, geen enkele compileerfout.
Dan probeer ik echter om in de WinMain ook daadwerkelijk een DOG te creëren met de magische code
DOG Bobby;
Een poging dit te compileren levert echter volgende error melding:
error C2065: 'DOG' : undeclared identifier
Blijkbaar was de klasse DOG op dat punt tijdens het compileren nog niet gekend/geregistreerd. In een wanhoopspoging heb ik aan het begin van het .cpp bestand met de winmain erin #include "DOG.cpp" gezet. Dit leidt echter enkel tot nog lelijkere foutmeldingen bij het compileren:
Hieruit denk ik dan af te kunnen leiden dat de compiler op dit punt de DOG klasse al WEL kent...
Er is waarschijnlijk hiel evidents dat ik over het hoofd zie, maar ik zit er momenteel wel hopeloos mee vast.
ad:
Kan iemand me hier uit de nood helpen?
Thx,
Ward.
Momenteel zit ik echter hopeloos vast en ik denk dat het iets heel doms is dat ik over het hoofd zie:
Ik werk momenteel met Visual C++ 6.0, ik heb mijn eerste eenvoudige probeersel met directX klaar. Dit probeersel werkt zonder compileer of runtime problemen
. Nu wilde ik uiteraard wat groter gaan, en probeerde een klasse te schrijven, en het is daar dat ik vast loop.Ik heb vanuit de "Class view" de wizard geopend voor het aanleggen van een nieuwe klasse. Deze heb ik zeer origineel "DOG" genoemd, en uiteraard niet van een andere klasse afgeleid. Visual C++ maakt vervolgens 2 bestandjes, eentje met de klasse definitie, "DOG.h", en eentje met de implementaties "DOG.cpp". De .cpp file komt automatisch bij de source files in de "file view", en de .h file komt automatisch, waar had je het ook verwacht, bij de "header files". In de "Class view" komt de klasse ook te voorschijn en kan je ook de constructor en destructor zien. Om de klasse toch iets te laten doen had ik ze één lidvariabele, namelijk de "int age" meegegeven (waarde wordt in constructor geïnitialiseerd).
Ik compileer het project nog eens en HUP, alles wunderbahr, geen enkele compileerfout.
Dan probeer ik echter om in de WinMain ook daadwerkelijk een DOG te creëren met de magische code
DOG Bobby;
Een poging dit te compileren levert echter volgende error melding:
error C2065: 'DOG' : undeclared identifier
Blijkbaar was de klasse DOG op dat punt tijdens het compileren nog niet gekend/geregistreerd. In een wanhoopspoging heb ik aan het begin van het .cpp bestand met de winmain erin #include "DOG.cpp" gezet. Dit leidt echter enkel tot nog lelijkere foutmeldingen bij het compileren:
Gameframe.obj : error LNK2005: "public: __thiscall DOG:OG(void)" (??0DOG@@QAE@XZ) already defined in DOG.obj
Gameframe.obj : error LNK2005: "public: virtual __thiscall DOG::~DOG(void)" (??1DOG@@UAE@XZ) already defined in DOG.obj
Debug/gameframe.exe : fatal error LNK1169: one or more multiply defined symbols found
Hieruit denk ik dan af te kunnen leiden dat de compiler op dit punt de DOG klasse al WEL kent...
Er is waarschijnlijk hiel evidents dat ik over het hoofd zie, maar ik zit er momenteel wel hopeloos mee vast.
ad: Kan iemand me hier uit de nood helpen?
Thx,
Ward.


, staat in zen eerste post