Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » 'cobject' : Basisklasse undefiniert

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
28.08.2002, 18:22 Uhr
~AlienX
Gast


Hi,

ich bin gerade dabei von Delphi auf Visual C++ umzusteigen und dazu hab ich
mir die OnlineVersion von "Visual C++ in 21 Tagen" vorgenommen:
www.mut.de/media/buecher/VCPLUS6/data/inhalt.htm

Ich bin bei Tag 14 Dateizugriff und bekomm immer Fehler beim Compilieren.
Die Programme zu SDI und MDI Anwendungen hab ich wegen denselben Fehlern
nicht testen können. Vielleicht könnt ihr mir helfen.

Ich bekomme viele Fehler, aber ich denk, das sind alles Fehler von diesem:

//person.h(13):
class CPerson : public CObject {

Fehler:
...\serial\person.h(13) : error C2504: 'CObject' : Basisklasse undefiniert

Ich denk ich muss einfach nur was includen, aber ich weiss nicht was. Im
ganzen Buch stand bisher nichts dazu.


Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.08.2002, 18:51 Uhr
Lord Hessia



Es gibt wohl zu keinem Buch mehr Fragen in Foren, als zu diesem. Ich selber habe es auch damit versucht und kaum ein Programm (mit Ausnahme der ersten) zum Laufen gebracht. Nach Kapitel13 habe ich aufgegeben. Aus persönlichem Interesse habe ich aber das 13. dreimal geproggt und dann hat's endlich hingehauen. Mein Tipp: Druck Dir das ganze Kapitel aus und streich Dir alle Schritte an, die man ausführen muss, das ganze Gefasel kannste wegstreichen. Dann setz Dich an den Rechner und führe alles genauso aus, wie's angestrichen ist. Dann läuft's. Wenn man die ganze Zeit, vom 100sten ins 1000ste kommt und zwischendrin wieder drei Codezeilen stehen, dann baut man garantier irgendwo einen Fehler ein, vergisst eine Membervariable anzulegen oder ein include einzubauen. Nichtsdestotzrotz ist da ganze Hintergrundwissen natürlich wichtig, aber beim Programmieren selber, stört es nur.

Gruß Lord
--
_____________________________________

Brandy Alexander: 3cl Creme de Cacao, 3cl Cognac, 6cl Sahne im Shaker, nur perfekt mit einer Prise Muskatnuss

Prost!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.08.2002, 19:00 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,

C++:
#include <afx.h>


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.08.2002, 12:20 Uhr
~AlienX
Gast


Okay, und wo kommt das hin? ;)

@Lord Hessia: Ich hab leider kein Drucker, aber ich weiss, was du meinst. Da steht zB 10mal nacheinander public und jedes Mal steht die Erklärung dazu.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
29.08.2002, 18:45 Uhr
Lord Hessia



In alle Quellcodedateien, in denen Du von CObject abgeleitete Objekte verwendest, also überall :-)
Stattdessen wird doch in den MFC-Assistent-Projekten automatisch

C++:
#include "stdafx.h"

geschrieben und in dieser Datei stehen dann all die anderen afx-includes oder nicht?

Gruß Flo
--
_____________________________________

Brandy Alexander: 3cl Creme de Cacao, 3cl Cognac, 6cl Sahne im Shaker, nur perfekt mit einer Prise Muskatnuss

Prost!!!

Dieser Post wurde am 29.08.2002 um 18:46 Uhr von Lord Hessia editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
29.08.2002, 19:41 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
Ich hab mal auf Deinen Link geschaut, hab aber nicht weiter gelesen. Warum wird in einer DB Anwendung noch eine extra Klasse für "Person" aufgenommen?
Egal, ich würde es so machen

C++:
#pragma once
#include <afx.h>

class CPerson : public CObject
{
  ..........
  ..........


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 30.08.2002 um 21:27 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
30.08.2002, 14:33 Uhr
AlienX



Alle Fehlermeldungen die bekomme sind in der Person.h, also würde es doch für's erste reichen in der Person.cpp zu includen, oder?

Aber wie gesagt, hab ich noch überhaupt keinen Durchblick wie man richtig includet, d.h. welche Reihenfolge und wo (das #pragma once steht in Person.h, aber alles andere wird in Person.cpp includet).

Ich poste am besten mal, den Anfang von den beiden Dateien:

Person.cpp:

Code:
// Person.cpp: Implementierung der Klasse CPerson.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Person.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

IMPLEMENT_SERIAL (CPerson, CObject, 1)
//////////////////////////////////////////////////////////////////////
// Konstruktion/Destruktion


Person.h:

Code:
// Person.h: Schnittstelle für die Klasse CPerson.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PERSON_H__46323AA5_F14A_464F_8602_ABB3EE04D97C__INCLUDED_)
#define AFX_PERSON_H__46323AA5_F14A_464F_8602_ABB3EE04D97C__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CPerson : public CObject


Ich hab's in Person.cpp und einmal hinter #pragma once in Person.h eingefügt, aber beides bringt mich nicht weiter


btw Danke, dass ihr mir helfen wollt
--
"Das Ganze ist mehr als nur die Summe seiner Teile" - Zitat von hab ich vergessen

Dieser Post wurde am 30.08.2002 um 14:45 Uhr von AlienX editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
30.08.2002, 15:47 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


normalerweiße schaut die StdAFX.h von VC6.0 folgendermaßen aus (falls man mfc aktiviert hat und keine Socketfunktionalität aktiviert hat)


C++:
// stdafx.h : include file for standard system include files,
//  or project specific include files that are used frequently, but
//      are changed infrequently
//

#if !defined(AFX_STDAFX_H__75987D06_8471_4FAD_8C79_5EB64FC3C60B__INCLUDED_)
#define AFX_STDAFX_H__75987D06_8471_4FAD_8C79_5EB64FC3C60B__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define VC_EXTRALEAN        // Exclude rarely-used stuff from Windows headers

#include <afxwin.h>         // MFC core and standard components
#include <afxext.h>         // MFC extensions
#include <afxdisp.h>        // MFC Automation classes
#include <afxdtctl.h>        // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>            // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT


//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__75987D06_8471_4FAD_8C79_5EB64FC3C60B__INCLUDED_)



Standardmäßig wird die afx.h nicht direkt includiert, das geschieht denk ich mal in den afxwin.h usw ...

(Ich musste noch nie afx.h extra includieren, das find ich etwas seltsam das er deshalb einen fehler meldet)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
30.08.2002, 21:26 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
normal hat Flo Recht. Müsste eigentlich schon mit eigebunden werden, seltsam!


C++:
// Person.h: Schnittstelle für die Klasse CPerson.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PERSON_H__46323AA5_F14A_464F_8602_ABB3EE04D97C__INCLUDED_)
#define AFX_PERSON_H__46323AA5_F14A_464F_8602_ABB3EE04D97C__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <afx.h>
class CPerson : public CObject


Nur im Header includieren. Was für ein Version von VC++ nutzt Du denn?
Wenn es nicht läuft, schick mir mal 'ne Mail mit dem Projekt.
Das Projekt ist übrigens in Kapitel 13 und nicht in 14 zu finden!
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 30.08.2002 um 21:29 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
31.08.2002, 18:14 Uhr
AlienX



Ich hab zwar nur die Autoren Version, aber das Buch war dort dabei
(Game Programming Starter Kit 3.0)

Sag jetzt nicht, dass die so intelligent waren und ein Buch das man gar nicht benutzten kann mit drauf gepackt haben.
--
"Das Ganze ist mehr als nur die Summe seiner Teile" - Zitat von hab ich vergessen
 
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: