GlobaleVariablen.h Compiler-Fehler



  • Hallo,

    in meinem Projekt benutze eich eine GlobaleVariablen.h in der die Elemente, sowie einige Variablen definiert werden.
    Diese wird in mehrere .cpp-Dateien eingebunden.

    GlobaleVariablen.h

    #ifndef GlobaleVariablen_H
    #define GlobaleVariablen_H
    
    //GUI-IDs
    #define IDC_Edit_Rampe 108
    ...
    
    //Variablen
    extern bool bBesetzt
    extern int iAnzahlPaletten
    ...
    
    #endif
    

    Projekt compiliert ohne Fehler und läuft wie erwartet.

    Nun möchte ich nach einiger Zeit einige Änderungen vornehmen (natürlich Quellcode dokumentiert und Flow-Chart).

    Neue .cpp-Datei und .h-Datei zum Pojekt hinzugefügt

    #include "GlobaleVariablen.h"
    

    ==>Compilerfehler C2146 Fehlendes ';' vor Bezeichner
    ==>Compilerfehler C2501 Fehlende Speicherklasse oder Typspezifizierer

    Wenn ich die Include-Anweisung aus der neuen .cpp-Datei auskommentiere wird ordnungsgemäs kompiliert.

    Hoffentlich nicht zu kompliziert geschildert... Ist dieses Verhalten schonmal erfolgreich behoben worden ?

    ==>Eisbeer<==



  • Also an sich kenne ich den Fehler.

    Die Semikolonsens im Header vergessen, der Fehler wird erst in der *.cpp angezeigt.

    Aber wieso kommt er nicht bei den ganzen anderen *.cpp-Dateien, die auch diesen Header einbinden?



  • Vllt. steht dort

    #include "GlobaleVariablen.h";
    

    ?!?



  • Genau das ist ja das Verwirrende.

    Kein Semikolon hinter #include
    die Header-Datei ist auch okey.

    ==>Eisbeer<==



  • Eisbeer schrieb:

    Genau das ist ja das Verwirrende.
    Kein Semikolon hinter #include
    die Header-Datei ist auch okey.

    So ok, wie die im Eingangsposting?
    Zeig mal die letzen Zeilen der Header-Datei.



  • GlobaleVariablen.h

    #ifndef GlobaleVariablen_H
    #define GlobaleVariablen_H
    
    //GUI-IDs
    #define IDC_Button_Fertig 101
    #define IDC_Button_Verschoben 102
    #define IDC_Button_an_Rampe 103
    #define IDC_Liste_Lieferschein 104
    
    #define IDC_Edit_Ankunfts_Zeit 105
    #define IDC_Edit_Spedition 106
    #define IDC_Edit_Gefahrgut 107
    #define IDC_Edit_Rampe 108
    
    #define IDC_ListView 109 //Aktuell
    #define IDC_ListView2 110 //Angemeldet
    
    //Variablen
    extern bool bABesetzt;
    extern char *cTour_Nummer;
    
    extern HDC hDCHauptfenster_Hintergrund_text_Status;
    extern HDC hDCbmpAlt_Hintergrund_text_Status;
    extern HBITMAP hbitmap_Hintergrund_text_Status;
    #endif
    

    ==>Eisbeer<==



  • Probier mal:

    #ifndef GlobaleVariablen_H
    #define GlobaleVariablen_H
    
    //GUI-IDs
    #define IDC_Button_Fertig 101
    #define IDC_Button_Verschoben 102
    #define IDC_Button_an_Rampe 103
    #define IDC_Liste_Lieferschein 104
    
    #define IDC_Edit_Ankunfts_Zeit 105
    #define IDC_Edit_Spedition 106
    #define IDC_Edit_Gefahrgut 107
    #define IDC_Edit_Rampe 108
    
     //Aktuell
    #define IDC_ListView 109
     //Angemeldet
    #define IDC_ListView2 110
    
    //Variablen
    extern bool bABesetzt;
    extern char *cTour_Nummer;
    
    extern HDC hDCHauptfenster_Hintergrund_text_Status;
    extern HDC hDCbmpAlt_Hintergrund_text_Status;
    extern HBITMAP hbitmap_Hintergrund_text_Status;
    #endif
    


  • Hallo,

    leider nicht besser.

    Wenn

    extern HDC hDCHauptfenster_Hintergrund_text_Status;
    extern HDC hDCbmpAlt_Hintergrund_text_Status;
    extern HBITMAP hbitmap_Hintergrund_text_Status;
    

    auskommentiert wird gibts keine Compiler-Fehler, leider wird der Programmablauf hierdurch gestsört.

    Kann mir jemand den Zusammenhang zum Einfügen einer neuen Quelldatei erläutern?
    Wie gesagt, in der Projektmappe liegen bereits einige Quelldateien die die besagte Datei beinhalten.

    ==>Eisbeer<==



  • Okay! In Deiner Header-Datei fehlt zu Beginn:

    #include <windows.h>
    

    Dort werden die Typen HDC und HBITMAP erst eingeführt.



  • Danke daran hatte ich nicht gedacht.

    ==>Eisbeer<==


Log in to reply