Dateipfad in einer Char[] speichern



  • Warum nihct direkt?

    MessageBox::Show(file);
    

    BTW: new ProgListe; erzeugt so wie es dasteht ein Memory-Leak. Zudem ist new nicht .NET (da wäre es gcnew ) und ich würde dir abraten C++ und C++/CLI zu mischen, auch wenn das gerade DER Anwendungsfall ist. C++/CLI ist u. a. genau deshalb ungeeignet um Programmieren zu lernen.



  • Danke erst noch mal für eure Infos.

    Zu lars.tetzlaff@gmx.net und Forum Team:
    Ja sorry habe mich mit der Robrik vertan.
    Danke für das verschieben.

    Zu JulianH
    Ja ich bin dabei mich mit VS C++/CLI zu beschäftigen.
    Habe zwar in anderen Sprachen schon Sachen geschrieben aber noch nicht in C++/CLI.
    Wuste bis dato noch nicht das C++ und C++/CLI unterschiedliche Dinge sind.
    C zu C++ war mich schon klar.
    Aber da man aller Hand an Infos im Internet findet kommt man als Anfänger schon durcheinander.
    Ader langsam lerne ich es ja.
    Bitte von daher um noch etwas Gedullt.

    Werde mir bei nächster Gelegenheit die Seite mal ansehen.

    theta
    Das das geht weiß ich schon, nur ich wollte den Inhalt in ein Array Speichern
    und die MassageBox soll mir dabei nur bestätigen das der file Inhalt in dem Speicher
    angekommen ist.

    Zu:
    ProgListe *Nr = new ProgListe;
    war ein anderen versuch von mir.
    Kann in diesem Fall außer acht gelassen werden.

    Aber Danke für die Info wuste nicht das "new" nicht zu C++/CLI gehört.

    Gruß Cospieler



  • Hallo Cospieler,

    gerade als Anfänger solltest du nicht mit C++/CLI anfangen, und besonders nicht mit einem GUI-Projekt, s.a. Windows Forms und Visual C++ MACHT KEINEN SINN!

    Wenn du C++ lernen willst, dann verwende im VS ein natives C++ Projekt (Win32 Application) und benutze als GUI z.B. Qt, wxWidgets o.ä. [HOWTO] Welches Toolkit für GUIS?

    Wenn du aber generell das .NET_Framework verwenden möchtest, dann nimm C# (der Ein- bzw. Umstieg von C++ ist recht leicht).



  • Danke Th69 für deine Info.

    Habe kurz vor deiner Nachricht den Beitrag "Windows Forms und Visual C++ MACHT KEINEN SINN!" gelesen.

    Am liebsten würde ich ja mit QT arbeiten, aber da das nicht in der Firma wo ich arbeite nicht verwendet wird, sondern nur VS, bin ich gezwungen mich auf den Sachverhalt ein zu lassen.
    Wenn ich Projekte später von einem Kollegen von mir übernehmen möchte.

    Jetzt ist natürlich klar das jetzt von manchen kommt, warum ich nicht meine Kollgen um Programmierrat frage. Ganz einfach die Zeit ist das Problem.
    Da er auch in anderen wichtigen Projekten unterwegs ist.
    Sind da meine Möglichkeiten begrenzt.
    Leider gibt es momentan auch nur ein Kollege der programmiert.

    Und der zweite Grund warum VS, weil unsere externen Programme und Maschinen nur mit VS kompatiebel sind.
    Also auch da bleibt mir keine andere wahl.

    Gruß Cospieler



  • Was genau meinst du mit "nur mit VS kompatibel sind"?
    Auch Qt kann mit dem Visual Studio (VS) programmiert werden (VS ist nur eine IDE).



  • Laut unser IT-Leiter möchte man in unserem Betrieb kein QT installieren, weil nur VS ingesetzt wird. Hänge mit Lizenzen zusammen.

    VS kompatiebilität war gemeint. Das dort Markros geschrieben werden die dann mit unserm externen Programmen genutzt werden können. Andere IDEs würde laut Hersteller nicht angenommen werden.

    Blicke da selber noch nicht durch.
    Ist aussage meiner Kollegen.
    Da ich ja noch am Anfang stehe, kann ich dazu kaum was dazu sagen.

    Mir kommt es so vor das sich keiner mit Qt auseinandersetzen möchte und in ihren trot bleiben möchten. Also bei VS.

    Gruß Cospieler



  • Habt ihr denn bisher nur Konsolenprogramme entwickelt oder welche GUI-Lib verwendet ihr ansonsten bei euch?

    Und deinem IT-Leiter kannst du sagen, daß er keinen Plan hat!



  • Hallo Th69
    Wie ich das momentan sehe sind es nicht nur Konsolenprogramme.
    Da ich erst in die Materie langsam rein komme,
    nehme ich an das es nur die Libs sind die Automatisch bei der VS Version dabei sind. Wir verwenden noch VS 2010.

    Da ich nur eine kleiner fisch bin im großen Aquarium kann ich beim IT-Leiter nicht sowas bringen.

    Können wir bitte jetzt zu meiner Frage zurück kommen.
    Denn ich möchte ja auch was lernen hier.

    Gruß Cospieler



  • #include <cstring>
    
    #include <msclr\marshal.h>
    
    using namespace System;
    using namespace System::Runtime::InteropServices;
    using namespace msclr::interop;
    
    int main(array<System::String ^> ^args)
    {
        String^ myString = "Hello World";
    
        {
            // Reine .NET (CLR) Variante mit ToCharArray()
            array<wchar_t>^ myCharArray = myString->ToCharArray();
        }
    
        {   // Reine .NET (CLR) Variante mit CopyTo(..)
            array<wchar_t>^ myCharArray = gcnew array<wchar_t>(256);
            myString->CopyTo(0, myCharArray, 0, myString->Length);
        }
    
        {   // .NET String nach ISO C++ const char* bzw. char Array mit Marshal::StringToHGlobalAnsi(..)
            System::IntPtr ptr = Marshal::StringToHGlobalAnsi(myString);
            const char* ptr2 = static_cast<const char*>(ptr.ToPointer());
            char myCharArray[256] = {};
            std::strcpy(myCharArray, ptr2);
            Marshal::FreeHGlobal(ptr);
        }
    
        {   // .NET String nach ISO C++ const char* bzw. char Array mit marshal_as<..>
            marshal_context context;
            const char* ptr = context.marshal_as<const char*>(myString);
            char myCharArray[256] = {};
            std::strcpy(myCharArray, ptr);
        }
    
        return 0;
    }
    


  • Vielen dank theta,
    deine Auflistung war das was ich gesucht habe.

    Gruß Cospieler


Anmelden zum Antworten