Pfad für out.open per Variabel übergeben



  • Du versucht, einen System::String (keine Ahnung, was das ist. CLI?) einem std::string zuzuweisen. Das sind aber unterschiedliche Typen.



  • Soweit bin ich auch. Aber wie kann ich das umgehen? 🙂



  • minder (der anfänger) schrieb:

    Soweit bin ich auch. Aber wie kann ich das umgehen? 🙂

    Dazu musst Du Dir die Schnittstellen der verwendeten Klassen (System(?)::String und std::string) ansehen und schauen, ob's dazwischen eine Verbindung gibt ...

    Gruß,

    Simon2.



  • Könnet man mein Vorhaben auch anderst realisieren? 🙂



  • Warum verwendest Du überhaupt diese 2 verschiedenen Formen der "Zeichenkettenverarbeitung" ?

    Gruß,

    Simon2.



  • minder (der anfänger) schrieb:

    Könnet man mein Vorhaben auch anderst realisieren? 🙂

    Auf CLI verzichten und Standard C++ benutzen?

    Ansonsten:
    Gewusst wie: Konvertieren von System::String zu Standardzeichenfolge



  • Ich habe nicht viel ahnung. Ich bin noch neu. Ich will eigentlich nur einen Pfad aus einem Eingabefeld in eine Variable speichern und damit den out.open füttern



  • Für die Konvertierung hier gucken (FAQ):
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-158664.html

    Ausserdem würde managed und unmanaged Code nur mischen wenns nicht anders geht.

    Simon



  • WinAPI oder MFC wären direkte Alternativen zu dem CLI-Gedöhns. Oder Du benutzt externe APIs für grafiscge Oberflächen wie z.B. Qt oder gtk+.



  • Hallo

    Ich hab das Programm zum laufen gebracht. Jedoch kommt folgendes Fester beim debugen:
    Eine nicht behandelte Ausnahme des Typs "System.FormatException" ist in mscorlib.dll aufgetreten.

    Zusätzliche Informationen: Die Zeichenfolge darf nur genau ein Zeichen lang sein.

    in folgender linie ist der Fehler:
    path[500] = System::Convert::ToChar(pfad->Text);



  • minder (der anfänger) schrieb:

    Ich habe nicht viel ahnung. Ich bin noch neu. Ich will eigentlich nur einen Pfad aus einem Eingabefeld in eine Variable speichern und damit den out.open füttern

    Aber offensichtlich überschreiten DEine Ziele Deine Möglichkeiten.
    => Ziele niedriger stecken.(z.B. auf GUI verzichten)
    Ich weiß: Heutzutage wird oft suggeriert, mit einfachem "Zusammenkopieren" könne man alles machen (und sich den mühsamen Weg des Verstehens ersparen) ... aber das stimmt eben letztlich doch nicht oder nur sehr eingeschränkt.
    Echtes Verstehen ist eben nur durch Verstehen zu ersetzen - und nicht durch "Nimm dies und werde glücklich". 😃

    minder (der anfänger) schrieb:

    ...Ich hab das Programm zum laufen gebracht. ...

    Augenscheinlich nicht.

    minder (der anfänger) schrieb:

    ...path[500] = System::Convert::ToChar(pfad->Text);

    😮 😮 😮
    Huh, das ist ja grausig!
    Sorry, aber das bestätigt mich noch mehr in meiner Annahme: Versuche erst einmal Dir, anhand kleinerer Programme, die Grundlagen des Programmierens anzueigenen...
    Hier besonders: Einlesen, Verändern und Ausgeben von Zeichenketten.

    Gruß,

    Simon2.

    Gruß,

    Simon2.



  • Ich hab nicht sachen zusammen kopiert. Ich arbeite mit Visual C++.



  • minder (der anfänger) schrieb:

    Ich hab nicht sachen zusammen kopiert. Ich arbeite mit Visual C++.

    Aber dann musst Du doch Folgendes beantworten können:

    Simon2 schrieb:

    Warum verwendest Du überhaupt diese 2 verschiedenen Formen der "Zeichenkettenverarbeitung" ?

    Gruß,

    Simon2.

    (Bitte "Kopieren" nicht zu wörtlich definieren: Auch das Nutzen eines Codegenerators führt letztlich nicht zu selbstgeschriebenem Code).

    Gruß,

    Simon2.



  • minder (der anfänger) schrieb:

    Ich hab nicht sachen zusammen kopiert. Ich arbeite mit Visual C++.

    Vor allem aber arbeitest du nicht mit dem Standard C++, sondern mit C++/CLI. Dafür gibt es ein separates Forum da C++/CLI != C++ ist. Und du mischt managed mit unmanaged Code ohne wenn und aber. C++/CLI ist zwar dafür geeignet zwischen der nativen C++ Programmierung und der Managed-Welt (.Net Framework & Co) zu vermitteln, aber es kommt immer auf die Mischung an.

    cu André


Anmelden zum Antworten