Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Beispielanwendung funktioniert nicht!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
07.08.2002, 17:07 Uhr
pvjb



Hallo,

nochmal ne Frage zu dem Buch "Visual C++ in 21 Tagen" (mut.com/media/buecher/VCPLUS6/data/kap10.htm) : Im Kapitel 10 funktioniert die Beispielanwendung nicht, der Compiler meldet, dass das mit dem CLine* nicht funktioniert! Der meint zwischen dem * und dem CLine müsste ein ; stehen! Ich habe Line.h ordentlich includiert!


Kann mir jemand helfen?

Tschüss
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.08.2002, 17:41 Uhr
Tommix




Zitat:
pvjb postete
Der meint zwischen dem * und dem CLine müsste ein ; stehen!
Tschüss



Hallo,
wo genau sagt er das?

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.08.2002, 18:23 Uhr
pvjb



In der Header Datei
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.08.2002, 18:41 Uhr
Tommix



Ähm,


Code:
>dir *.h

Datenträger in Laufwerk D: DATA
Seriennummer des Datenträgers: 4004-1307
Verzeichnis von D:\Daten\Programmierung\C++\Home\21Tage\Tag10_SDI

TAG10_~1 H           1,459  09-03-00  1:37p Tag10_SDI.h
STDAFX   H           1,077  09-03-00  1:37p StdAfx.h
MAINFRM  H           1,664  09-03-00  1:37p MainFrm.h
TAG10_~2 H           2,789  09-03-00  3:27p Tag10_SDIDoc.h
TAG10_~3 H           2,035  09-03-00  1:57p Tag10_SDIView.h
RESOURCE H           1,207  09-03-00  3:11p resource.h
LINE     H             730  09-03-00  3:02p Line.h



Könntest Du eventuell etwas genauer werden oder gar das entsprechende Stück Code mit dem Fehler hier posten?
Ich vermute das Semikolon fehlt eher in der Zeile vor der Fehlermeldung, bei mir läuft das Programm aus dem Buch jedenfalls.

- Tommix

Dieser Post wurde am 07.08.2002 um 18:44 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.08.2002, 15:55 Uhr
pvjb



Also:

Fehlermeldung:

Code:
\vc++\tag10\tag10doc.h(35) : error C2143: Syntaxfehler : Fehlendes ';' vor '*'
\vc++\tag10\tag10doc.h(35) : error C2501: 'CLine' : Fehlende Speicherklasse oder Typbezeichner
\vc++\tag10\tag10doc.h(35) : error C2501: 'CLine' : Fehlende Speicherklasse oder Typbezeichner



Stelle im Quelltext (tag10doc.h, Zeile 35):

C++:
.
.
.
//Implementierung
public:
    CLine* GetLine(int nIndex);
    ...
.
.
.





Fehlermeldung:

Code:
\vc++\tag10\tag10doc.h(37) : error C2143: Syntaxfehler : Fehlendes ';' vor '*'
\vc++\tag10\tag10doc.h(37) : error C2501: 'CLine' : Fehlende Speicherklasse oder Typbezeichner
\vc++\tag10\tag10doc.h(37) : error C2501: 'AddLine' : Fehlende Speicherklasse oder Typbezeichner



Stelle im Quelltext (tag10doc.h, Zeile 37):

C++:
.
.
.
//Implementierung
public:
    ...
    CLine* AddLine(CPoint ptFrom, CPoint ptTo);
    ...
.
.
.



Ich muss wohl noch dazu sagen, dass das Programm noch nicht fertig ist! Der Autor schreibt (nach Listing 10.8), dass man die Anwendung jetzt ausführen können muss! Das habe ich versucht und diese 6 Fehler bekommen!
Irgendwie habe ich das Gefühl, dass die Line.h nicht richtig includiert ist, aber ich habe es gemäß Listing 10.8 gemacht!

Ich würde mich freuen, wenn mir einer helfen kann!

Danke und Tschüss
Philipp

Dieser Post wurde am 09.08.2002 um 15:57 Uhr von pvjb editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.08.2002, 16:07 Uhr
Tommix



Hallo,
schreib mal in tag10doc.h vor die Klassendeklaration (class CTag10Doc : ...)
C++:
#include "Line.h"
, dann sollte es laufen. Ich glaube mich duster zu erinnern (ist schon ein Weilchen her), daß das im Buch nicht erwähnt war, in meinem Code steht es aber da. Es gibt zwei oder drei solche Fehler in dem ansonsten wirklich brauchbaren Buch.

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.08.2002, 16:18 Uhr
pvjb



Hallo,

es funktioniert!!! Vielen Dank für die Hilfe. Also hatte ich mit meiner Vermutung, dass es an der unvollständigen Includierung liegt, recht, ja?
Ich hatte das Programm jetzt dreimal neu erstellt, also in 21 Tagen ist das dann wohl nicht zu schaffen

MfG
Philipp
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
09.08.2002, 16:45 Uhr
Tommix




Zitat:
pvjb postete
Also hatte ich mit meiner Vermutung, dass es an der unvollständigen Includierung liegt, recht, ja?


Ich hab's mir jetz mit Abstand und der Weisheit des Alters nochmal angesehen. Entscheidend ist die Reihenfolge der includes. CLine wird in Tag10Doc.h benutzt und deshalb muß "Line.h" vor "Tag10Doc.h" eingebunden werden. In "Tag10Doc.cpp" ist das richtig gemacht:

C++:
#include "stdafx.h"
#include "Line.h"
#include "Tag10.h"
#include "MainFrm.h"
#include "Tag10Doc.h"


"Tag10Doc.h" wird aber bereits von "Tag10.cpp" eingebunden:

C++:
#include "MainFrm.h"
#include "Tag10_Doc.h"
#include "Tag10_View.h"


Nachdem ich das nun in

C++:
#include "MainFrm.h"
#include "Line.h"
#include "Tag10_Doc.h"
#include "Tag10_View.h"


umgeändert habe, geht es auch ohne #include in Tag10Doc.h. Man kann sich nun streiten, welche Variante besser ist.


Zitat:
... also in 21 Tagen ist das dann wohl nicht zu schaffen


Aus solchen Problemen (wenn man sie denn löst) lernt man vermutlich mehr, als wenn man 42 Tage lang Quelltexte abschreibt, die von Anfang an fehlerfrei laufen (die gibt es allerdings nur hinter den 7 Bergen ).

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
10.11.2005, 08:44 Uhr
~Timm Lippold
Gast


Das stimmt so lernt man wirklich mehr, aber es gibt Bücher die sind so schlimm da nervt es Tierisch ^^. Habe auch 2 Fehlermeldungen aber lässt sich trotzdem ausführen ausführen .

Nach dem ausführen funktioniert auch alles aber ich kann die Farben im Menue oben nicht sehen und Benutzten obwohl sie in der Menue Ressource erscheinen.

Zeile:
const COLORREF CTag10Doc::m_crColors[8] = {
Fehler:
CProgramme\DevStudio\MyProjects\Fertig\Tag10SDI\Tag10SDIDoc.cpp(43) : error C2653: 'CTag10Doc' : Keine Klasse oder Gueltigkeitsbereich
Tag10SDIView.cpp

Zeile:
CLine *pLine = GetDocument()->AddLine(m_ptPrevPos, point);
Fehler:
CProgramme\DevStudio\MyProjects\Fertig\Tag10SDI\Tag10SDIView.cpp(159) : error C2660: 'AddLine' : Funktion akzeptiert keine 2 Parameter
Generieren von Code...

Danke schonmal für die Hilfe

MfG Timm Lippold
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
10.11.2005, 09:12 Uhr
Tommix



Hallo,
der Thread ist zwar mehr als drei Jahre alt, aber was solls.

C++:
CTag10Doc::m_crColors[8]


scheint bei Dir

C++:
CTag10SDIDoc::m_crColors[8]


heißen zu müssen.
Das zweite ist eigentlich richtig. Was steht denn als Definition von AddLine bei Dir in Tag10SDIDoc.h?

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: