Ein paar Fragen zum Visual Studio
-
Ich würde zumindest Professional empfehlen. Enterprise bietet Zusatzfeatures, aber die benötigt man in 99% aller Fälle als Hobbyprogrammierer nicht.
Aber der Unterschied Standard <=> Professional ist gigantisch, vor allem weil die Professional-Variante einen stark optimierenden Compiler hat (Optimierungen auch spezifizierbar, etc.).
MfG SideWinder
-
OK, alles klar...Dankeschön.
Ich nehme an, ein C-Compiler ist auch dabei, oder verschwindet ANSI-C damit von der Bildfläche?P.S.:
Und selbst dann kann man genialerweise sogar unmanaged mit managed Code mischen, in dem man im Sourcecode Markierungen anhand von Makros setzt. Einfach genial, wie ich finde!
hmmm....das hört sich stilistisch so nach Spaghetti-Mixcode an, wenn man hier ein bissl .NET-Class schreibt, dann kommt etwas unmanaged C++, vielleicht noch ein bischen C, um "hardwarenah" zu bleiben und für die Hardcore-Routinen Assembler auch mit drin... OK, ein bischen überzeichnet, aber besteht da nicht prinzipiell eine Gefahr, dass der Code dann eben doch nicht mehr einheitlich ist?

-
Du musst es ja nicht machen

Und ANSI-C wird imho soweit unterstüzt wie es mit C++ Gemeinsamkeiten hat. Ein paar Dinge aus dem C99-Standard werden also eventuell unter den Tisch gekehrt da es in erster Linie immer noch ein C++-Compiler ist.
MfG SideWinder
-
Ich halte persönlich auch nichts davon, zu mixen. Ich code lieber entweder unmanaged C++ oder gleich C#...
Mit den managed extensions ist C++ Code nämlich gleich nochmal um ein ganzes Stück hässlicher.using System::String; S"Ein System::String"; // ich weiss net... new __gc System::Object; // ;(Und da das Übersetzungsmodell von C++ sowieso saugt und man die Vorteile von C++ aber nicht mehr richtig nutzen kann (const geht nicht), finde ich C# für sowas besser.
-
Naja, es ist ja eine Option, und ich weiß nicht was daran schlecht sein soll. Es ist doch immer besser, wenn man etwas nutzen KANN, als das es erst garnicht möglich ist. Man muß es ja nicht nutzen.
Ich z.B. finde es praktisch, das ich die GUI mit WindowsForms erstellen kann, wofür ja ManagedC++ nötig ist. Aber ich kann meine BusinessLogic im UnmanagedC++ schreiben und somit wäre sogar dieser teil noch portabel, das StandardC++.
Spagetti-Code ist es meiner Meinung nach nicht. Ein Bsp. aus der MSDN:
// pragma_directives_managed_unmanaged.cpp // compile with: /clr #using <mscorlib.dll> #include <stdio.h> // func1 is managed void func1(void) { System::Console::WriteLine("In managed function.\n"); } #pragma unmanaged // func2 is unmanaged void func2(void) { printf("In unmanaged function.\n"); } #pragma managed // main is managed int main() { func1(); func2(); }Ausgabe:
In managed function. In unmanaged function.Wie man sieht, programmiert man gaaaanz normal wie immer, nur das man die #pragma-Makros einsetzen kann um zu switchen. Klar, wer sagt, ich brauch kein ManagedC++, verzichtet drauf. Wer aber mal auf das .NET-Framework (was nunmal mächtig ist und mächtiger wird!) zugreifen will, muß dafür auch nicht komplett auf eine andere Sprache umsteigen. Er baut ebend mal ein #pragma ein und ruft was im .NET auf und macht danach unmanaged weiter.
Und nicht jeder will oder muß portabel programmieren. Ich gehöre zu der Gattung, die gerne .NET-Features nutzen will, ohne auf C++ zu verzichten.
-
@Optimzer! OK, du ersetzt jetzt praktisch die Standard-Lib durch die .NET-Lib. Klar lohnt sich dann C++ nicht mehr, da würde ich auch auf C# umsteigen. Aber das was du zeigst, ist ja ein Extremfall, den die wenigsten C++-Coder machen würden.
Aber es gibt nunmal .Net-Klassen, die einem ganz einfach das Windows-Coding einfacher machen können. Beispiel: WindowsForms. Oder meinetwegen anderen Nettigkeiten. Soll heißen, bevor man sich einen Ast abbricht, weil es das in der Standard-Lib nicht gibt oder die MFC einen stinkt, greift man auf .NET-Klassen zu.
Als C++-Programmierer sehe ich das .NET-Framework nicht als Ersatz (wie in deinem Beispiel) sondern als Ergenzung!
-
rofl. Nur aus der simplen Konsolenausgabe folgerst du jetzt, dass der Code nicht hässlich ist? Ich würde mich erstmal genauer damit auseinandersetzen. Der Code wird allein schon deshalb hässlich, weil grundsätzlich jedes Schlüsselwort zwei Unterstriche vorher hat.
Ist auch nicht gerade angenehm zu schreiben. Ich schreibe lieber "new" als "__gc new". Außerdem kann man auch nur die Managed Klassen garbage collecten lassen, von daher sind es mir jetzt langsam schon zu viele Einschränkungen. Dann muss man in seine Klasse wieder 1000 Sachen implementieren, damit der GC funktioniert, das hat irgendwie keinen Taug. Ich merke jedenfalls nichts davon, dass das dann eine Arbeitserleichterung darstellt.
Mal schaun, für VS 2005 wollen sie da einiges nachbessern. Aber mir gefällt C# für managed code besser, weil man sich viel unnötigen Geiz sparen kann und für alles nen sauberen Wrapper hat. Ich sehe auch ehrlich gesagt keinen Grund, dafür C++ zu verwenden. C# kann auch unmanaged Code und außerdem sehe ich sowieso überhaupt keinen Grund, managed und unmanaged zu mischen. Damit mach ich mir nur selber Ärger, weil ich die Vorteile des managed Code damit untergrabe, wenn ich wieder ein paar spezial-Hacks einbaue und dann muss ich vielleicht doch wieder für 64 Bit was ändern, für AMD und Intel unterschiedliche Versionen compilieren...Ah, du hast in der Zwischenzeit wieder gepostet. Naja passt immer noch einigermaßen.

-
Optimizer schrieb:
Mal schaun, für VS 2005 wollen sie da einiges nachbessern.
Eine neue Compilerversion? Aktuell ist doch imho 7.1,oder? Meint ihr, es lohnt sich, auf VS 05 zu warten?
Nochmal etwas zu dem switchen: Ich könnte mit vorstellen, dass dieses ewige "pragma-setzen" auch leicht zu weiteren Fehlerquellen führt, insgesamt also bei einer Mixtur die Fehleranfälligkeit größer wird. War es nicht ein Ziel MS', den Code rustikaler gegenüber eventuellen Fehlern zu machen? (Daher z.B. der implizite GarbageCollector, das Class-Framework etc...). Mir persönlich widerstrebt es momentan, da zu mixen (OK, ich muß zugeben, ich habe noch nicht viel mit .NET/C# gemacht, aber mal so rein vom Verständnis). Ebenso habe ich momentan auch nicht die Lust/Zeit/Notwendigkeit, auf C#/mC++ umzusteigen, ich will eigentlich nur einen neuen, besseren Compiler (momentan habe ich 6.0!
), und da ich mich bis jetzt halt an die MS-VisualIDE gewöhnt habe, wollte ich da auch bleiben... 
Gruß
E-the-Real
-
ethereal schrieb:
Optimizer schrieb:
Mal schaun, für VS 2005 wollen sie da einiges nachbessern.
Eine neue Compilerversion? Aktuell ist doch imho 7.1,oder?
Jupp, z.B. mit 64-Bit-Unterstützung. Die IDE sieht auch stylischer aus!

Jo, 7.1 ist aktuell.ethereal schrieb:
War es nicht ein Ziel MS', den Code rustikaler gegenüber eventuellen Fehlern zu machen?
Ich denke Du meinst "robuster"...

ethereal schrieb:
ich will eigentlich nur einen neuen, besseren Compiler (momentan habe ich 6.0!
), und da ich mich bis jetzt halt an die MS-VisualIDE gewöhnt habe, wollte ich da auch bleiben... 
Naja gut. Von VS 6.0 auf .NET 2003 ist auch 'ne Umstellungssache!
-
Dieser Thread wurde von Moderator/in kingruedi aus dem Forum Rund um die Programmierung in das Forum MFC mit dem Visual C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-

Nanu?
Wieso bin ich denn im MFC-Board gelandet? Dabei stelle ich Fragen zum .Net-Framework...fantastisch!