base class undefined
-
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