vc++ 8.0
-
mal ne ganz dumme hinterwäldlerfrage:
ist C# zwingend komponente von .NET, also brauche ich .NET-runtimes wenn ich C# nutze?und nochwas: ich habe mal eine exe gesehen, in der stand was von vc und .NET drin, lief aber ohne .NET...
kann ich also mit dem neuen vc .NET (oder wie auch immer das jetzt offiziell heisst) auch normale nicht-.NET-programme erstellen?greets,
---loki
-
C# ist eine Sprache, für die es unterschiedliche Implementierungen gibt, u.a. .Net von Microsoft und .Gnu von Microsoft-Gegnern.
C++.Net würde implizieren, dass du das .Net Framework nutzen willst. Amsonsten kannst du mit dem Compiler auch noch ganz normale Standard-C++ Anwendungen entwickeln. Der Compiler kann allerdings nur Windows-binaries erstellen.
-
Macht es Sinn, sich auf die Kombination C++ / .NET / WindowsForms einzulassen oder sollte man, sobald man sich für .NET / WindowsForms entscheidet, konsequent auf C# umstellen?
-
Ich finde C# sprachlich besser (subjektiv) und insbesondere die Benutzung des .Net Frameworks ist unter C# auch _wesentlich_ schöner und weniger umständlich (objektiv).
-
Erhard Henkes schrieb:
Macht es Sinn, sich auf die Kombination C++ / .NET / WindowsForms einzulassen oder sollte man, sobald man sich für .NET / WindowsForms entscheidet, konsequent auf C# umstellen?
abwarten was Visual Studio 2005 bringt.
Da wird managed C++ in neue Dimensionen geführt - weil man dort echtes C++ und managed C++ (also .NET) in einer Binary mischen kann.Was es bringt und wie das sein wird: keine Ahnung - da muss man wohl warten.
Aber momentan sollte C# die erste Wahl sein.
-
Hallo
Shade Of Mine schrieb:
Da wird managed C++ in neue Dimensionen geführt - weil man dort echtes C++ und managed C++ (also .NET) in einer Binary mischen kann.
huh ? Ich dacht', das könne man jetzt schon. Was verstehst du in diesem Zusammenhang unter "echtem C++" ?
mfg
-
CanDL schrieb:
Was verstehst du in diesem Zusammenhang unter "echtem C++" ?
Na echtes C++ - so wie man C++ nunmal kennt. Ohne die Verkrüppelungen durch .NET
Mit Templates, mit Mehrfachvererbung, mit allem. Eben C++, im gegensatz zu managed C++
-
Das kann man aber auch jetzt schon. Vielleicht konnte man das in der Version 7.0 noch nicht, aber die wurde abgelöst...
-
CanDL schrieb:
Das kann man aber auch jetzt schon. Vielleicht konnte man das in der Version 7.0 noch nicht, aber die wurde abgelöst...
Wäre mir neu. Kannst du Code oder einen Link posten?
-
c++eus schrieb:
Beispiel (für neue Überschreibungssyntax):
struct A { virtual void f(); }; struct B { virtual void f(); }; struct D1 : A, B { virtual void x() = B::f; // D1::x überschreibt B::f }; struct D2 : A, B { virtual void x() = A::f, B::f; // D2::x //überschreibt A::f und B::f }; struct D3 : A, B { virtual void x() = f; // D3::x überschreibt A::f und B::f }; struct D4 : A, B { virtual void x() = A, B; // Fehler, weder A noch B //hat eine virtuelle Methode x };Shade Of Mine schrieb:
CanDL schrieb:
Was verstehst du in diesem Zusammenhang unter "echtem C++" ?
Na echtes C++ - so wie man C++ nunmal kennt. Ohne die Verkrüppelungen durch .NET
Mit Templates, mit Mehrfachvererbung, mit allem. Eben C++, im gegensatz zu managed C++
wenn ich mir das ankucke (oberes zitat) ist das doch auch kein standard c++ nur ein anderes mc++
-
Das soll ja auch kein StdC++ sein, sondern eine Erweiterung darstellen. Ich finde sie unnötig, aba M$ baut halt so Zeug ein...

-
Das ist IMHO alles so eine unheilige Mischung aus nicht-standard-C++ mit teilweise managed Komponenten, einer unerträglichen Syntax (myPointer = __gc new System::String(S"blablub"); ) und tausend weiteren hässlichen Sachen.
Ich finde die Sprache C++ einfach nicht geeignet, um damit in managed Umgebungen zu entwickeln.
IMHO sollte man, wenn man auf .Net setzt, schon C# verwenden. Ich glaube sowieso, dass MS das erstmal nur übergangsweise macht, um die "konservativen" C++ Programmierer erstmal vom Framework zu überzeugen und später erst von der neuen Sprache.
-
Gerard schrieb:
c++eus schrieb:
Beispiel (für neue Überschreibungssyntax):
[...]
[/cpp]Shade Of Mine schrieb:
CanDL schrieb:
Was verstehst du in diesem Zusammenhang unter "echtem C++" ?
Na echtes C++ - so wie man C++ nunmal kennt. Ohne die Verkrüppelungen durch .NET
Mit Templates, mit Mehrfachvererbung, mit allem. Eben C++, im gegensatz zu managed C++
wenn ich mir das ankucke (oberes zitat) ist das doch auch kein standard c++ nur ein anderes mc++
Hi,
du kannst mit C++/CLI sowohl ganz normal C++ programmieren, als auch .net nutzen. Wenn du .net nutzen willst (gemeint sind die Klassen des .net Frameworks), dann musst du aber den gemanageden Teil von C++/CLI nutzen, also so:
IrgendeineManagedeKlasse ^ handle = gcnew IrgendeineManagedeKlasse();Für das Handle wird dann ein GC eingesetzt. Nachteil: der Destruktor wird unbrauchbar, ein Finalizer tritt an seine Stelle (er wird so deklariert:
!Klassenname() { //... }
-
ManagedC++ wird in der nächsten Version eleganter. Soll heißen, es wird in der Syntax lesbarer und hübscher, da die aktuelle Syntax nur eine "Notlösung" ist.
Und ganz wichtig: MS will das ManagedC++ mit in die ECMA einbringen, soll heißen es wird wohl bald eine ISO-Norm. :p
Achja, und ManagedC++ und UnmanagedC++ (native C++) kann man doch aktuell auch in einer EXE verlinken. Oder nicht?
