Обработка char * с помощью node-ffi

Я использую node-ffi для загрузки библиотеки и вызова функции, которая возвращает char *, указатель создается внутри разделяемой библиотеки.

Нужно ли создавать соответствующую функцию, которая может удалить буфер? например

main.cpp

char* get_error()
{
char* buf = new char[25];
buf[24] = '\0';
return buf;
}

void delete_buffer( char* buf )
{
delete[] buf;
}

test.js

var libTest = ffi.Library( 'libtest', {
'get_error': [ 'string', [] ],
'delete_buffer': [ 'void', [ 'string' ] ]
});

var test = libTest.get_error();
libTest.delete_buffer( test );

Когда я попробовал это, я получил segfault. Создает ли node-ffi автоматическую копию? Как я должен сделать это правильно?

0

Решение

Задача ещё не решена.

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

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

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