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
-
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?
-
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.