GUI - Variable für CMD unter C++ Visual Studio 2010 einbauen



  • Warum willst du es unbedingt ueber unschoene Hacks von String nach char* und system machen, wenn du auch eine saubere Variante ueber die Process-Klasse benuzten kannst?

    http://msdn.microsoft.com/en-us/library/0w4h05yb.aspx
    http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.aspx

    So kannst du sogar den Output der Kommandos umleiten falls du ihn spaeter weiterverarbeiten willst.

    Aber auch ich empfehle dir fuer .NET-Programme C# (oder auch VB) anstatt C++/CLI zu verwenden. Es ist nur als Interop-Sprache fuer nativen zu managed Code gedacht, nicht als Primaersprache.



  • C# und VB ist für mich uninteressant, weil ich angefangen habe C++ zu lernen...und jetzt nicht mehr wechseln kann, weil die Prüfung auch bald bevor steht.
    Trotzdem thanks.



  • Ich sage nicht, dass du die Programmiersprache wechseln sollst. Ich sage nur, dass C++/CLI fuer "normale" Programme keinen sinn macht. C++ und C++/CLI haben, wie bereits erwaehnt auch nicht wirklich viel gemein, deswegen wirst du es mit C++-Vorkenntnissen (also ISO-C++) nicht einfacher haben C++/CLI zu lernen und umgekehrt. Im Gegenteil, dein Versuch C++ (oder besser gesagt C) [ system ] und C++/CLI [ System::String ] zu mischen zeigt ja gerade, dass man schnell durcheinander kommt.
    Du kannst ISO-C++ ruhig weiter machen, aber fuer .NET empfiehlt es sich wirklich C# oder VB zu lernen. Und glaub mir, zusaetzlich eine Programmiersprache zu lernen klingt schlimmer als es ist. Wenn du einmal die C++-Basics hast, dann faellt das Lernen anderer Programmiersprachen gar nicht mal so schwer. C++ als Erstsprache hat von mir auch einiges an Zeit zum lernen gefordert; als ich VB als Zweitsprache gelernt hab hat das Lernen der Basics und grundlegenden Syntax gerade mal 2 Wochen in Anspruch genommen weil viele Konstrukte vertraut aussahen. Und ab dann wars eigentlich nur noch das lernen der Moeglichkeiten des .NET-Frameworks, was du ja durch deine C++/CLI-Erfahrung schon hast.

    Auf jeden Fall viel Erfolg weiterhin beim (richtigen 😉 ) C++ 🙂



  • yazzi2010 schrieb:

    C# und VB ist für mich uninteressant, weil ich angefangen habe C++ zu lernen...und jetzt nicht mehr wechseln kann, weil die Prüfung auch bald bevor steht.
    Trotzdem thanks.

    Nein. Du hast nicht angefangen C++ zu lernen. Zumindest hast Du keinen C++ code gepostet. Es ist C++/CLI. Und behaupte jetzt nicht, du hättest nicht gesagt, du hättest angefangen C++ zu lernen.

    Wenn ich auf Irrtümer in der Fragestellung aufmerksam mache, halte ich es für die Allgemeinheit durchaus interessant. Und wenn Du eine vorsichtig ausgedrückt "unglückliche" Lösung vorschlägst (Aufruf von "system") und darauf beharrst, diese weiter zu verwenden, dann frage ich mich meinerseits, ob das so hilfreich ist.

    Besser wäre es, Du würdest auf die Kritik reagieren und beispielsweise fragen, wie man es denn eleganter lösen könnte, als mit "system". Ich kann Dir das nicht sagen, da ich kein C++/CLI kann, dafür aber C++.

    Es gab übrigens mal ein Kommentar von Bjarne Stroustroup zu C++/CLI, wo er meint, dass es durchaus eine interessante Programmiersprache sein könnte, der Name aber sehr unglücklich gewählt wurde, da es eben kein C++ ist.



  • C++/CLI ist auch C++, steht doch im Namen drin 😃

    Ich habe mir bei Bekannten noch Hilfe geholt und es hinbekommen.
    Meinen Code hab ich dann nach vielen Überlegungen in die GUI eingeschrieben, hatte dann zuerst viele viele Fehler.
    Habe alle ab arbeiten können, aber bei einem Fehler komme ich jetzt nicht weiter.
    Vielleicht kann mir ja da jetzt jemand weiter helfen?

    for(a=0; a<16; a=a+1){
    if(aC[a].box == "1"){
    System::String^ suchPfad = "dir /S \"" + this->textBox1->Text + aD[a].end + "\">> D:\\Ausgabe.txt";
    

    Bei Zeile "System::String^......" bekomme ich den Fehler:
    C2679: Binärer Operator '+': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)
    C2678 in der Zeile davor konnte ich beheben, bei diesem weiß ich jetzt keinen Rat. 🙄
    Wer kann helfen?

    🙂



  • yazzi2010 schrieb:

    C++/CLI ist auch C++, steht doch im Namen drin 😃

    Njet. :p

    yazzi2010 schrieb:

    for(a=0; a<16; a=a+1){
    if(aC[a].box == "1"){
    System::String^ suchPfad = "dir /S \"" + this->textBox1->Text + aD[a].end + "\">> D:\\Ausgabe.txt";
    

    aD ist ein Array von std::string's, nehme ich mal an?
    Wobei C++/CLI glaube ich standardmaessig Unicode ist, probier falls obiges nicht zutrifft mal die Zeichenketten in der Unicode-Form

    L"Schtring"
    

    zu schreiben.


  • Administrator

    yazzi2010 schrieb:

    C++/CLI ist auch C++, steht doch im Namen drin 😃

    Auf zwei Seiten sagen dir zig verschiedene Leute, dass C++/CLI nicht gleich C++ ist. Und du glaubst das immer noch nicht und gibst so eine Antwort zurück? 😃

    Dann nehme ich an, ist C++, C# und C++/CLI auch C (C++/CLI sogar doppelt!), steht doch im Namen drin! 🤡

    Und darf ich raten? aD[a].end resultiert in einem std::string ? Da siehst du schon die Interop-Komponente von C++/CLI. Es gibt std::string und System::String^ und man kann die beiden nicht einfach ineinander überführen. Es hat keinen Sinn als Anfänger C++/CLI zu lernen!

    Grüssli



  • Danke Jonas,
    ja aD ist ein Array von std::string.

    @Dravere
    Das Problem welches ich vorher hatte. konnte ich auch mit Hilfe lösen.
    Wenn ich das hin bekommen hab dann muß das jetzt auch irgendwie gehn^^

    😃


  • Administrator

    yazzi2010 schrieb:

    @Dravere
    Das Problem welches ich vorher hatte. konnte ich auch mit Hilfe lösen.
    Wenn ich das hin bekommen hab dann muß das jetzt auch irgendwie gehn^^

    Ja, es geht. Mein Problem dabei ist, wenn ich dir die Lösung dazu gebe oder dich auf die Lösung hebe, dann haust du mit dieser ab und hast den zentralen Punkt in diesem Thread nicht verstanden. Und das sehe ich langfristig als grösseres Problem als dein aktuelles Problem mit der Konvertierung.

    Wenn ich dir also in deinem kleinen Problem jetzt helfe, ohne dass ich sehe, dass du das grössere Problem verstanden hast, habe ich danach ein schlechtes Gewissen, weil ich das Gefühl hätte, dich falsch beraten zu haben.

    Grüssli



  • Nein die andere Sache ist nicht mein Problem, momentan hab ich nur das eine.
    Na egal, dann lassen wir es hier, hier bekommt man eh immer nur wenig bis gar keine Hilfe bzw. eine Erklärung wenn man ein Problem hat.
    Entweder wird dir hier im Forum gesagt steig doch um auf C#, das will ich aber nicht. Und das muß dann auch nicht immer und immer wieder in jedem Thread erwähnt werden. Ich habs hier im Forum schon zuuuuu oft gelesen!! 😡
    Oder es heißt nein das ist kein C++ das ist C++/CLI. 😮
    Um die zwei Sachen gehts mir aber nicht, es geht um den Fehler.
    Oder um Erklärungen die ich brauche.
    Und so richtig Vernünftige bekommt man hier selten.


Anmelden zum Antworten