Ich bin jetzt ganz durcheinander ( VC++/.NET/CLI )
-
Schlecht in dem Zusammenhang, das es laut deines ersten Postings C++-Beispiele sein sollten/könnten. Ich habe es daraufhin überspitzt dargestellt. Als C-Code ist es natürlich i.O. Aber wenn mir jemand sagen würde, er programmiert so C++, wäre es halt seeehr schlecht.
Der Flusi mag zwar erst noch erscheinen, aber MS wird nicht jede Version von Grund auf neu programmieren. Die werden immer wieder die letzte Version nehmen und diese wieder aktualisieren. Indirekt ist der Flusi also schon älter.
-
Hallo,
dank Dir für die Antworten.
Jetzt verstehe ich aber nicht waruzm die MS Leute C benutzen , denn das SDK ist definitiv ganz neu. Der Flusie Code mag teilweise übernommen und verbessert worden sein, aber das interface zum verbinden mit dem FSX ist definitiv ganz neu geschrieben !!Aber wir schweifen eigentlich ab ... was ist denn nun mit dem char typen ?
C++ schjeints ja nicht so wirklich mit Strings zu haben oder ?
In der ASCII Tabelle stehen werte von 0-128.
Jemand hat vorhin, weiss nicht ob du das warst , geschrieben ein char ist für genau ein Zeichen. Wie/warum kann dann aber ein char z.b. -127 annehmen ?und warum passiert folgendes :
#include "stdafx.h" using namespace System; int main(array<System::String ^> ^args) { char var; var = Console::Read(); Console::WriteLine(L"Var : {0}", var); return 0; }
"Var : 97 "
????
Warum das denn wenn char ein Zeichen ist ??
Matthias
-
Jetzt verstehe ich aber nicht waruzm die MS Leute C benutzen , denn das SDK ist definitiv ganz neu. Der Flusie Code mag teilweise übernommen und verbessert worden sein, aber das interface zum verbinden mit dem FSX ist definitiv ganz neu geschrieben !!
Und warum sollten die MS-Leute es nicht in C oder C++ weiter coden? C und C++ sind ausgewachsene Sprachen die sich bewährt haben. Nur weil es andere neuere Sprachen gibt, muß es nicht heißen, das sie diese benutzen müssen.
Zu deiner char-Frage: du solltest was Computer angeht von ganz vorne anfangen. Bei Computern sind 0 und 1 die Grundlage und somit auch Zahlenwerte. char ist intern immer ein Zahlenwert. Der Computer kennt in wirklichkeit keine Buchstaben.
Console::WriteLine ist eine .NET-Funktion. Warum diese char nicht als Buchstaben auf der Konsole ausgibt, kann ich dir nicht sagen. Da sind andere in Sachen .NET fitter. Jedenfalls ist es so, das eine Funktion/Klasse darüber entscheidet, wie etwas letztendlich auf dem Bildschirm oder Drucker ausgegeben wird. Aber intern ist alles trotzdem immer eine Zahl.
-
Hallo,
ok, sowas in der Art hatte ich mir auch gedacht, also das das irgendwie nur an der ausgabe auf der Console liegt, bzw. an der Art wie ein char ausgegeben wird.
Naja, es gibt ja auch die String^ Klasse. Die kann dann schon etwas besser mit Strings umgehen.
Ich wollte ja nur eine Bestätigung das ein Char, wenn ich ihm 10 zu weise auch 10 ist und wenn ich ihm -120 zuweise ist er halt -120. Nur auf der Konsole wird bei manchen Arten der ausgabe ( cout, Console::WriteLine ) ein Char anders ausgegeben .Ok, also danke ich dir !
MAtthias
-
STF-DIR schrieb:
Ich wollte ja nur eine Bestätigung das ein Char, wenn ich ihm 10 zu weise auch 10 ist
Wenn du
char c = 10;
schreibst, dann ist das ein Linefeed.
char c = '10';
trifft's eher.
Schau mal da rein: http://www.torsten-horn.de/techdocs/ascii.htm
MfG
GPC
-
Hallo,
danke für den Link...so meinte ich das auch und hatte ich das ja nun endlich auch verstanden.
Ich danke Euch also allen für die Hilfe !Matthias
-
Das FlightSim SDK hat in der Tat .NET Bindings, ich würd da aber weniger C++/CLI verwenden als C#. Die Sprache ist um einiges klarer, und wenn du mit C++ auch erst anfängst, dann wärst du mit C# besser dran.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum C++/CLI mit .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Artchi schrieb:
C++/CLI ist offiziell eine C++-Erweiterung. C++ ist schon komplex genug, und als Anfänger sich auch noch C++/CLI aufzuhalsen ist echt mutig, wenn nicht sogar gewagt.
Deshalb vielleicht der Rat: suche dir ein Tutorial/Buch über ISO-C++. Wenn du das kannst, wird dir C++/CLI viel einfacher fallen.
Das ist absoluter quatsch, dass kann ich aus eigener Erfahrung berichten.
Ich glaub ihr quatscht alle nur das nach was man früher mal gesagt hat.Man hat auch mal gesagt, dass man erstmal C lernen sollte um dann C++ zu lernen.
Ich habe mein Fachinformatiker in C++/CLI gemacht und hab zuvor auch wenig C++ geschrieben.
Kannst Du mir mal sagen warum ich vorher cout lernen soll um später WriteLine benutzen zu können?!
Selbst die doppelt verkette Liste in ISO C++ in aufwendiger als in C++/CLI.
Ich kann in C++/CLI managend und unmanagend Code schreiben und dadurch lerne ich schon ISO C++, weil halt viele Sachen noch mit unmanagend Code gemacht werden.
Lerne C++/CLI und Du wirst sehen, dass Du zuvor nicht ISO C++ lernen musst, weil Du das zwangsläufig lernst.
Ich habe hier auch gepostet bevor ich mein Studium angefangen habe, wenn ich auf diese Antworten gehört hätte wäre ich wahrscheinlich jetzt immer noch mit QBasic beschäftigt.
Gruß, Sven
-
Nun, für Deinen persönlichen Lernfortschritt kann hier keiner etwas. Wenn man sich mit der Komplexen Welt von C++/CLI beschäftigt sollte man die Basis darunter verstehen.
In C++/CLI treffen zwei Welten aufeinander. Die Welt der Garbage Collection und in Unmanaged die Welt der eigenen Ressourcenverwaltung. Hättest Du Dich mal mit C++ bechäftigt würde Dir auffallen das es deutlich mehr ist als cout und cin.
Schau Dir mal Beiträge in diesem Forum an. Durch fehlende Grundlagen wird C++/CLI nicht verstanden. Es fehlt die Ahnung was Klassen sind. Man versucht über die Klasse auf Instanzmember zu zugreifen.
Hätte man sich vorher mal C++ angeschaut hätte man diese Probleme durchaus nicht gehabt.
Und warum verwendet man C++/CLI überhaupt ? Mir fallen da nur wenige Punkte ein.
1. Man hat zuvor alles in C++ gemacht und will das weiterhin machen (da ist man mit C++/CLI aber leider am falschen Fleck, speziell wenns mit dem Formdesginer zusammenhängt. :o( )
2. Man benötigt eine Schnitstelle von Managed zu Unmanaged. Diese muss aber sehr stabil laufen, also sollte man C++ in den Grundlagen schon kennen.C++/CLI wird man wohl primär da einsetzten wo man viel mit unmanaged Code zu tun hat. Hat man dann nicht verstanden wie man C++ verwendet, trägt man eine geladene und entsicherte Pistole in seiner Hose und wartet nur darauf sich in den Fuß zu schiessen.
C++ != cout. cout gehört zu einer Bibliothek die genormt für C++ zur Verfügung steht. Die STL zu kennen ist kein Fehler, vorallem wenn man viel unmanaged schreiben muss. Aber auswendig muss man diese natürlich nicht kennenn.
.Net ist aber ebenso eine Blibliothek für C++/CLI wie es die STL für C++ ist.
Jemand der nicht gewillt ist sich mal ein weilchen mit C++ zu beschäftigen weil er rein .Net verwenden möchte wäre in C# besser aufgehoben.
Die Praxis wird Dir die Worte auf dauer schon näher bringen.
-
Und weils noch nicht erwähnt wurde: Der C Code sieht mir verdammt nach WinAPI aus. Hat also nix mit schlechtem Code zu tun, oder wie auch immer das genannt wurde, sondern mit der Windows Programmierschnittstelle. Da hätten wir dann wieder den Vorteil von C++/CLI wo man die "alten" unmanaged Module mit neuem managed Code mischen kann.
-
Dappeljuh schrieb:
Und weils noch nicht erwähnt wurde: Der C Code sieht mir verdammt nach WinAPI aus. Hat also nix mit schlechtem Code zu tun, oder wie auch immer das genannt wurde, sondern mit der Windows Programmierschnittstelle. Da hätten wir dann wieder den Vorteil von C++/CLI wo man die "alten" unmanaged Module mit neuem managed Code mischen kann.
Wieso vorteil ? C++/CLI ist schlicht weg exakt für solche Dinge gedacht. Der Vorteil von nem Auto ist ja auch nicht, das es fahren kann ;o)