Hallo.
Ich habe hier eine c++ dll die mir bei einer Funktion ein float wert zurückgibt. Aber Irgendwie bekomm ich bei CallFunction() kein float sondern nur long.
Nach ein bisschen suchen bin ich im Forum auf dieses CodeSchnippsel gestoßen:
Hab ich ihm schon vorgeschlagen, klappt anscheinend auch nicht.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Wie soll das denn funktionieren? Hinter ProcedureReturn steht doch gar nix!
Die Werte bleiben im EAX.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
hardfalcon hat geschrieben:Sooo weit kann ich ja gar nicht mehr logisch nachdenken... Noch dazu mit meinem praktisch nicht vorhandenen ASM-Skill...
Mit ProcedureReturn packste das Ergebnis auf dem Stack, manche DLLs legen es aber bereits dahin, so das Du den Stack nicht mehr verändern darfst um an das Ergebnis zu gelanden. Naja, so ungefähr
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.