Выходные параметры с 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.