ref를 활용하여 int* 연동
1. NodeDCMTK.dll
에서 element count를 구하는 함수에서 2번째 parameter로 element count를 넘겨 받는게 필요
int GetElementCount(void* dcmPtr, long* count) { DcmFileFormat* pDcmFileFormat = (DcmFileFormat*)dcmPtr; if (pDcmFileFormat == NULL) return 0; *count = pDcmFileFormat->getDataset()->card(); return 1; }
2. javascript NodeDCMTK.js에서 long의 reftype을 선언 및 GetElementCount() 함수 선언
var longPtr = ref.refType('long'); var nodeDCMTK = ffi.Library('NodeDCMTK.dll', { ... 'GetElementCount': ['int',[DcmFileFormatPtr,longPtr]] });
()
3. ref.alloc(‘long’)형태로 선언한 것이 long의 reference type임. GetElementCount() 함수에 전달 후 deref()로 사용
var elementCount = ref.alloc('long'); nodeDCMTK.GetElementCount(dcmFileFormat.deref(), elementCount); console.log('elementCount=' + elementCount.deref());