aldarin
Goto Top

Objekt in einer Applikation erzeugen

Erzeugung eines Objekts, auf der Basis einer Klasse in einer Win32 Applikation (erstellt mit Visual Studio 6)

Hallo,

es geht um ein Problem.

Bisher hatte ich lediglich Konsolenanwendungen in C++ erstellt.

Sollte ich jedoch eine Oberfläche benutzen, hatte ich meistens auf andere Sprachen zurückgegriffen.

Nun steh ich vor dem Problem das ich mit Visual Studio 6 (C++) ein Programm, welches zuvor als Konsolenanwendung geschrieben wurde, in eine GUI zu überführen.

Das Grundgerüst lies ich mir von VS erstellen. Ich habe auch schon einige Tutorials gelesen um das Gerüst zu verändern und zu erweitern.
Bzw. um Tastaturabfragen vorzunehmen etc. etc. etc.

Nun steh ich jedoch vor einem Problem.

Ich habe zuvor in der Konsolenanwendung eine Klasse (Name: Cspielfeld) gehabt.
Diese hatte einige Methoden und Attribute.

In der Konsolenanwendung lies ich mir das Objekt mit "Cspielfeld feld" erzeugen.
In der Applikation, geht diese Prozedur jedoch nicht.

Ich habe die spielfeld.h (Headerdatei der Klasse) included.
Die Klasse wurde bisher nicht verändert und ist mit der Konsolenklasse identisch. Ebenso deren Methoden.

Ich wollte erst einmal das Ansteuern der einzelnen Elemente hinter die Menüpunkte legen, bevor ich dann die Methoden die für die Bildschirmausgabe zuständig waren umbaue, damit sie in das Window zeichnen können.
Dagegen spricht ja auch nichts.
Jedoch wenn ich nun das Objekt erzeugen will mit "Cspielfeld feld" bekomme ich folgende Meldungen:

error C2065: 'Cspielfeld' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'feld'
error C2065: 'feld' : undeclared identifier

Alle beziehen sich auf die besagte Zeile
Cspielfeld feld;

Wenn einer einen Tipp hat oder sogar eine konkrete Lösung wäre ich sehr dankbar!

Mit freundlichen Grüßen,
Daniel Felix

Content-Key: 51192

Url: https://administrator.de/contentid/51192

Printed on: April 16, 2024 at 15:04 o'clock

Member: MartinSchmid
MartinSchmid Feb 12, 2007 at 20:57:11 (UTC)
Goto Top
Zunächst solltest du wissen, dass deine Fehlermeldung vom Compiler erzeugt wird. Aus Sicht dessen gibt es keinen Unterschied zwischen Konsolenapplikation und einer Applikation mit GUI.

Erst der Linker kann unter Umständen diesen Unterschied erahnen (/subsystem:console oder /subsystem:windows), wobei es hier nicht darum geht ob eine Anwendung wirklich eine GUI hat oder nicht. Auch eine Konsole ist ein Fenster (zumindest unter Windows)

Deine Fehlermeldungen heißen im Grunde bloß, dass er (der Compiler) im aktuellen Kontext die Bezeichnung Cspielfeld nicht kennt. Das von dir angesprochene include muss vor der Definition von feld stehen und darf nicht durch ein #if(n)def umgangen werden.

Also folgendes muss funktionieren:
#include "spielfeld.h"
Cspielfeld feld;

Vorausgesetzt die Klasse Cspielfeld befindet sich auch in spielfeld.h (Groß-/Kleinschreibung beachten).

mfg Martin
Member: Aldarin
Aldarin Feb 12, 2007 at 21:10:33 (UTC)
Goto Top
Hallo Martin,

erstmal danke für deine Hilfe, aber das war mir bereits bekannt. Ich habe es auch mit meiner Konstruktion hinbekommen.

Das Problem lag schlicht und ergreifend an Visual Studio.
Der Workspace war mehrmals zerschossen.

Ich habe 3 mal den Code 1:1 übernommen und jedesmal die datei spielfeld.h und spielfeld.cpp in das Projekt eingebunden aber dennoch hat er mir immer den selben Fehler ausgespuckt.
Beim vierten Versuch hatte er es gemacht.
irgendwo gabs wohl einen Fehler in VS aber naja ist ja nun auch egal. Problem hat sich nun ja zum glück erledigt. face-smile

Mit freundlichen Grüßen,
D. Felix