Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Beneroth

Alter Hase

  • »Beneroth« ist der Autor dieses Themas

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

1

17.04.2005, 17:46

Listing 8.15-> die erstellte html-datei ist LEER

Hallo zusammen

Ich brauch mal kurz die hilfe von jemanden, der das buch kennt....

Also: Ich habe alle dateien zusammen kompiliert, es gab zuerst ein paar Fehler, welche jedoch alle auf Schreib- oder Tippfehler beruhten und die ich alle beseitigen konnte, ich kompilierte alles erneut, es gab weder einen fehler noch eine warnung und das programm liess sich ausführen.

Dann hab ich die erstellte html-datei mit dem InternetExplorer geöffnet, aber sie war vollkommen leer :crying: ...

ich habe mir hier wohl irgendwo in der Logfile-klasse nen bösen laufzeitfehler eingebaut...

hatte irgend jemand vielleicht mal den gleichen fehler oder ne vermutung, wo es liegen könnte?

danke im voraus, gruss beneroth

Dave

Alter Hase

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

2

17.04.2005, 19:33

da du den ganzen code wohl selber getippt hast, ist es sehr schwer zu sagen, woran es liegen könnte.
worum genau gehts denn? was genau willst du machen und was soll "Ich habe alle dateien zusammen kompiliert" bedeuten? ein bisschen code wäre auch nicht schlecht...

Beneroth

Alter Hase

  • »Beneroth« ist der Autor dieses Themas

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

3

18.04.2005, 09:15

Also wie gestagt geht es hier um ein beispiel aus dem buch. zuerst wird eine klasse "Singleton" erstellt, ihre aufgabe besteht darin, dass eine von ihr geerbten klasse nur 1 instanz haben kann. "Singleton" funktioniert einwandfrei, sie habe ich auch schon einzeln getestet. dann gibt es die klasse "Logfile", ihre aufgabe besteht darin, eine html-datei zu erstellen und farbigen text in diese zu schreiben. Am schluss gibts noch eine kleine main-funktion, welche alle funktionen der logfileklasse aufruft. an der main-klasse liegts ebenfalls nicht, ich habe
mal die aus der cd reingenommen, und es kam zum gleichen fehler: die html-datei wird erstellt, ist jedoch völlig leer.

ich hab mal die warnstufe auf 4 gestellt, und da kamen 22 warnungen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
:\programme\microsoft visual studio\vc98\include\xmemory(39) : warning C4100: '_P' : Unreferenzierter formaler Parameter
c:\programme\microsoft visual studio\vc98\include\xmemory(41) : warning C4100: '_P' : Unreferenzierter formaler Parameter
c:\programme\microsoft visual studio\vc98\include\xlocale(242) : warning C4511: 'codecvt_base' : Kopierkonstruktor konnte nicht generiert werden
        c:\programme\microsoft visual studio\vc98\include\xlocale(223) : Siehe Deklaration von 'codecvt_base'
c:\programme\microsoft visual studio\vc98\include\xlocale(242) : warning C4512: 'codecvt_base' : Zuweisungsoperator konnte nicht generiert werden
        c:\programme\microsoft visual studio\vc98\include\xlocale(223) : Siehe Deklaration von 'codecvt_base'
c:\programme\microsoft visual studio\vc98\include\xlocale(296) : warning C4663: Aenderung der Sprache C++: Verwenden Sie folgende Syntax, um die Template-Vorlage 'codecvt' explizit zu spezialisieren:
        Vorlage<> class codecvt<unsigned short,char,int> ...
c:\programme\microsoft visual studio\vc98\include\xlocale(398) : warning C4511: 'codecvt<unsigned short,char,int>' : Kopierkonstruktor konnte nicht generiert werden
        c:\programme\microsoft visual studio\vc98\include\xlocale(296) : Siehe Deklaration von 'codecvt<unsigned short,char,int>'
c:\programme\microsoft visual studio\vc98\include\xlocale(398) : warning C4512: 'codecvt<unsigned short,char,int>' : Zuweisungsoperator konnte nicht generiert werden
        c:\programme\microsoft visual studio\vc98\include\xlocale(296) : Siehe Deklaration von 'codecvt<unsigned short,char,int>'
c:\programme\microsoft visual studio\vc98\include\xlocale(387) : warning C4018: '<' : Konflikt zwischen signed und unsigned
c:\programme\microsoft visual studio\vc98\include\xlocale(420) : warning C4511: 'ctype_base' : Kopierkonstruktor konnte nicht generiert werden
        c:\programme\microsoft visual studio\vc98\include\xlocale(410) : Siehe Deklaration von 'ctype_base'
c:\programme\microsoft visual studio\vc98\include\xlocale(420) : warning C4512: 'ctype_base' : Zuweisungsoperator konnte nicht generiert werden
        c:\programme\microsoft visual studio\vc98\include\xlocale(410) : Siehe Deklaration von 'ctype_base'
c:\programme\microsoft visual studio\vc98\include\xlocale(519) : warning C4663: Aenderung der Sprache C++: Verwenden Sie folgende Syntax, um die Template-Vorlage 'ctype' explizit zu spezialisieren:
        Vorlage<> class ctype<char> ...
c:\programme\microsoft visual studio\vc98\include\xlocale(611) : warning C4511: 'ctype<char>' : Kopierkonstruktor konnte nicht generiert werden
        c:\programme\microsoft visual studio\vc98\include\xlocale(519) : Siehe Deklaration von 'ctype<char>'
c:\programme\microsoft visual studio\vc98\include\xlocale(611) : warning C4512: 'ctype<char>' : Zuweisungsoperator konnte nicht generiert werden
        c:\programme\microsoft visual studio\vc98\include\xlocale(519) : Siehe Deklaration von 'ctype<char>'
c:\programme\microsoft visual studio\vc98\include\xlocale(552) : warning C4100: '_D' : Unreferenzierter formaler Parameter
c:\programme\microsoft visual studio\vc98\include\xlocale(554) : warning C4100: '_D' : Unreferenzierter formaler Parameter
c:\programme\microsoft visual studio\vc98\include\ostream(50) : warning C4512: 'sentry' : Zuweisungsoperator konnte nicht generiert werden
        c:\programme\microsoft visual studio\vc98\include\ostream(38) : Siehe Deklaration von 'sentry'
        c:\programme\microsoft visual studio\vc98\include\ostream(373) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::basic_ostream<char,struct std::char_traits<char> >'
c:\programme\microsoft visual studio\vc98\include\ostream(50) : warning C4512: 'sentry' : Zuweisungsoperator konnte nicht generiert werden
        c:\programme\microsoft visual studio\vc98\include\ostream(38) : Siehe Deklaration von 'sentry'
        c:\programme\microsoft visual studio\vc98\include\ostream(379) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> >'
c:\programme\microsoft visual studio\vc98\include\xlocale(513) : warning C4511: 'ctype<unsigned short>' : Kopierkonstruktor konnte nicht generiert werden
        c:\programme\microsoft visual studio\vc98\include\istream(573) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::ctype<unsigned short>'
c:\programme\microsoft visual studio\vc98\include\xlocale(513) : warning C4512: 'ctype<unsigned short>' : Zuweisungsoperator konnte nicht generiert werden
        c:\programme\microsoft visual studio\vc98\include\istream(573) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::ctype<unsigned short>'
c:\programme\microsoft visual studio\vc98\include\streambuf(181) : warning C4100: '_Loc' : Unreferenzierter formaler Parameter
        c:\programme\microsoft visual studio\vc98\include\streambuf(182) : Bei der Kompilierung der Member-Funktion 'void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::imbue(const class std::locale &)' der Klassenvorlage
c:\programme\microsoft visual studio\vc98\include\streambuf(181) : warning C4100: '_Loc' : Unreferenzierter formaler Parameter
        c:\programme\microsoft visual studio\vc98\include\streambuf(182) : Bei der Kompilierung der Member-Funktion 'void __thiscall std::basic_streambuf<unsigned short,struct std::char_traits<unsigned short> >::imbue(const class std::locale &)' der
 Klassenvorlage
c:\programme\microsoft visual studio\vc98\include\xstring(600) : warning C4245: 'initializing' : Konvertierung von 'const int' in 'const unsigned int', signed/unsigned-Konflikt
        c:\programme\microsoft visual studio\vc98\include\xmemory(59) : Bei der Kompilierung des statischen Datenelements 'const unsigned int std::basic_string<char,std::char_traits<char>,std::allocator<char> >::npos' der Klassenvorlage
Logfile.cpp
Linker-Vorgang läuft...

Logfile.exe - 0 Fehler, 22 Warnung(en)


...anscheinend hab ich da ws falsch eingebunden. Ich hoff ich verletze hier keine copyrightrechte, wenn ich hier mal die logfileklasse poste:

hier mal die datei Logfile.hpp

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#ifndef __CLOGFILE
#define __CLOGFILE

//Includes

//

#include <windows.h>
#include <stdio.h>
#include "Singleton.hpp"

//Defines

#define MAX_BUFFER 1024              //Maximale grösse für den Buffer

#define L_FAIL false                 //Funktion war erfolgreich

#define L_OK    true                 //Funktion ist fehlgeschlagen

#define g_pLogfile CLogfile::Get ()  //Makro zur einfacheren Verwendung


//Farben für den Text

enum FONTCOLORS
{
    BLACK,
    RED,
    GREEN,
    BLUE,
    PURPLE
};

//Klassendeklaration

//

class CLogfile : public TSingleton<CLogfile>
{
    //Memberfunktionen

public:

    CLogfile ();
    ~CLogfile ();

    void CreateLogfile  (const char *LogName);
    void WriteTopic     (const char *Topic, int Size);
    void Textout        (const char *Text);
    void Textout        (int Color, const char *Text);
    void Textout        (int Color, bool List, const char *Text);
    void fTextout       (const char *Text, ...);
    void fTextout       (int Color, const char *Text, ...);
    void fTextout       (int Color, bool List, const char *Text, ...);
    void FunctionResult (const char *Name, bool Result);

    //Membervariablen

private:

    FILE *m_Logfile;

};

#endif



vielleicht liegt der fehler auch nicht hier, aber ich hoff mal, jemand hat ne idee, was ich falsch gemacht haben könnte..

danke vielmal, gruss beneroth

Heiko Kalista

Treue Seele

Beiträge: 99

Wohnort: Hessen

  • Private Nachricht senden

4

18.04.2005, 10:07

Hi!

Schreibst Du in der main-Funktion auch etwas in die Logfile-Datei rein? Wie genau schaut das aus?

mfg,
Heiko

Beneroth

Alter Hase

  • »Beneroth« ist der Autor dieses Themas

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

5

18.04.2005, 10:22

ja klar, ich habe schön deinen code abgetippt, und als das nicht funktionierte, hab ich einfach den code von der cd reinkopiert, hat aber nichts geändert.

Hier der code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// C++ für Spieleprogrammierer

// Listing 8.11

// Anwendung der Logfile-Klasse

//

#include <iostream>
#include "Logfile.hpp"

using namespace std;

// Hauptprogramm

//

int main ()
{
    // Variablen

    //

    float Kontrolle = 123.456f; // Variable zum Testen


    // Neues Logfile erstellen

    g_pLogfile->CreateLogfile ("LOGFILE.html");

    // Überschrift erzeugen

    g_pLogfile->WriteTopic ("Unformatierter Text", 2);

    // Unformatierten Text ausgeben

    g_pLogfile->Textout ("Normaler, schwarzer Text<br>");
    g_pLogfile->Textout (RED, "Farbiger Text");
    g_pLogfile->Textout (BLUE, "Farbiger Text in Liste (1)");
    g_pLogfile->Textout (BLUE, "Farbiger Text in Liste (2)");
    g_pLogfile->Textout (BLUE, "Farbiger Text in Liste (3)");

    // Überschrift erzeugen

    g_pLogfile->WriteTopic ("Formatierter Text", 2);

    // Formatierten Text ausgeben

    g_pLogfile->fTextout ("Kontrollvariable: %f<br>", Kontrolle);
    g_pLogfile->fTextout (RED, "Kontrollvariable: %f", Kontrolle);
    g_pLogfile->fTextout (GREEN, true, "Liste Kontrolle: %f",
                          Kontrolle);
    g_pLogfile->fTextout (GREEN, true, "Liste Kontrolle: %f",
                          Kontrolle*2.0f);
    g_pLogfile->fTextout (GREEN, true, "Liste Kontrolle: %f",
                          Kontrolle*4.0f);

    // Eine erfolgreiche und eine fehlgeschlagene Funktion

    g_pLogfile->FunctionResult ("Funktion_Eins", L_OK);
    g_pLogfile->FunctionResult ("Funktion_Zwei", L_FAIL);

    // Logfile schließen

    g_pLogfile->Del ();

    return 0;
}


könnte es sein, das der destruktor alles löscht, bevor er die datei schliesst?

Werbeanzeige