node.js — Каков тип ссылки для Node-FFI для указателя файла c ++?

Я не могу понять, какой тип ‘ref’ использовать в этой ситуации.

У меня есть функция DLL, которая возвращает bool и принимает указатель файла в качестве параметра:

__declspec(dllexport) BOOL __stdcall GB_Build( FILE *fname )
{ return Greenhouse.Build(fname) == true ? TRUE : FALSE; }

И привязка Node-FFI:

var ffi = require('ffi');
var ref = require('ref');

var greenbuildlib = null;

greenbuildlib = './PGD/GreenBuild_DLL.dll';

var greenbuild = ffi.Library(greenbuildlib, {
"GB_GetBayLength": ['double', []],
"GB_SetBayLength": ['void', ['double']],
"GB_Build": ['bool', [ref.types.Object]],
});

module.exports = greenbuild;

Функция «GB_Build» создает файл json и возвращает логическое значение на основе того, был ли файл создан или нет. fname означает «имя файла» и является nullptr C ++ в коде C ++ в DLL.

Мне интересно, что бы ref.type был правильно передать указатель файла в Node-FFI. Я пробовал указатели null, null, string и Object, но все они вызывают сбой приложения, когда я пытаюсь сделать это в коде клиента:

var file_name = "test.json";
greenbuild.GB_Build(file_name)

Спасибо за любую помощь. Я не смог найти другой вопрос по stackoverflow о файловых указателях в Node-FFI.

0

Решение

Для всех, кто столкнулся с этой проблемой, поскольку этот вопрос не получил ответов, кажется, что ответом является то, что Node-FFI вообще не имеет указателя файла. Вы должны изменить исходный код для C или C ++, чтобы использовать вместо него char *.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]