Выходные параметры с fastcall из cmake-js

Я использую fastcall для вызова функции в DLL или SO написано в C, это зависит от операционной системы.

Есть функция с этой подписью:

int GetVersion(char* v1, char* v2)

Результатом будет 0 в случае успеха и другое значение в противном случае. Параметры v1 а также v2 выходы по значению и максимальный размер составляет 64 символа. Например, если результат равен 0, то v1 может быть "201710.V2" а также v2 аналогичное значение. Другими словами, значение, которое меня интересует, будет записано в v1 а также v2 указатель.

Я картирую что-то вроде этого:

const lib new Library(libraryPath)
    .function({ getVersion: ['int', ['string', 'string']] });

И вызывая код с помощью:

console.log('checking', lib.isSymbolExists('GetVersion'));

var v1 = ref.allocCString(blankString(64)); // string with 64 positions
var v2 = ref.allocCString(blankString(64));

var rVersion = lib.interface.GetVersion(v1, v2);
console.log('\nResult on Call', rVersion);
console.log('v1', v1.toString());
console.log('v2', v2.toString());

Выход всегда:

checking true

Result on Call -1
v1
v2

Мой вопрос, как я могу объявить const для использования в качестве выходного параметра, как в примере, описанном в руководстве по node-ffi.

У меня уже есть код, который работает с node-ffi. Сейчас я пытаюсь перенести его на fastcall.

0 ответов

Другие вопросы по тегам