Problem mit Zeiger auf Struktur in Klasse (war: hm, ich steh vor einer geschlossenen Tür...)



  • Hi hab mal ein Beispiel für eine Struktur, die sicher geht, hab sie aus einem meiner Programme kopiert, ich hoffe das hilft dir weiter:

    [cpp]
    struct Parameter
    {
            char Datum  [10];
            char Zeit   [10];
            char Pumpe  [20];
            char Ventil [20];
            int lux;
            int vorlauf;
            int speicher;
            int ruecklauf;
    };
    struct Parameter stPrmtr;
    

    [/cpp]
    Die Struktur heißt Parametr, weil darin die Parameter für mein Programm enthalten sind, den Zeiger darauf hab ich stPrmtr für "StrukturParameter" genannt.



  • ups. hab ich doch glatt ueberlesen. schon alle temp. dateien geloescht? deklarier die struct doch mal wie in c++ üblich. (struct name { ... };)



  • Sunday schrieb:

    ups. hab ich doch glatt ueberlesen. schon alle temp. dateien geloescht? deklarier die struct doch mal wie in c++ üblich. (struct name { ... };)

    selber Fehler mit:

    struct PPO2
              {
              __int16     PKE;
              __int16     IND;
              __int16     PWE2;
              __int16     PWE1;
              __int16     PZD1;
              __int16     PZD2;
              __int16     PZD3;
              __int16     PZD4;
              __int16     PZD5;
              __int16     PZD6;
              };
    


  • Tom7 schrieb:

    den Zeiger darauf hab ich stPrmtr für "StrukturParameter" genannt.

    das ist kein Zeiger! sondern nur eine variable vom typ StrukturParameter



  • Sunday schrieb:

    Tom7 schrieb:

    den Zeiger darauf hab ich stPrmtr für "StrukturParameter" genannt.

    das ist kein Zeiger! sondern nur eine variable vom typ StrukturParameter

    Sorry hab ich ja gemeint nur eben nicht geschrieben SORRY :p



  • roN schrieb:

    - Bei Vertausch kommt selber Fehler

    Bei IND oder bei PKE?



  • MFK schrieb:

    Bei IND oder bei PKE?

    IND



  • der fehler liegt definitiv wo anders und wird fälschlicherweise dort angezeigt. du solltest nochmal, mittels eines funktionierenden backups vom vortag (gut wenn eines da ist), die gemachten änderungen nachvollziehen, ansonsten halt nochmal alles ueberpruefen.



  • Okay, hab' immernoch ein Problem, ich habjetzt ein globales header-File gemacht, welches 'einfach' überall zu includen ist, wo golbale Datentypen benutzt werden. Da ist auch PPO2 als typ drin, d.h. so:

    // globale Deklarationen
    typedef struct
    {
    __int16     PKE;
    __int16     IND;
    __int16     PWE2;
    __int16     PWE1;
    __int16     PZD1;
    __int16     PZD2;
    __int16     PZD3;
    __int16     PZD4;
    __int16     PZD5;
    __int16     PZD6;
    }PPO2;
    
    // typedef für die Eigenschaft ParamError(function pointer)
    typedef void __fastcall (__closure *Prm_p)(PPO2 *Value);
    // typedef für die Eigenschaft TxTraceWndw(function pointer)
    typedef void __fastcall (__closure *TrcTx_p)(PPO2 *tx, int Bool);
    // typedef für die Eigenschaft RxTraceWndw(function pointer
    typedef void __fastcall (__closure *TrcRx_p)(PPO2 *rx, int Bool);
    

    Ok, jetzt hab ich das file in A&B includiert und zusätzlich hab ich A&B in C inkludiert und jetzt heissts bei der deklaration voin PPO2:
    [C++ Fehler] globdec.h(17): E2238 Bezeichner 'PPO2' mehrfach deklariert
    PPO2 ist aber sicher nur 1x deklariert....Ich bin am verzweifeln 😞



  • halt, halt, halt, ich hab die defines vergessen, ok, jetzt kommt troz der Änderung wieder der 'alte' Fehler bei IND... 😞


Anmelden zum Antworten