Visual C++ - System::String ^ in const char* umwandeln

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Visual C++ - System::String ^ in const char* umwandeln

    Ich habe bisher mit dem Borland C++ Builder 5.0 gearbeitet. Nun bin ich aus verschiedenen Gründen dabei, mich in Visual C++
    einzuarbeiten und schreibe zur Zeit eines meiner Programme dafür um.
    Nun bin ich aber auf folgendes Problem gestoßen, dass ich einfach nicht gelöst bekomme:
    die Funktion _spawnl() erwartet als zweites und drittes Argument einen const char*. Ich habe allerdings den Wert nur
    als System:: String ^. Wie kriege ich den jetzt umgewandelt?
    Ich hoffe, irgendjemand von euch kann mir helfen, ansonsten wäre das Projekt gescheitert (Das ist nämlich die Hauptfunktion).
    Gruß, Spellmaker.
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • Du solltest dir bewusst sein, dass das kein reines C++ ist, sondern C++/CLI, welches das .Net Framework bei der Ausführung vorraussetzt. Das nur so am Rande.

    Zu deinem Problem: Google liefert mir das hier: support.microsoft.com/?id=311259
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.
  • Danke Boddlnagg, die Sache mit .Net hätte ich vielleicht erwähnen sollen.
    Ich habs mal ausprobiert, aber folgender Code
    int x=_spawnl(_P_NOWAIT,PtrToStringChars(listBox2->Text),PtrToStringChars(listBox2->Text),NULL);
    liefert mir diese Fehler:
    1>f:\c++\visualstudio\faststart\faststart1\Form1.h(309) : error C2664: '_spawnl': Konvertierung des Parameters 2 von 'cli::interior_ptr<Type>' in 'const char *' nicht möglich
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • Warum arbeitest du nicht mit der Standard String Klasse std::String?? Ich mein, dass ist viel einfacher und kürzer string.c_str() zu schreiben als int x=_spawnl(_P_NOWAIT,PtrToStringChars(listBox2->Text),PtrToStringChars(listBox2->Text),NULL);
    Aber probier mal
    int x=_spawnl(_P_NOWAIT,PtrToStringChars(listBox2->Text), (const char *)PtrToStringChars(listBox2->Text),NULL);
    In meiner psychisch soziologischen Konstellation, manifestiert sich die absolute Dominanz positiver Impressionen meines Individuums.
    Kurz: Ich bin geil!

  • Das Thema ist so gut wie erledigt, Boddlnagg hat mir gerade was im Chat gezeigt. Wenns funktioniert hat,
    melde ich mich wieder^^

    Edit: Das Problem hat sich erledigt, ich habe einen anderen Weg über die Process Komponente genommen. (Für alle, dies interessiert)
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Spellmaker ()