我正在使用 node-ffi 加载一个库并调用一个返回 char* 的函数,该指针是在共享库中创建的。
我是否需要创建一个可以删除缓冲区的匹配函数?例如
主文件
char* get_error()
{
char* buf = new char[25];
buf[24] = '\0';
return buf;
}
void delete_buffer( char* buf )
{
delete[] buf;
}
测试.js
var libTest = ffi.Library( 'libtest', {
'get_error': [ 'string', [] ],
'delete_buffer': [ 'void', [ 'string' ] ]
});
var test = libTest.get_error();
libTest.delete_buffer( test );
当我尝试这个时,我遇到了段错误。node-ffi 会自动创建副本吗?我应该如何正确地做到这一点?