Von C++ auf C++.Net ?
-
Hi all.
Ich programmiere seit einiger zeit C++, bisher habe ich mit Borland gearbeitet.
Nun möchte ich aber doch auf .Net (2003) umsteigen. Ich habe versucht ein Programm zu schreiben, was daten aus einer datei ausliest, diese speichert und anschliessend in eine andere Datei schreibt. Das ganze mit einer hübschen Oberfläche. Das projekt ist ein ".net Form" projekt. Ich mußte feststellen, dass es arge problemme gibt die standard C++ libs zusammen mit .net zu nutzen, vor allem die konvertierung der Strings ist recht schwerfällig und aufwendig.
Nun bin ich also vom <fstream> weg und hin zum StremReader/Writer,was recht gut funktioniert. Mein problemm ist (momentan) das Speichern der Daten, ich wollte es mit <vector> machen, da es aber Strings sind, klappt das nicht wirklich. Ich wäre für einen Besseren vorschalg dankbar.
Desweiteren finde ich dass, das C++ wie ich es mit .Net betreibeun muß mehr java/c# ist als c++. Ich möchte ungern auf den Kompfort der "zusammenclickbaren" oberfläche verzichten und da ist MFC nicht wirklich eine Alternative, von Borland wollte ich ganz weg, wenn jemand einige ansätze zu diesem thema hat, wäre ich sehr dankbar.Mfg Jaster
-
Ich würde gleich empfehlen auf c# umzusteigen, die Sprache ist ja auf .net ausgerichtet...
managed C++ ist irgendwie nicht so mein Ding (WinForms werden ja noch nichtmal unterstützt)
-
Das die STL nicht korrekt mit .NET arbeitet, ist offiziell bekannt. MS wird diesen Fehler in VisualC++ 2005 beheben. Nächstes Jahr dürfte es also soweit sein, das man die Version kaufen kann. Ansonst kannst du natürlich auch die 2005er Beta-Version downloaden oder auf einer der .NET-Zeitschriften auf CD-ROM kaufen.
Auch wird dann C++/CLI 2.0 rauskommen, und die ManagedC++-Syntax wird komplett umgekrempelt und schöner gemacht. D.h. sie wird auch lesbarer sein, da die aktuelle C++/CLI 1.0 Syntax nicht gerade schön aussieht.
2003er ist halt mehr ein erster Versuch C++ und .NET zu verbinden, was ja auch bis auf die STL sehr gut geklappt hat.
http://msdn.microsoft.com/vstudio/default.aspx?pull=/library/en-us/dnvs05/html/stl-netprimer.asp
-
Rodney schrieb:
WinForms werden ja noch nichtmal unterstützt
Aha? Das wäre mir neu. Beweise?
-
Jaster schrieb:
Mein problemm ist (momentan) das Speichern der Daten, ich wollte es mit <vector> machen, da es aber Strings sind, klappt das nicht wirklich. Ich wäre für einen Besseren vorschalg dankbar.
Schau Dir mal System.Collections und System.Collections.Specialized an.
-
Hi!
Also das fstream im Projekt nicht funktioniert habe ich auch schon festgestellt. Ich habe aber vor einiger Zeit eine Bibliothek für Ini-Dateien geschrieben. Diese habe ich als statische Bibliothek (.lib) erstellt. Dabei habe ich gemerkt, als ich sie in .NET eingesetzt habe das dies ohne Probleme funktioniert. Also wenn du mal was machen willst was nicht geht versuch es mal mit einer Lib oder Dll. Meine Bibliothek ist in Standard-C++ geschrieben. Das einzige was ich machen muss sind die Strings konvertieren. Dazu benutze ich 2 Funktionen (s. hier).
Die STL soll wie Artchi schon sagte nächstes Jahr auch unterstüzt werden und auch die Umwandlung von std::string zu System:String ist glaube ich auch einfacher, da .NET ja besser mit der STL zusammenarbeiten will. Außerdem können mit der STL dann auch .NET-Typen verwendet werden (STL.NET).
Code-Hacker
-
@Rodney nein ich möchte bei c++ bleiben.
@Noodles danke. java/c# läßt grüßen, aber was solls ?
@Code-Hacker nett, danke. ich werde allerdings versuchen ohne stl zu schreiben, aber es ist gut zu wissen das ich es doch noch kann falls ich endgültig verzweifelt bin
gibt es eine möglichkeit unmanaged zu schreiben und dabei die "zusammenclick-oberfläche" zu benutzen ?
-
gibt es eine möglichkeit unmanaged zu schreiben und dabei die "zusammenclick-oberfläche" zu benutzen ?
Klar, das ist doch gerade der Gag an VisualC++ .NET!!! Wenn du das VisualC++ .NET 2003 käuflich erworben hast, steht sogar im Einsteigerbuch drin, wie man Unmanaged und Managed Code mischen kann.
Und MS empfiehlt sogar Unmanaged Code in .NET-Projketen bei benötigter Performance zu benutzen.
Meine provokative Frage an Rodney sollte eigentlich schon aufzeigen, das man in seinen UnmanagedC++-Code auch die WinForms und somit ManagedC++ benutzen kann.
-
also .net habe ich aus einer msdnaa lizenz, da ich angestellter einer hochschule bin
wenn ich den artikel kurz überfloggen und wenn ich ihn richtig verstanden habe, kann ich die forms zwar unmanged nutzen, dann aber nicht die zusammclick-oberfläche, sondern muß sie per hand einbinden (ja ich bin faul
). zudem benutzen die forms ja fliessig System::String, den ich dann ständig in std::string umbasteln müßte, oder?
übrigens ist funktionieren die links in den news auf deiner seite nicht, die sidenavi links tun es.
-
Hi!
Du gehst auf neues Projekt erstellen und dann klickst du WinForms (.NET) Projekt an. Dieses Projekt findest du auch im C++-Unterordner der Projekte bei ".NET".
Ein Tutorial was ich allerdings zwischendurch (wenn ich Zeit habe, was also relativ selten ist) erweiter findest du hier (WinForms kommen denke ich auch noch, aber wohl nur ein kleines Kapitel):
http://www.visual-cplusplus.net/forum/viewtopic.php?t=71Code-Hacker