emscripten の構造体を割り当て、ccall を使用して関数に渡したい。c 構造体は次のようになります。
typedef float HPDF_REAL;
typedef struct _HPDF_Point {
HPDF_REAL x;
HPDF_REAL y;
} HPDF_Point;
だから私はJavascriptで2つのfloatを割り当て、それを引数として渡します
struct_ptr = Module['allocate']([123,321], 'float', ALLOC_NORMAL)
res = Module['ccall']('HPDF_Page_GetCurrentTextPos', 'number', ['number', 'number'], [page_ptr, struct_ptr])
しかし、結果の構造体データを取得すると
FLOAT_SIZE = 4
point = {
x: getValue(struct_ptr, 'float')
y: getValue(struct_ptr+FLOAT_SIZE, 'float')
}
私の割り当てられたメモリは触れられていませんでしpoint.x==123
たpoint.y==321
。
ここで何か不足していますか?