Seite 1 von 1

DLL typedef extended und double

Verfasst: Mittwoch 26. Januar 2011, 10:41
von tom_g
Guten Tag,

Da ich eine DLL nicht mit Delphi oder C++ herstellen will, sondern von Euphoria mittels des dort verfügbaren Euphoria-to-C-Translators und des OpenWatcom Compilers, benötige ich eine Antwort auf folgende Frage:

ist "extended" von Delphi in der Auflösung dasselbe wie in C++ "double", d.h. ist die Byteanzahl beider Datentypen = 8 byte ? (oder ist extended die heutige Delphi 10 byte lang)
Ich beziehe mich auf die ProfiLab DLL-Hilfe, worin

type TDLLParams = array[0..100] of extended;
PDLLParams = ^TDLLParams;

In C++ wird dieser Speicherbereich z.B. als (double *PInput) übergeben.

erläutert ist.


"siehe Delphi-Description
The Extended type is a floating point type used when the highest exponent and/or significant digits are required.
It supports approximately 19 digits of precision in a range from 3.37 x 10-4932 to 1.18 x 104932.
Notes
The Single type is the smallest and fastest, but with worst capacity and precision.
The Double type has medium storage, speed, capacity and performance.
A Extended set to its highest value is treated as Infinity."


Vielen Dank für Ihre Hilfe: mit freundlichen Grüssen:

tom_g

Re: DLL typedef extended und double

Verfasst: Mittwoch 26. Januar 2011, 11:08
von abacom
Delphi Extended:
-3,6 x 10^4951 .. 1,1 x 10^4932
in 10 Bytes Länge.

C++ Double:
+/- 1.7E +/- 308
in 8 Bytes Länge.

Re: DLL typedef extended und double

Verfasst: Mittwoch 26. Januar 2011, 14:25
von tom_g
Vielen Dank, Abacom, für die Antwort.

Das heisst dann wohl, dass im PL-DLL-Aufruf von Delphi und C++ stammende DLLs durch die verschiedenen Funktionsaufrufe (Bpl: "Calculate" für von Delphi stammende Funktionen und "CCalculate" für von C++ stammende Funktionen) unterschieden werden ?

Viele Grüsse von tom_g

Re: DLL typedef extended und double

Verfasst: Donnerstag 27. Januar 2011, 10:03
von abacom
Ja, natürlich. Gerade die Unterschiede in den Parametern haben die unterschiedlichen Methoden erforderlich gemacht.