なでしこの実数

なでしこでは実数を基本的にはExtendedで保存しています、多分。
検証コード。

●MoveMemory({参照渡し}des,{参照渡し}src,len) =DLL("kernel32.dll",
"VOID RtlMoveMemory(
POINTER Destination, //移動先
POINTER Source, //移動元
DWORD Length //バイト数
)")
Aとは実数
Bとは実数
Cとは実数
Dとは実数
A=10.125
Aと表示#=> 10.125
MoveMemory(POINTER(B),POINTER(A),4)
Bと表示#=> 0
MoveMemory(POINTER(C),POINTER(A),8)
Cと表示#=> 0
MoveMemory(POINTER(D),POINTER(A),10)
Dと表示#=> 10.125

これは、まあちょっと演算が遅くなりますけど、精度が高くて良いのですが、これではDLLの実数が引数の関すに値を渡せません。
まあ、標準のDLL関数呼び出しでは実数に対応していないんですけどね。
それでも、もしこれがdoubleなら、EXEC_PTR命令を使って自分で引数スタックを組めば呼び出せないこともないかもしれません。
また、これは憶測ですが、(double A)となっている引数を、(DWORD AX,DWORD AY)として、実数値の上位ビットをAXに、下位ビットをAYにコピーしてやれば、問題なく関数を呼び出せる気もします。
 
そういえば、葵では実数はどうするんでしょうか?
long doubleで済ますんでしょうかね。