Bedingung für Haltepunkt



  • Hallo

    Möchte einen Haltepunkt in Visual Studio mit einer Bedingung erstellen.

    Also folgender Aufbau:

    class CMyClass
    {
    private:
    CString m_name;
    };

    CMyClass* var = new CMyClass();

    Nun soll die Bedingung lauten: var->m_name == "Test" Wenn ich diese Bedingung so formuliere erhalte ich den Fehler:

    Der Haltepunkt kann nicht festgelegt werden. Die Haltepunktbedingung kann nicht ausgewertet werden: CXX0058: Fehler: Überladenen Operator nicht gefunden.

    Was mache ich falsch?



  • Der Operator == ist nicht definiert für Strings.
    Benutz mal strcmp.

    Grüße
    Huddi



  • Dann kann ich zwar den Haltepunkt setzen bekomme aber sobald ich das Programm starte folgende Fehlermeldung.

    Der folgende Haltepunkt kann nicht gesetzt werden, Zeile 84 ('Funktionsname(Parameter)', Zeile21), wenn "strcmp(var->m_name,"Test") == 0" ist "True"
    Die Haltebedingung kann nicht ausgewertet werden: CXX0047: Fehler: Argumentliste passt nicht zur Funtion


  • Mod

    Meines Wissens nach ist es nicht möglich eine Funktion in einem Datenbreakpointzu benutzen.

    Exrahiere den Zeiger in CString und vergleiche jeden einzelnen char Array membeer.



  • Exrahiere den Zeiger in CString und vergleiche jeden einzelnen char Array membeer.

    Und das alles in dem Breakpoint? Wie soll das gehen?


  • Mod

    Ist doch nicht schwer, hier vereinfacht:

    ptr[0]=='T' && ptr[1]=='e' && ptr[2]=='s' && ptr[3]=='t' && ptr[4]==0
    


  • Hallo. Achso ok. Danke. Aber mein String ist ziemlich lang. Dann ist es vieleicht doch einfacher einfach den strcmp in den Code einzubauen.


Anmelden zum Antworten