Einstieg in Cpp (unter bestimmten Voraussetzungen)
-
Hallo Cpp Community,
Ich habe vor mir schritt für schritt C++ anzueignen.
Nun habe ich vorher viel mit C# und DotNet Klassen gemacht.
Ich dachte mir, wenn ich den Syntax für C++ lerne fällt mir der Rest im nachhinein leicht... jedoch musste ich feststellen das ich mir geirrt habe.Nun zum eigentlichen Thema, ich möchte Cpp lernen damit ich Plattform unabhängig schreiben kann. Nun stelle ich mir die Frage womit ich am besten anfangen sollte, auf das Visual Studio müsste ich in dem falle ja verzichten! oder wäre es ein guter Einstieg in C++? Es bestehen ja einige unterschiede zwischen VC++ und C++.
Nun hoffe ich mir könnte jemand ein paar Tipps geben, ich habe auch gelesen das es fertige Frameworks für C++ geben soll (Nokia Qt etc.)
Vielen Dank
-
Du kannst problemlos VC++ nehmen. Wähle ein "Leeres Projekt" als Ausgangsbasis und füge nach Bedarf .cpp/.h Dateien hinzu, in die Du den code schreibst. Du kannst mit der IDE zwar nur für Windows kompilieren, aber sie hindert dich nicht, platformunabhängigen Code zu schreiben.
Es bestehen ja einige unterschiede zwischen VC++ und C++.
Natürlich. C++ ist eine Sprache, VC++ eine IDE für C++.
Fange mit Konsolenprogrammen an. Wenn du C++ halbwegs kannst, kannst Du dich an Grafik/GUI heranwagen. Dazu kannst Du die Win32-Api, MFC, Qt, DirectX, SFML, ... nutzen. Auch das geht mit VC++. Aber fang damit erst an, wenn Du einige Programme für die Konsole erfolgreich geschrieben hast.
-
Vielen Dank für die Ausführliche Antwort, das streicht mir schon einige Fragen
Noch eine Kleinigkeit die mich interessiert, wenn ich in VC++ eine Anwendung schreibe und diese später auf Linux compilieren möchte darf ich ja keine Net Basierenden Klassen nutzen sprich (tcp / udp).
Müsste ich mir diese Klassen selber schreiben oder gibt es da doch ein paar Fertige Klassen wie im Net Framework.
Hilft mir da ein bestimmtes Framework, oder wie muss ich das verstehen?
Vielen Dank!
-
TCP / UDP sind Übertragungsprotokolle. Die kannst du sowohl unter Unix/Linux, als auch Windows ohne Probleme nutzen. Man muss es nur über die Parameter der Funktionen Socket() - in der WinAPI unter WSASocket() - einstellen.
Beispiel:
(Hier)
socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);Mehr findest du in der MSDN.
-
Das Tcp / udp Protokolle sind habe ich schon wahrgenommen, jedoch bringt Microsoft von Haus aus eine .Net klasse für diese Protokolle mit.
Nun Stelle ich mir die Frage ob ich diese Protokolle unter Windows / Linux mit dem selben Code ansprechen kann.
Ich hatte im Internet ein Programm entdeckt welches auch in C geschrieben war, dies hat scheinbar von Haus aus Klassen für die Nutzung von TCP / UDP dabei gehabt. (War Opensource und man sollte selber compilieren)
-
C++ kann keine .NET-Klassen ansprechen. Weder unter Windows noch unter Linux. Von daher stellt sich die Frage nicht.
-
Kouichi, mache nicht den Fehler C++/CLI (die .NET Interopsprache) mit nativem C++ zu verwechseln.
Für plattformunabhängige Netzwerkprogrammierung unter C++ solltest du boost.asio verwenden.
-
@Th69
Danke dir! das hat nun auch meine Letzte Frage beseitigt.
Du hast meine Frage auf den Punkt gebracht.
Vielen Vielen Dank!Mich hatte interessiert welche Funktionen ich ansprechen kann (Das ich das Net Framework nicht über C++ ansteuern kann hatte ich mir bereits gedacht, doch mir war nicht klar wie ich an Microsoft vorbei komme, aber trotzdem die Protokolle und Funktionen auf mehreren Plattformen compilieren kann.
Damit habt ihr mir super geholfen, danke sehr nochmals.
Thema Erledigt
-
Du kannst auch den Netzwerk-Teil von SFML benutzen, ist meiner Meinung nach etwas anfängerfreundlicher als Boost.Asio.