我想为 emscripten 分配一个结构并使用 ccall 将其传递给一个函数。c 结构体如下所示:
typedef float HPDF_REAL;
typedef struct _HPDF_Point {
HPDF_REAL x;
HPDF_REAL y;
} HPDF_Point;
所以我在 Javascript 中分配了两个浮点数并将其作为参数传递
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
。
我在这里错过了什么吗?