base class undefined
-
Sehr ausführliche Fehlermeldungen
Am besten kopierst du einfach mal das, was dir dein Compiler ausspuckt, hier rein.
-
ok, sorry
das wenn ich die base klasse niergendswo includiert habe:
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_intervall.h(46) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(56) : error C2275: 'CTime' : illegal use of this type as an expression
c:\program files\devstudio6\vc98\mfc\include\afx.h(1532) : see declaration of 'CTime'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(56) : error C2146: syntax error : missing ';' before identifier 'test'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(56) : error C2065: 'test' : undeclared identifier
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(58) : error C2275: 'CTime' : illegal use of this type as an expression
c:\program files\devstudio6\vc98\mfc\include\afx.h(1532) : see declaration of 'CTime'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(58) : error C2146: syntax error : missing ';' before identifier 'test2'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(58) : error C2065: 'test2' : undeclared identifier
Cc_LogfileAnalyse.cpp
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_slmys.h(46) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_intervall.h(46) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_total.h(47) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_LogfileAnalyse.cpp(55) : error C2512: 'Cc_Total' : no appropriate default constructor available
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_LogfileAnalyse.cpp(71) : error C2512: 'Cc_Total' : no appropriate default constructor available
Cc_SLMYs.cpp
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_slmys.h(46) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_SLMYs.cpp(54) : error C2275: 'CTime' : illegal use of this type as an expression
c:\program files\devstudio6\vc98\mfc\include\afx.h(1532) : see declaration of 'CTime'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_SLMYs.cpp(54) : error C2146: syntax error : missing ';' before identifier 'test'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_SLMYs.cpp(54) : error C2065: 'test' : undeclared identifier
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_SLMYs.cpp(56) : error C2275: 'CTime' : illegal use of this type as an expression
c:\program files\devstudio6\vc98\mfc\include\afx.h(1532) : see declaration of 'CTime'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_SLMYs.cpp(56) : error C2146: syntax error : missing ';' before identifier 'test2'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_SLMYs.cpp(56) : error C2065: 'test2' : undeclared identifier
Cc_Total.cpp
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_total.h(47) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Total.cpp(59) : error C2275: 'CTime' : illegal use of this type as an expression
c:\program files\devstudio6\vc98\mfc\include\afx.h(1532) : see declaration of 'CTime'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Total.cpp(59) : error C2146: syntax error : missing ';' before identifier 'test'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Total.cpp(59) : error C2065: 'test' : undeclared identifier
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Total.cpp(61) : error C2275: 'CTime' : illegal use of this type as an expression
c:\program files\devstudio6\vc98\mfc\include\afx.h(1532) : see declaration of 'CTime'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Total.cpp(61) : error C2146: syntax error : missing ';' before identifier 'test2'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Total.cpp(61) : error C2065: 'test2' : undeclared identifier
Generating Code...
Error executing cl.exe.AnalyseToolTester.exe - 26 error(s), 0 warning(s)
-------------------------------------------------------------------------
mit basis klassen includes
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_slmys.h(46) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_total.h(47) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_logfileanalyse.h(126) : error C2146: syntax error : missing ';' before identifier 'IntervallStatistics'
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_logfileanalyse.h(126) : error C2501: 'Cc_Intervall' : missing storage-class or type specifiers
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_logfileanalyse.h(126) : error C2501: 'IntervallStatistics' : missing storage-class or type specifiers
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(53) : error C2512: 'Cc_LogfileAnalyse' : no appropriate default constructor available
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(56) : error C2275: 'CTime' : illegal use of this type as an expression
c:\program files\devstudio6\vc98\mfc\include\afx.h(1532) : see declaration of 'CTime'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(56) : error C2146: syntax error : missing ';' before identifier 'test'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(56) : error C2065: 'test' : undeclared identifier
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(58) : error C2275: 'CTime' : illegal use of this type as an expression
c:\program files\devstudio6\vc98\mfc\include\afx.h(1532) : see declaration of 'CTime'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(58) : error C2146: syntax error : missing ';' before identifier 'test2'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(58) : error C2065: 'test2' : undeclared identifier
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(84) : error C2512: 'Cc_LogfileAnalyse' : no appropriate default constructor available
Cc_LogfileAnalyse.cpp
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_slmys.h(46) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_intervall.h(46) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_total.h(47) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_LogfileAnalyse.cpp(55) : error C2512: 'Cc_Total' : no appropriate default constructor available
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_LogfileAnalyse.cpp(71) : error C2512: 'Cc_Total' : no appropriate default constructor available
Cc_SLMYs.cpp
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_intervall.h(46) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_total.h(47) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_logfileanalyse.h(124) : error C2146: syntax error : missing ';' before identifier 'SlmyStatistics'
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_logfileanalyse.h(124) : error C2501: 'Cc_SLMYs' : missing storage-class or type specifiers
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_logfileanalyse.h(124) : error C2501: 'SlmyStatistics' : missing storage-class or type specifiers
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_SLMYs.cpp(51) : error C2512: 'Cc_LogfileAnalyse' : no appropriate default constructor available
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_SLMYs.cpp(54) : error C2275: 'CTime' : illegal use of this type as an expression
c:\program files\devstudio6\vc98\mfc\include\afx.h(1532) : see declaration of 'CTime'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_SLMYs.cpp(54) : error C2146: syntax error : missing ';' before identifier 'test'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_SLMYs.cpp(54) : error C2065: 'test' : undeclared identifier
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_SLMYs.cpp(56) : error C2275: 'CTime' : illegal use of this type as an expression
c:\program files\devstudio6\vc98\mfc\include\afx.h(1532) : see declaration of 'CTime'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_SLMYs.cpp(56) : error C2146: syntax error : missing ';' before identifier 'test2'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_SLMYs.cpp(56) : error C2065: 'test2' : undeclared identifier
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_SLMYs.cpp(82) : error C2512: 'Cc_LogfileAnalyse' : no appropriate default constructor available
Cc_Total.cpp
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_slmys.h(46) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_intervall.h(46) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_logfileanalyse.h(125) : error C2146: syntax error : missing ';' before identifier 'TotalStatisics'
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_logfileanalyse.h(125) : error C2501: 'Cc_Total' : missing storage-class or type specifiers
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_logfileanalyse.h(125) : error C2501: 'TotalStatisics' : missing storage-class or type specifiers
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Total.cpp(56) : error C2512: 'Cc_LogfileAnalyse' : no appropriate default constructor available
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Total.cpp(59) : error C2275: 'CTime' : illegal use of this type as an expression
c:\program files\devstudio6\vc98\mfc\include\afx.h(1532) : see declaration of 'CTime'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Total.cpp(59) : error C2146: syntax error : missing ';' before identifier 'test'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Total.cpp(59) : error C2065: 'test' : undeclared identifier
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Total.cpp(61) : error C2275: 'CTime' : illegal use of this type as an expression
c:\program files\devstudio6\vc98\mfc\include\afx.h(1532) : see declaration of 'CTime'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Total.cpp(61) : error C2146: syntax error : missing ';' before identifier 'test2'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Total.cpp(61) : error C2065: 'test2' : undeclared identifier
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Total.cpp(87) : error C2512: 'Cc_LogfileAnalyse' : no appropriate default constructor available
Generating Code...
Error executing cl.exe.AnalyseToolTester.exe - 44 error(s), 0 warning(s)
-
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_slmys.h(46) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_total.h(47) : error C2504: 'Cc_LogfileAnalyse' : base class undefined
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_logfileanalyse.h(126) : error C2146: syntax error : missing ';' before identifier 'IntervallStatistics'
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_logfileanalyse.h(126) : error C2501: 'Cc_Intervall' : missing storage-class or type specifiers
d:\hte_wsp\u\vobs\hte\code\common\checkworkloadanalysetool\analysetool\cc_logfileanalyse.h(126) : error C2501: 'IntervallStatistics' : missing storage-class or type specifiersWenn ich mir das ansehe, hast du vermutlich die Reihenfolge der Anweisungen vertauscht - du mußt erst den Basis-Header includen und danach die abgeleiteten Klassen definieren.
(eventuell sind bei dir auch Include-Guards hilfreich)
PS: CTime ist übrigens eine Klasse der MFC - wenn du eine eigene Variable CTime nennst, gibt es einen Namenskonflikt.
-
ok ich versuchs mal
ich wollte ja auch die klasse CTime benutzen, das ich nicht eine klasse von mir
-
kannst du mir ein beispiel zeigen ich versteh nicht ganz was du meinst. weil ich habe in den h files die basisklassen header zu oberst
-
Offenbar nicht, sonst würde er nicht erst die fehlende Basisklasse bemängeln und dann die Fehler aus dem Basis-Header bearbeiten.
//Basis-Header: #ifndef BASIS_H #define BASIS_H class Basis { //... }; #endif
//Basis-Implementation: #include "Basis.h" //...
//Kind-Header #ifndef KIND_H #define KIND_H #include "Basis.h" class Kind : public Basis { //... }; #endif
//Kind-Implementation #include "Kind.h" //...
-
habe ich gemacht geändert hat sich jedoch nix :S
-
was ich noch komisch finde das es immernoch ctime nicht erkennen will obwohl das eine klasse von mfc ist :S und einen stadart konstruktor besizt
-
vielleicht solltest du mal vollständigen (soweit relevant - d.h. #directiven und essentielle deklarationen) code (stdafx.h, basisklassenen-header und einen header einer der abgeleiteten klassen) posten
-
@Header-Aufteilung: So langsam komme ich mit deinem Kuddel-Muddel nicht mehr zurecht. Irgendwo ist da noch ein Fehler drin, den meine Kristallkugel leider nicht aufspüren kann.
*guckt sich nochmal die Fehlersammlung an*
Kann es sein, daß du im Basis-Header die abgeleiteten Klassen einbinden willst? Wenn ja, wozu ist das gut?@CTime: Ist vermutlich ein Folgefehler deiner vorigen Verwirrungen - nach einem Fehler endet der Compiler in einem undefinierten Zustand, wodurch er möglicherweise an der Stelle mit dem "CTime xyz;" nicht mit einer Variablendeklaration rechnet.
-
ok ich habe herrausgefunden an was das lag, ich hatte mit den unterklassen eine aggregation und wollte gleichzeitg sachen von der basisklasse vererben....hihi bitte nicht hauen...aber habe jetzt andere fehler
erst mal dieser hier:
svcrtd.lib(crtexe.obj) : error LNK2001: unresolved external symbol _main
Debug/AnalyseTool.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.aber die CTime fehler sind immernoch vorhanden. das verstehe ich einfach nicht
ein beispiel auzug:
Compiling...
Cc_Intervall.cpp
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(56) : error C2275: 'CTime' : illegal use of this type as an expression
c:\program files\devstudio6\vc98\mfc\include\afx.h(1532) : see declaration of 'CTime'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(56) : error C2146: syntax error : missing ';' before identifier 'test'
D:\HTE_WSP\U\VOBS\HTE\CODE\COMMON\CheckWorkloadAnalysetool\AnalyseTool\Cc_Intervall.cpp(56) : error C2065: 'test' : undeclared identifier
Error executing cl.exe.dabei benutze ich den default constructor und es geht gleich nicht .....
-
@Linker: Offenbar versuchst du, eine MFC-Anwendung für die Konsole zu complieren - da sucht der Linker nach der main(), die das Hauptprogramm erstellt.
@CTime: Gibt mal die Zeile, wo der Fehler auftritt - am besten mit der näheren Umgebung.
-
code posten - ratespiele machen wir hier nicht
-
das hauptprogramm ist ein dialogfeld basierendes gui, in dem gibt nix sowas wie ein main, wie kann ich ds dem linker sagen?
das ist die zeile mit dem CTime fehler:
Cc_Intervall::Cc_Intervall()
{
Was = "";Vom = CTime test; //Vom ist ein member vom typ CTime
-
Vom = CTime test;
keine ahnung was du machen willst...
Vom = CTime();
oder
Vom = CTime( test );
bzw.
Vom = test;
oder
CTime test;
-
ist eine ganz ormale zuweisung bzw initalisierung der member
bespielsweise:
CTime test;
Vom = test;
-
Und warum schreibst Du es dann nicht so ins Programm?!
Vom = CTime test; <- ist C++-technisch Blödsinn
-
habe gemeint das würde keinen unterschied machen, danke!!!
und das mit der verlinkungs geschichte was muss ich dort ändern damit er weiss das das hauptprogramm diese gui später sein wird und kein mein von nöten ist?
-
C++ erlaubt dir, überall dort, wo ein statement erlaubt ist, auch eine deklaration hinzuschreiben (und in for und if statements). dass heisst eber noch lange nicht, dass eine deklaration (hier:test) in ausdrücken zulässig ist.
-
ok, dank aber eben wie schon erwähnt wege dieser mein verlinkungs geschichte was kann ich da tun? das hautpprogramm ist ein gui welches ein eigenes projekt darstellt aber im glichen workspace ist