0
emscripten에 대한 구조체를 할당하고 ccall을 사용하여 함수에 전달하려고합니다. 는 C의 구조체는 다음과 같습니다 Emscripten : 인수로 struct 포인터 전달
typedef float HPDF_REAL;
typedef struct _HPDF_Point {
HPDF_REAL x;
HPDF_REAL y;
} HPDF_Point;
그래서 내가 자바 스크립트에서 두 개의 수레를 할당하고 인수로 전달
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
입니다.
여기에 뭔가가 있습니까?
더미 초기화로 '123'과'321' 값을 사용하여 메모리가'터치 된 '것인지 확인합니다. 0을 사용하면 작동하지 않습니다. – manuels