C++ 文件指针的 N​​ode-FFI 引用类型是什么?

What is the reference type for Node-FFI for a c++ file pointer?

我不知道在这种情况下应该使用哪种 'ref' 模块类型。

我有一个 DLL 函数,它 returns 一个布尔值并将文件指针作为参数:

__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 文件,returns 一个基于文件是否创建的布尔值。 fname 代表 "file name" 并且是 DLL 中 C++ 代码中的 C++ nullptr。

我想知道在 Node-FFI 中正确传递文件指针的 ref.type 是什么。我已经尝试过空指针、null、字符串和对象,但是当我在客户端代码中尝试时,它们都会使应用程序崩溃:

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

感谢您的帮助。我在 Whosebug 上找不到关于 Node-FFI 中文件指针的另一个问题。

对于遇到这个问题的其他人,由于这个问题没有得到回应,答案似乎是 Node-FFI 根本没有文件指针。您必须更改 C 或 C++ 的源代码以改用 char *。