Zuweisung wird ignoriert?



  • In solchen Fällen denke ich immer "mensch ist das unlogisch... aber der Fehler muss bei mir liegen". Schauen wir mal:

    Folgende Zuweisung wird ignoriert:

    m_ePMDInputMode = IMAGEMODE;
    

    Der Typ ist:

    enum PMD_INPUTMODE
    {
    	CAMMODE,
    	IMAGEMODE
    };
    
    PMD_INPUTMODE m_ePMDInputMode;
    

    Initialisiert wird das ganze mit CAMMODE. Nach der Zuweisung ist m_ePMDInputMode immernoch CAMMODE??



  • Schön.



  • Kommst Du so auf Deine >2000 Posts?

    Es wird noch lustiger: Laut Debugger initialisiere ich einen anderen enum am Anfang auf DISCONNECTED und 2 Zeilen weiter hat er plötzlich den Wert CONNECTED, ganz ohne Zuweisung... später sogar den Wert PENDING, der nur einmal im Programm zugewiesen wird, da läuft er aber explizit NICHT durch.



  • Der Fehler liegt woanders.

    (ich verstehe Michael E.'s Reaktion - was erwartest Du, sollen wir Dir sagen dass das Zuweisen von Enums eine Compilererweiterung ist oder so? ;))

    Wenn sich Stack-Variablen wie von Geisterhand ändern riecht das üblicherweise nach Bereichsüberschreitung, wenn sich Variablen garnicht ändern nach Überdeckung zweier Variablen mit gleichen Namen.



  • Vielleicht könntest du ein wenig mehr Code posten. Bis jetzt ist dein Code nämlich korrekt.



  • "Etwas Code posten?" 😃 Das wäre zuviel für dieses Forum 😉

    Ich hab nun alle enums durch chars ersetzt, dann merkte ich, das er wieder ein ähnliches Spiel anfing. Habe dann mal ein komplettes Rebuild gemacht und siehe da, es geht zum Glück wieder. Also habt Ihr jetzt eine Antwort parat, wenn morgen jemand so eine Frage hat 😉



  • Lol, das ist in nem anderen Board die Standardantwort, weil das Projekt und seine Plugins irgendwie ein suboptimales Build-System haben - "Mach ma make clean und probier dann nochmal" 😃

    Hier wäre ich irgendwie nicht im Traum auf den Vorschlag gekommen 😉



  • LordJaxom schrieb:

    sollen wir Dir sagen dass das Zuweisen von Enums eine Compilererweiterung ist oder so? 😉

    Was soll das jetzt genau bedeuten? Das Zuweisen von Enums wirklick eine Compilererweiterung ist und laut Standard gar nicht erlaubt ist? 😮 😮 Das würde mich nämlich sehr wundern...



  • Nein, ist es nicht.

    Der OP klang halt ein bissel so: "Ich hab alles richtig gemacht, aber die Zuweisung wird einfach ignoriert". Was soll man denn da sagen?

    @JSpelter: mit "etwas Code" war nicht gemeint, daß Du hier Dein ganzes Projekt reinkopieren sollst, sondern einfach einen möglichst kleinen Ausschnitt, der ausreichend um das Problem aufzuzeigen.



  • Jester schrieb:

    @JSpelter: mit "etwas Code" war nicht gemeint, daß Du hier Dein ganzes Projekt reinkopieren sollst, sondern einfach einen möglichst kleinen Ausschnitt, der ausreichend um das Problem aufzuzeigen.

    Hat doch ohnehin keinen Sinn weil so ein Problem nicht so trivial ist (die Zuweisungen innerhalb einer Funktion zu verfolgen sollte jeder mit einem Debugger schaffen der bereits mit Enums arbeitet).

    Meistens ist es eine Speicherüberschreibung in einer anderen Funktion, Multithreading-Probleme, etc. für die eine Ferndiagnose ohnehin nicht klappt.

    MfG SideWinder


Anmelden zum Antworten