Fehler-,meldung bei Visual c++ in 21Tagen
-
Hallo,
ich bin dabei Visual C++ mit dem Buch "Visual c++ in 21 Tagen von David Chapmann zu lernen, jedoch glaube ich daß einige Fehler enthalten sind.
Jetzt habe ich das problem, das ich bei Kapitel 8 eine Fehlermeldung erhalte:d:\pieczkowski\übungen\grafik_2\grafik_4\paintdlg.h(9) : error C2653: 'CPaintDlg' : Keine Klasse oder Namespace
PaintDlg.cpp
d:\pieczkowski\übungen\grafik_2\grafik_4\paintdlg.h(9) : error C2653: 'CPaintDlg' : Keine Klasse oder NamespaceKann mir jemand sagen, was ich falsch gemacht habe.
Der Fehler tritt im Listing 8.4 auf:
const COLORREF CPaintDlg::m_crColors[8] = {
RGB( 0, 0, 0), // Schwarz
RGB( 0, 0, 255), // Blau
RGB( 0, 255, 0), // Grün
RGB( 0, 255, 255), // Cyan
RGB( 255, 0, 0), // Rot
RGB( 255, 0, 255), // Magenta
RGB( 255, 255, 0), // Gelb
RGB( 255, 255, 255) // Weiß
};
-
Hi,
1. Ich habe auch das Buch
2. AFAIK wird die "Farbtabelle" in die *.cpp Datei geschrieben und nicht in die Header-Datei ("paintdlg.h(9)", also in dem Fall wohl die paintdlg.cpp).
Dies geschiet auch in den anderen Listings (z.b. 10.17)
3. Mein erster Post
Hoffe das hilft...
-
Hallo,
ist Dir vielleicht ein Fehler im Kapitel 10 aufgefallen?
Ich erhalte folgende Fehlermeldung:
D:\Pieczkowski\Übungen\Tag 10\Tag10_1\Line.cpp(20) : error C2512: 'CLine' : Kein geeigneter Standardkonstruktor verfuegbar
Tag10Doc.cppDanke!
-
hm...
Ich habe den folgenden fehler gemacht, weiß aber nicht ob das die selbe fehlermeldung ausgibt: wenn ich die Parameter einer Funktion angepasst habe habe ich am anfang vergessen dass man die auch in der header-datei anpassen muss
Das proggy funktioniert bei mir (wenn eins aus dem buch unerklärliche fehler ausgibt und der qt nicht weiterverwendet wird habe ich es meist sein lassen, so z.B. in Kapitelalso daher glaube ich nicht dass es am buch liegt^^ (kann aber trotzdem sein :D)
Falls es hilft: hier ist mein Quelltext der line.cpp
// Line.cpp: Implementierung der Klasse CLine. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "stdafx.h" #include "Line.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif IMPLEMENT_SERIAL (CLine, CObject, 1) ////////////////////////////////////////////////////////////////////// // Konstruktion/Destruktion ////////////////////////////////////////////////////////////////////// CLine::CLine() { } CLine::~CLine() { } CLine::CLine(CPoint ptFrom, CPoint ptTo, COLORREF crColor, UINT nWidth) { m_ptFrom = ptFrom; m_ptTo = ptTo; m_crColor = crColor; m_nWidth = nWidth; } void CLine::Draw(CDC *pDC) { CPen lpen (PS_SOLID, m_nWidth, m_crColor); CPen* pOldPen = pDC->SelectObject(&lpen); pDC->MoveTo(m_ptFrom); pDC->LineTo(m_ptTo); pDC->SelectObject(pOldPen); } void CLine::Serialize(CArchive &ar) { if(ar.IsStoring()) ar << m_ptFrom << m_ptTo << (DWORD) m_crColor << m_nWidth; else ar >> m_ptFrom >> m_ptTo >> (DWORD) m_crColor >> m_nWidth; }
Hoffe dass ich damit nicht gegen copyright o.ä. stoße aber dieser teil an sich bringt nicht sehr viel^^
Hoffe das hilft...
-
Hallo,
vielen Dank, es klappt doch!
Übrigens bei Kapitel 8 gibt es seitens des Verlags eine Korrektur, falls Du ein altes Buch hast( meins ist von 1998), hier die Korrektur:
vielen Dank für Ihre Mail. Bitte fügen Sie in Ihrem Buch auf
S. 192 im 2. Absatz, 6. Zeile nach "...sich selbst neu zu
zeichnen." folgenden Text ein:**"Fügen Sie dazu nacheinander für jedes Optionsfeld mit dem
Klassen-Assistenten eine Funktion für das Ereignis BN_Clicked
hinzu, wobei Sie aber jeweils den vorgegebenen Funktionsnamen
durch OnRSelection ersetzen. Im Ergebnis entsteht lediglich
eine einzige Behandlungsroutine, die mit allen Klickereignissen
verbunden ist. In diese Behandlungsroutine nehmen Sie den Code
aus Listing 8.3 auf."Den letzten Satz in dem Absatz "Mit dem Code..." streichen Sie.**
Damit sollte das Beispiel dann fehlerfrei funktionieren.
Mit freundlichen Grüßen
i.A. Ralf K. Buschner
Tech. Support
Tel. (089) 4 60 03 371
Fax (089) 4 60 03 370
mailto:rbuschner@pearson.dePearson Education Deutschland GmbH
Verlage Markt+Technik / Addison-Wesley / Pearson-Studium / Longman
Martin-Kollar-Straße 10-12
D-81829 München