- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 9 von 9

Thema: Cstring einem char array zuweisen

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.04.2005
    Ort
    Minden
    Alter
    39
    Beiträge
    227

    Cstring einem char array zuweisen

    Anzeige

    E-Bike
    Hallo ich programmiere gerade ein Programm mit Visual C++

    Ich möchte eine Zeichenkette die in einer Variablen vom Typ Cstring einem char [] zuweisen. Der Compiler nölt aber.

    Zur Verdeutlichung

    char sBuf[] = m_tosend;

    m_tosend ist eine Variable vom Typ Cstring.

    Compilermeldung:
    error C2440: 'initializing' : 'class CString' kann nicht in 'char []' konvertiert werden

    Gibt es eine Möglichkeit wie ich das realisieren kann?

    Bin für jede Hilfe dankbar
    gruß ceekay \/

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Du mußt mit getlength/getbuffer etc. die Daten rausfummeln. (Cstring Help)
    so einfach "=" geht da nicht.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    CString m_tosend;

    char sBuf* = new char[m_tosend.GetLenth()+1];

    strcpy(sBuf,m_tosend.operator LPCSTR());

    jetzt steht dein CString im sBuff.

    Ok in einer Uni Code an wendung geht es nicht.

    Gruß

    PS: Ist auf dem Kopf getipp also noch mal genau den syntax prüfen.
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.04.2005
    Ort
    Minden
    Alter
    39
    Beiträge
    227
    Vielen Dank erstmal. Funktioniert super:
    Aus einem anderen Forum hab ich die Lösung:

    char sBuf[255];

    _tcscpy(sBuf,m_tosend);

    Also nochmal vielen Dank für die schnelle Hilfe
    gruß ceekay \/

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Die Visual Studio Help ist Dein Freund. CString hat dafür eine Methode, die den Pointer auf das char Array zurück gibt. Dann kannst Du Dir in vielen Fällen das Kopieren sparen.

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.04.2005
    Ort
    Minden
    Alter
    39
    Beiträge
    227
    Ich glaub dir gerne das ich sowas in der Hilfe finden würde. Für einen Anfänger ist es nicht immer ganz einfach das passende zu finden was man sucht.
    gruß ceekay \/

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2005
    Ort
    Obertraun
    Alter
    36
    Beiträge
    194
    Die Methode GetBuffer liefert dir sogar einen einen String (char*) den du verändern kannst!

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    GetBuffer ist mit vorsicht zu geniessen wie die anderen Funktion auch.
    den Der CString hat ref Zaehler wegen dem frei geben und so.
    Und der CString ist dann auch für "normale" Cstring funktionen gesperrt.

    Wenn du GetBuffer nimmst muß du dem CString auch sagen wann du Fertig bist. die Funktion weiß ich aber jetzt gerade nicht im Kopf.

    Die optimale Funktion findet man wohl nur wenn genau weiß was andere machen will und sein Stil ein bissle kennt.

    Klar steht viel in der Hilfe aber ich finde machmal einfach zu viel.

    Gruß
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2005
    Ort
    Obertraun
    Alter
    36
    Beiträge
    194
    Genau!

    Mit "CString::ReleaseBuffer" sagst du dem CString, dass du fertig bist.

    mfg

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress