double ohne stdlib?



  • Hallo. Im Moment versuch ich mal zum Spass Windowsprogramme ohne die stdlib zu erstellen. Lief bis jetzt auch ganz gut. Wenn ich aber mit float oder double arbeiten will bekomm ich ein Problem.

    double d = 0;
    

    Visual C++ meldet: Nicht aufgelöstes externes Symbol "__fltused".

    Wie kann man das Problem beheben?



  • assba schrieb:

    Hallo. Im Moment versuch ich mal zum Spass Windowsprogramme ohne die stdlib zu erstellen. Lief bis jetzt auch ganz gut. Wenn ich aber mit float oder double arbeiten will bekomm ich ein Problem.

    double d = 0;
    

    Visual C++ meldet: Nicht aufgelöstes externes Symbol "__fltused".

    Wie kann man das Problem beheben?

    stdlib wieder einbinden.



  • Oder: Selber schreiben (könnte aber länglich werden).

    Gruß,

    Simon2.



  • Simon2 schrieb:

    Oder: Selber schreiben (könnte aber länglich werden).

    Gruß,

    Simon2.

    Super Idee? Weiste denn was __fltused ist?



  • Entenwickler schrieb:

    Simon2 schrieb:

    Oder: Selber schreiben (könnte aber länglich werden).

    Gruß,

    Simon2.

    Super Idee? Weiste denn was __fltused ist?

    Nicht wirklich, aber das habe ich auch nicht behauptet. Offensichtlich möchte der Compiler schon beim Anlegen einer Fließkommavariablen "mit der FPU kuscheln" - was mich schon ein wenig überrascht, aber so sieht's halt aus....
    Wer Zeit und Lust hat, nur zum Spaß die stdlib wegzulassen, hat auch Zeit und Lust, das auszuprobieren. :p

    Gruß,

    Simon2.



  • extern "C" int _fltused = 0x9875;
    


  • Danke für die Info. Wie bist du an die Zahl gekommen?



  • Google 🙂
    EDIT: die Referenz soll soweit ich weiss nur das Linken eines Bestimmten Moduls erzwingen, und in den Modul wird denke ich mal Startup Code stehen der die FPU und die FPU Funktionen der Library initialisiert.


Anmelden zum Antworten