std::wstring: Verkettung mit + hat keine Wirkung

Die Lösung ist wahrscheinlich offensichtlich, aber ich sehe es nicht. Ich habe diese einfache C++ - code:

//Build the search pattern
//sPath is passed in as a parameter into this function
trim_right_if(sPath, is_any_of(L"\\"));
wstring sSearchPattern = sPath + L"\\*.*";

Mein problem ist, dass der + - operator hat keine Auswirkungen (geprüft im debugger). Der string sSearchPattern wird initialisiert, der Wert von sPath nur.

Hinweise: sPath ist ein wstring.

Beispiel, was ich erreichen will:

sSearchPattern -> C:\SomePath\*.*

Mehr Info:

Wenn ich mir anschaue, sPath im debugger sehe ich zwei NULL-Zeichen nach dem letzten Zeichen. Wenn ich mir anschaue, sSearchPattern, die "\*.*" ist angehängt, aber nach zwei NULL-Zeichen. Eine Erklärung für das?

  • Was ist die Erklärung der sPath?
  • Wie stellen Sie fest, dass es keine Auswirkungen hat? Was tun Sie mit sSearchPattern?
  • Poste realen code, bitte. Dein problem ist fast garantiert woanders.
  • Sind Sie wirklich zuordnen char* zu wstring?
  • Hinzugefügt Deklaration von sPath. Ich überprüfte den Inhalt der sSearchPattern in den debugger. Und dies ist der eigentliche code.
  • Ich kann nicht sehen, jede Erklärung der sPath, obwohl 🙁
  • sPath ist eine Funktion der parameter.
  • Bitte ändern Sie nicht Ihre Frage hin und her, aber anstatt es zu aktualisieren, durch hinzufügen von zusätzliche Infos.
  • Ich legte es in. Wenn dies isn ' T das richtige zu tun, wird er haben, um es zu beheben. Ansonsten würden wir schließen müssen, ist diese Frage nicht beantwortbar.
  • Die Hölle, dann schreiben Sie einfach den code, der notwendig ist, um das Problem zu reproduzieren! Schauen Sie in meinem Beispiel-code. Dieser funktioniert. Was ist anders in Ihnen?
  • Ich fügte hinzu, eine zweite ` to C:\SomePath\`. In deinem code gibt es zwei \` after C:`, richtig?

InformationsquelleAutor Helge Klein | 2011-10-16
Schreibe einen Kommentar