[Windows Forms Application] String array
-
Tauwasser schrieb:
Na weil ich keine Ahnung hab, daher benutze ich das nicht Ok, das klappt soweit. Allerdings will ich das auf mein gesamtes Projekt angewandt haben und nicht bloß auf eine Sub. Wenn ich das oben in "#pragma once" reinschreibe (wie bei anderen Variablen, ich hoffe mal das ist nicht falsch?), dann meckert es wieder von wegen nicht initialisiert und int angenommen, aber C++ unterstützt kein automatisches annehmen von int usw.…
Das Problem ist: Du machst kein C++ sondern C++/CLI!!!
Ref-Klassen kann man in C++/CLI halt nun mal nur innerhalb einer Klasse definieren...Tauwasser schrieb:
Und woher kriegt man solche tollen Infos, was für Spezielle Dinge es gibt? Ich hab wie blöd nach "String Array c++" in Google gesucht, hat aber nix geholfen (naja, so bin ich ja hier gelandet, aber trotzdem^^)
Was Du hier machst, hat mit C++ nichts zu tun...
Wenn Du C++ machen willst, dann nimm folgendes:
#include <string> #include <vector> #ifdef _UNICODE typedef std::wstring _tstring; #else typedef std::string _tstring; #endif std::vector<_tstring> table;
-
oder einfach
typedef std::basic_string<TCHAR> _tstring;
-
Und wo finde ich dann eine gescheite Anleitung zur Arbeit mit C++/CLI, wenn es sowas spezielles ist? Das muss doch auch irgendwo Beginner-Tutorials geben, die einen da Schritt für Schritt einführen.
Kommandozeilenprogramm bringt mich leider bei meinem Vorhaben nicht weiter, geht also nicht umzudisponieren.cYa,
Tauwasser
-
Also was ich soweit eigentlich mibekommen habe gibt es fast fuer jede Sache im "normalen" (also native) C++ eine Klasse, die du verwenden kannst. Es gibt also auch eine Array Klasse, die es wirklich angenehm macht mit Arrays zu arbeiten!! Ich wuerde da an deiner Stelle infach immer schoen in der Hilfe von Visual C++ gucken- da findest du oft was (Es gibt zum beispiel auch eine Convert Klasse, die es dir einfach macht den Inhalt eine Variable in einen anderen Typen umzuwandeln- ich muss auf jeden fall sagen, dass ich das alles sehr angenehm finde!!) !! Das Problem bei der Verwendung dieser Klassen ist aber auch, dass man da nichts mit dem native C++ mischen darf- auf jeden Fall kann man da ziemlich boese Mecker vom Debugger bekommen
Und jetzt nochmal zu dem C#- die String Klasse hat doch mit C# nichts zu tun- oder???
-
Schau Dir mal die längeren Diskussionen mit STF-DIR an, da findest Du viele wertvolle Hinweise was man als Anfänger mit C++/CLI machen kann.
@Braunschweiger: System::String ist System::String, egal ob diese nun in C++/CLI oder C# , VB.NET oder sonst wo verwendet wird.
-
Also was muss ich mir jetzt mal genauer angucken, damit das so halbwegs funzt, wie ich das so haben will? Ich meine
Ref-Klassen kann man in C++/CLI halt nun mal nur innerhalb einer Klasse definieren...
Hilft mir nicht wirklich weiter. Was ist eine Ref-Klasse und warum muss das in einer Klasse definiert werden?
BTW: Naja, toll im letzten großen Thread von dem User ist dann als letzter Kommentar nur was sehr unfreundliches gefallen Ich glaub ich shift-delete alles was ich bis jetzt gemacht hab und dann hab ich nen paar graue Haare weniger, wenn ich das hier so les...
cYa,
Tauwasser
-
C++/CLI liefert Dir u.A. wegen der garbage collection (ohje, dafür das es falsch geschrieben ist setzt es bestimmt hiebe :D) besondere Regeln.
Solange Du nichts speziell aus der .Net benötigst (und wenn man völlig neu in C++ einsteigt braucht man das IMHO nicht) , sollte man erst einmal mit reinem C++ auf Konsole arbeiten.
Du kannst Dich so erst mal auf die eigentliche Sprache konzentrieren. Auch hilft Dir das ganze ein wenig, durch die fehlende Oberfläche, in Richtung trennung von Funktion und Oberfläche zu gehen.
C++/CLI liefert seine eigenen besonderheiten die leichter zu verdauen sind wenn man ein wenig Grundgerüst aufgebaut hat.
Auch wenn das jetzt in den Augen der Profis schmerzen wird:
Sehe C++/CLI als erweiterung von C++ an. Und den Hausbau fängt man auch nicht mit dem Dach an (Also erst mal etwas haben was man erweitern kann).C++ ist nicht die Sprache für schnelle Erfolge. Ich sehe es immer wieder mit einem kolelgen der alles in VB.Net zusammenklickt. Ich stosse dagegen mit C++/CLI und .Net ständig auf Probleme die ich lösen muss , erlange dadurch aber viel hintergrundwissen weil man einfach in einige Bereiche quer lesen muss.
Hinterher ist man immer schlauer, so hatte ich das Problem das ein delete auf eine managed klasse den Destruktor nicht aufrief. In der OnlineHilfe findet man dazu nichts wenn man nicht weiß wonach man sucht. Weil ich aber ständig an .Net Grundlagen scheitere (oder ADO.Net) hab ich eine Buchempfehlung die hier mla gefallen ist genutzt:
Pro Managed C++ and .NET 2.0 Development | ISBN: 159059469X und wurde darauf aufmerksam, das es in Managed C++ noch einen weiteren "Destruktor" gibt. Wenn man bei solchen Sachen nicht genau weiß das eigentlich der Destruktor hätte aufgerufen werden müssen wird man immer rätselnd davor sitzen.
Der Hinweis ein wenig Grundlagen und reines C++ zum lernen zu verwenden ist nicht böse gemeint sondern soll Dich vor Problemen bewaren das z.B. ich ab und an habe weil die Grundlagen nicht mehr so fest sitzen oder ich mit .Net ins kalte Wasser gesprungen bin.
Wenn hier die Einsicht kommt wird Dir das zukünftig weiterhelfen weil Du eine andere Art des Lernens entwickeln kannst und Du es gewohnt bist nach den Gründen zu forschen (und dabei sicherlich auch auf andere angewiesen bist, wie auf Hilfestellung hier im Forum).
Wir helfen Dir auch gerne weiter wenn es um ein .Net Problem geht, aber wenn Dir mehrere Leute hier sagen, das es Sinn macht erst mal mit etwas anderen zu arbeiten, nimm es nicht als "von oben herab" behandelt hin sondern als gut gemeinten Tipp , weil diese Personen einfach den Weg Deines Zieles kennen und Dir aus der dort gesammelten Erfahrung ein paar Stolpersteine ersparen können und Dir auf der Lernkarte einen angenehmeren Weg zeigen können.
Also nicht aufgeben sondern nach vorne schauen
-
Tauwasser schrieb:
Und woher kriegt man solche tollen Infos, was für Spezielle Dinge es gibt?
Wenn du unbedingt sofort C++/CLI lernen willst hol dir dieses Buch
Pro Visual C++/CLI and the .NET 2.0 Platform
von Stephen R. G. FraserAber wenn du als Anfänger unbedingt mit Formanwendungen anfangen willst,
dann solltest du entweder C# lernen (übrigens ist diese Sprache gar nicht blöde!) oder du könntest mit dem BCB und Formanwendungen arbeiten ...
-
Ah noch mal eine kurze Zusammenfassung des bereits geschriebenen ;o)
-
Knuddlbaer schrieb:
Ah noch mal eine kurze Zusammenfassung des bereits geschriebenen ;o)
oh sorry, wir haben den beitrag wohl gleichzeitig geschrieben
Edit:
nein, hab die 2te Seite bis zu meinem Posting wohl gar net bemerkt