richtige Programme mit C++



  • mikey schrieb:

    Falsch. Besondere Low - Level Operationen können nur mit Assembler gelöst werden, dazu ist weder C noch C++ in der Lage. Bestes Beispiel hierfür sind z.B Bootloader, die in C bzw. C++ nicht geschrieben werden können.

    GRUB ist auch zu großen Teilen C. Du musst nur in eine ordentliche Laufzeitumgebung kommen (was für C sehr einfach und für C++ auch recht machbar ist), schon braucht dich Assembler nicht mehr zu interessieren.



  • hehe, klar braucht mich dann Assembler nicht mehr zu interessieren, weswegen der Bootloader von GRUB trotzdem in Assembler geschrieben wurde, was sich im Endeffekt wieder auf meine vorherige Aussage hinausläuft. Guck dir einfach mal den Source dazu an, dann siehst du es 🙂

    Edit: der Bootloader ist nicht komplett in Assembler, aber das meiste.

    mikey.



  • Joah, das liegt aber größtenteils an den 8086-Altlasten würd ich sagen. Viel musst du ja nicht machen, nur in den Protected-Mode und dann in die main-Funktion jumpen, das wars eigentlich iirc.



  • ten schrieb:

    auf C.
    ohne ++ 👍

    Irgendwelche Links dazu ? Welche Sprache in Windows wieviel einnimmt bzw welche benutzt werden ...



  • Woher wisst ihr, wie der Windowskernel geschrieben ist? Ist das nicht top-secret? 🤡
    Aber im ernst. Das man einen Bootloader, Teile eines Betriebsystems, Treiber etc. nicht mit C/C++ basteln kann, weil es für gewisse Maschinenbefehle keine Äquivalente gibt, sollte klar sein. Alles andere, und da ist ein Großteil der Software, ist mit C/C++ möglich. Assemblerbefehle kriegt man übrigens, über inline-assembly und/oder compiler-intrinics rein. So das, wenn der Betriebssystemkernel gestartet ist, quasi alles machbar ist.

    MfG
    DDR-RAM



  • Freak_Coder schrieb:

    ten schrieb:

    auf C.
    ohne ++ 👍

    Irgendwelche Links dazu ? Welche Sprache in Windows wieviel einnimmt bzw welche benutzt werden ...

    kannst die die 'geleakten' win2k sources saugen, dann siehste es.
    nahezu alles ab winapi abwärts ist in C gecodet (also das ganze betriebssystem).
    einige anwendungen (etwa taskmanager, explorer usw.) sind in c++ gemacht...

    btw: und msdos ist zu ca. 90% assembler-code



  • Hast du vielleicht trotzdem keine Links ? 😃

    ten schrieb:

    einige anwendungen (etwa taskmanager, explorer usw.) sind in c++ gemacht.

    Quellen ??

    (Nicht das du was falsch verstehst und denkst ich unterstelle dir falsche Aussagen, nur aus Interesse 🙂 )





  • Freak_Coder schrieb:

    Hast du vielleicht trotzdem keine Links ? 😃

    nein, sorry.
    ich könnte ja den ed2k-link posten, aber dann würde ich mir vorwerfen lassen müssen, hier urheberrechtlich geschütztes material zu verbreiten...



  • Aber im ernst. Das man einen Bootloader, Teile eines Betriebsystems, Treiber etc. nicht mit C/C++ basteln kann, weil es für gewisse Maschinenbefehle keine Äquivalente gibt, sollte klar sein. Alles andere, und da ist ein Großteil der Software, ist mit C/C++ möglich

    Jop, da hast du Recht. Und genau das habe ich gemeint. Auch wenn nur ein kleiner Teil von div. 'Anwendungen' nicht in C bzw. C++ gecodet werden kann, aufgrund dessen weil es unmöglich ist, heist es im Endeffekt also, dass mit C++ eben nicht alles möglich ist. (strenggenommen).



  • so war mein beitrag eigentlich auch gemeint. war aber natürlich nicht wirklich ersichtlich, hab es eben zu allgemein formuliert. sorry.

    mfg,
    julian



  • Man frage sich natürlich, warum man in diesem Forum das so streng nehmen will, wenn es streng genommen keine neue erkenntnis liefert und der autor dieses threads sich wahrscheinlich eh nicht viel drunter vorstellen kann, was man denn nun genau machen kann und was nicht.

    Aber wenn du es streng nehmen willst, gebe hast du natürlich recht. 😉

    Vielleicht ist ein Bootloader auch kein "richtiges" Programm im Sinne des Thread-Autors und wir tappen im dunkeln. 🕶

    MfG
    DDR-RAM



  • mikey schrieb:

    Aber im ernst. Das man einen Bootloader, Teile eines Betriebsystems, Treiber etc. nicht mit C/C++ basteln kann, weil es für gewisse Maschinenbefehle keine Äquivalente gibt, sollte klar sein. Alles andere, und da ist ein Großteil der Software, ist mit C/C++ möglich

    Jop, da hast du Recht. Und genau das habe ich gemeint. Auch wenn nur ein kleiner Teil von div. 'Anwendungen' nicht in C bzw. C++ gecodet werden kann, aufgrund dessen weil es unmöglich ist, heist es im Endeffekt also, dass mit C++ eben nicht alles möglich ist. (strenggenommen).

    Kein Widerspruch von mir ... allerdings finde ich das gerade eine Stärke von C/C++, dass man sehr einfach ASM einbinden kann. So kann man sich für jede Teilaufgabe das Beste heraussuchen: Wo es günstiger ist, ASM zu nehmen (z.B. weil man so tief in die Technik muß), dann nimmt man das eben. Wenn andererseits (z.B. für relativ komplexe Aufgaben, die in ASM eher mühsam sind) C/C++ das Leben vereinfachen, schwenkt man eben darauf ... und alles im selben Programm !
    Deswegen ist IMO die Grenze C<->ASM nicht so schwerwiegend, weil man es von außen gar nicht mehr wahrnimmt (außer evtl. ein wenig an der Größe des Binaries).

    Auch wenn die Behauptung, man könne alles in C/C++ programmieren, nicht stimmt, kann man trotzdem sagen, dass man für alles mit C/C++ anfangen kann. 😃

    Gruß,

    Simon2.

    P.S.: Selbst, wenn in "echten" Programmen nur 50% in C/C++ programmiert sein sollten, ist das IMO schon ein Beleg dafür, dass die Sprache in diesem Zusammenhang sinnvoll einzusetzen ist.



  • Ich finde die ursprüngliche Frage "niedlich". 😃
    Was, bitte, sind denn NICHT RICHTIGE Programme? 😕



  • Boa, irgendwie wurde die Frage immernoch nicht so toll beantwortet.

    Benny_Ben_Ben schrieb:

    will aber wissen ob mit C++ auch richtig große Programme wie z.B.: Adobe Photoshop programmiert werden?

    => Adobe Photoshop ist in C++ geschrieben. So einfach.

    Benny_Ben_Ben schrieb:

    Wenn ja, wie bekommt man dann das Oberflächendesign hin, oder werden solche Sachen nicht mit C++ gemacht?

    Hm, ich persönlich finde ja .NET bzw. Skriptsprachen hierfür besser geeignet aber es gibt einige Frameworks für Oberflächendesign in C++, darunter gtkmm, FLTK, QT ... es gibt da eine ganz nette Übersicht: http://www.kharchi.de/cpp_gui/


Anmelden zum Antworten