Programmier Unterschied Betriebsysteme C++ ?

  • C++

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von Gonger96.

    Programmier Unterschied Betriebsysteme C++ ?

    Halli hallo liebe Community.

    Ich hab mir vorgenommen in der Zukunft evtl. c++ zu lernen wodurch einige Fragen entstanden.
    Ich habe mich schon einiges über C++ gelesen.

    Mir ist zuhören bekommen das man mit C++ auf sogut wie für allen Betriebsystemen Programmieren kann. Wo sich mir die Frage auf tut ob es von Betriebsystem zu Betriebsystem die Programmierung etwas anders ist oder ob man einfach ein anderen Compiler benutzt.

    Dazu wollte ich hier auch einfach mal fragen ob mir jemand einen IDE empfehlen könnte der sogar evtl. kostenlos ist und Kommerziell nutzbar währe.

    Ich bedanke mich schon einmal im vorraus für alle Hilfreichen Antworte. :thumbup:
    @Nyxero^:: Die Laufzeitbibliotheken sind in den einzelnen Bettriebssystemen anders.
    Die Arbeit mit den Programm-Fenstern und damit das gesamte GUI-Handling ist anders.
    Wenn Du nur eine Console schreiben willst, sollte das hi und da weitgehend identisch sein, sofern Du nicht API-Funktionen verwendest.
    Wenn Du GUI-Programme für verschiedene Bettriebssysteme schreiben willst, gugst Du Qt.
    Ansonsten nimm das C++ vom Visual Studio.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Nyxero^:
    'hab vor ein paar Tagen selber bissle mit C++ angefangen. Dazu habe ich das Visual Sudio 2013 genommen. (Kannst du kostenlos über Dreamssprak kriegen wenn du Schüler oder Student etc. bist)
    Programmieren tu ich da aber nicht mit .NET Bibliotheken, sondern reines C++.

    Angefangen habe ich damit, mir dieses Buch durchzulesen informit.de/books/c++21/data/start.htm
    Ist auf jeden Fall das Lesen wert. (21 Tage wirst du nicht brauchen ;))
    ich hab c++ grad nicht angefangen, weil VisualStudio das C++-Konzept der Header-Dateien vollkommen versaut, wenn man im VS eine WinForms-Anwendung anlegen will.
    jdfs. mit meim VS2010 generiert er den ganzen Designer-Code in die Header-Datei! - und das ist total malle.

    Hat mir auch jmd bestätigt, dass das kaum noch als c++ anzusehen ist.

    Also wies aussieht, kann man c++ nicht im VS programmieren - vor allem nicht als Anfänger, weil da wird man von vornherein auf den Total-Holzweg geschickt - jdfs. wenn man den Form-Designer benutzen will.

    Wie gesagt: Wirklich Ahnung von c++ habich nicht, hab nur mal gelernt, dass in Header-Dateien ausschließlich Vorausdeklarationen, Konstanten und Präprozessor-Direktiven gehören - jdfs keinesfalls Laufzeit-Methoden!

    Aber vlt. kann sich wer dazu äußern, der schonmal eine C++-Oberfläche hingehauen hat.
    @ErfinderDesRades
    Das was du da beschreibst ist managed C++. Das ist absolut unter aller Sau (hat mit C++ auch nicht viel zutun). Mit VS kann man aber auch normales C++ (richtiges natives) programmieren. Das wäre dann VC++, wobei das Visual hier für den Compiler steht. Da soll/muss man nach Standards arbeiten. Generell macht MS immer ziemlich bescheidene native Implementierungen, deswegen sind Sample C++-Snippets von MSDN auch Mist. Methoden die im Header definiert werden, mach ich auch manchmal, sind inline. So kann man teilweise Methoden beschleunigen. Ich leg Property Getter/Setter immer in den Header, diese sind fast immer sinnvoll wenn se inline sind. Man hat zudem noch die Möglichkeit C++/CLI zu benutzen, dass ist aber wieder ne ganz andere Geschichte.

    Visual Studio ist eine schöne IDE, auch für C++. Da MS aber relativ langsam ist, ist erst VS2012 oder VS 2013 zu empfehlen.
    Den unterschied zw. managed und VC++ verstehe ich nicht.

    Kann ich im VisualStudio 2010 eine WinForms-Anwendung anlegen, und den Form-Designer benutzen?

    Bisher fund ich nur "C++ - Projekt zufügen", und dann kam, was zunächst gut aussah (mit Designer), sich codetechnisch aber als NoGo herausstellte.
    Genau das wäre managed C++. Da hat man das Framework mit drin, den Designer. Das war der Versuch C++ auch als .Net Sprache zu ermöglichen. Das ist aber entgegen allen Standards, also auf keinen Fall benutzen. Ausserdem ists wirklich Codetechnisch Müll. Visual C++ ist "normales" standard C++. Da gibts kein Framework, sondern die Standardbibliothek und es wird zu einer unabhängigen nativen Anwendung. Den Code kann ich 1:1 auch auf nem anderen Compiler kompillieren, der würd auch auf meiner Mikrowelle laufen ;)
    C++/CLI war der zweite Versuch, damit kann man native C++ Klassen aus .Net heraus nutzen. Das ist auch sehr gelungen. So Wrapper kennt man von DirectX, da gibts SharpDX, XNA & Co.

    Unter VS (Professional), unter neues Projekt hab ich den Reiter "Visual C++". Darunter "Win32". So ein Projekt wäre eine native Anwendung, oder Dll. Wobei man unbedingt das Projekt leer anlegen sollte, sonst hat man direkt Mist darin stehen.
    Richtig. C++ ist platformunabhängig. Ein C++ Programm läuft auf Windows, Linux, meiner Mikrowelle. Naja so ist die Standardbibliothek natürlich stark eingeschränkt und GUI kann nicht drin sein. Um eine GUI zu bekommen, muss man sich eine externe Bibliothek dazu nehmen bspw. QT. Da ist dann auch ein brauchbarer Formdesigner drin. Ich persönlich finde Qt aber ziemlich unschön gemacht. Microsoft hat in den C++ anfängen auch etwas Ähnliches gemacht MFC und ATL, die sind aber noch bescheidener und nur für Windows. Es gibt im Internet aber dutzende GUI-Bibliotheken ich find Juce ganz schick, die renderns glaub mit OpenGL. Ähnlich wie WPF das mit DX macht.
    Hallo @Gonger96:,

    ich habe da eine Frage bezüglich C++. So weit ich weiß, hat ja C++ auch ein Framework, dies ist zwar relativ gering und hat ein paar Nachteile, aber C++ läuft ja plattformunabhängig. Das ist mir bewusst. Wenn C++ nun auch dieses Framework hat, muss dies dann in irgendeiner Weise vorinstalliert sein oder wie ist das? Ich bin leider kein C++-Experte, darum wollte ich mich erkundigen, ob das so stimmt und wenn, wie das verwaltet wird.

    Grüße Trade
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Hi Artentus,

    Ok, dankeschön. Ich dachte mir schon, dass das damit was zu tun hat, aber es hat mich halt gewundert, ob dies auch auf Linux in irgendeiner Weise so verfügbar ist, dieses Paket.
    Ich frage mich halt, ob es möglich wäre, eine Art .NET-Framework für Linux zu entwickeln (abgesehen von Mono). Ist das vielleicht ein Grund, warum in C++ kein System.IO usw. vorhanden ist, da C++ plattformunabhängig laufen soll und die Umgebung auf Linux eine andere ist, als auf Windows?

    Grüße Trade
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @Artentus
    ich lese mich hier mal bissle durch und kann zu c++ absolut garnix sagen! allerdings intressiert es mich doch.
    nun mal doch eine frage
    ich zocke/spiele ja sehr viele games und sehr viele games wollen das von dir genannte "Visual C++ 20xx Redistributable Package" installiere? nur das heisst glaub ich etwas anders glaube einfach nur "Redistributable" (vorrausgesetzt du hast es richtig geschrieben :D )
    also benutzt jedes game auch c++ was dieses packed da installieren will? sind doch schon so manche games ;)
    @Trade
    Wie gesagt, das ist Windows only, da sind auch Komponenten dabei (z.B. MFC, wie von Gonger oben erwähnt), die es überhaupt nur für Windows gibt.
    System.IO ist eigentlich schon vorhanden, zumindest gibts in C++ auch Streams.

    @MVN050
    Der Name steht so auf der Microsoft-Seite: microsoft.com/de-de/download/details.aspx?id=5555
    Und klar benutzen ziemlich viele Programme C++, das ist schließlich die am häufigsten benutzte native Sprache. Diese Laufzeitkomponenten sind auf Windows übrigens vorinstalliert (deswegen ist das beim Link auch nur noch für Windows 7, weils auf Windows 8 schon drauf ist), und deswegen musst du natürlich nur was installieren, wenn ein Spiel neuere Komponenten als die installierten braucht. Ich bin mir ziemlich sicher, dass auch fast jedes Spiel, bei dem du die Meldung nicht bekommen hast, trotzdem auf C++ läuft, nur die Komponenten waren schon installiert.
    @Artentus: Aber System.IO selber gibt es afaik als solches in C++ nicht. Na ja, trotzdem danke für die Antwort, jetzt weiß ich Bescheid.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @Artentus:, @Trade
    Das Redistributable ist unnötig, dir drückt MS das nur auf. In den Einstellungen einen Haken setzen und man hat keine Abhängigkeiten.
    Jo, einmal hat System::IO nichts mit C++ zutun, da C++ mit dem .Net Aufbau nichts zutun hat und zweitens ist die API beider Systeme komplett unterschiedlich. IO ist ein schlechtes Beispiel, das ist in C++ fast komplett drin ;)
    Die Standardbibliothek ist auch nicht klein, man hat etliche hundert Klassen und es ist alles Wichtige drin. Nur die extrem API Abhängigen Sachen fehlen halt.

    Ich weiß garnicht genau was diese Laufzeitbibliotheken auf sich haben, sicher ist das sie unnötig sind. Die Standardbibliothek liegt in VS als Opensource vor und wird miteinkompilliert. Deswegen kann man auch immer so schön reingucken und schauen wie dies dort implementiert haben ^^
    Hi Gonger96,

    alles klar, danke für die Info ^^

    Grüße Trade
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: