Как правильно создать и прочитать указатель на массив структур в node-ffi - PullRequest
0 голосов
/ 21 ноября 2018

Node-ffi не хватает документации

Я пытаюсь использовать эту функцию https://docs.microsoft.com/en-us/windows/desktop/api/ras/nf-ras-rasenumconnectionsw

const ffi = require( 'ffi-napi' );
const ref = require( 'ref' );

var myobj = ref.types.void;
var myobjPtr = ref.refType( myobj );
var myobjPtrPtr = ref.refType( myobjPtr );
var long1 = ref.refType( 'long' );
var long2 = ref.refType( 'long' );

var firstVar = ref.alloc( myobjPtrPtr );
var longVar1 = ref.alloc( 'long' );
var longVar2 = ref.alloc( 'long' );

let ras = new ffi.Library( 'Rasapi32.dll', {
  'RasEnumConnectionsW': [
    'long', // Return value - DWORD
    [ // Arguments
      // Pointer to a buffer that receives, on output, an array of RASCONN structures,
      // one for each RAS connection.
      myobjPtrPtr, // LPRASCONNW

      // Pointer to a variable that, on input, contains the size, in bytes, of the buffer
      // specified by lprasconn.
      long1, // LPDWORD

      // Pointer to a variable that receives the number of RASCONN structures written to
      // the buffer specified by lprasconn.
      long2 // LPDWORD
    ]
  ]
});

ras.RasEnumConnectionsW( firstVar, longVar1, longVar2 );

console.log( ref.deref( firstVar ) );

Прямо сейчас node-ffi дает UintArray8.Не массив строк, не массив объектов

...