Я пытаюсь простой код для проверки, если я знаю, чтобы вернуть указатель из DLL C для использования в других функциях DLL в качестве параметра. Но что-то не запускается
C Код DLL
#include <stdint.h>
#if defined(WIN32) || defined(_WIN32)
#define EXPORT __declspec(dllexport)
#else
#define EXPORT
#endif
EXPORT int* init() {
int *p = (int *)calloc(sizeof(int));
p[0]=33;
return p;
}
EXPORT int get(int* base) {
return *base;
}
Код приложения моего узла
var ffi = require('ffi');
var ref = require('ref')
var intPtr = ref.refType('int');
var libm = ffi.Library('./miffi', {
'init': [ intPtr, [ ] ],
'get': [ 'int', [ intPtr ] ],
});
var idx = libm.init()
console.log("I get id" )
console.log(libm.get(idx))
Но не отображается первый "console.log", хотя это не показывает никакой ошибки. Если я уберу строку "p [0] = 33;"Я вижу первый "console.log", хотя get не запускается.
Большое спасибо