Javascript 使用js ctypes,如何从Windows ReadFile检索输出?

Javascript 使用js ctypes,如何从Windows ReadFile检索输出?,javascript,firefox,jsctypes,Javascript,Firefox,Jsctypes,我正在使用lpBuffer->char.ptr,但不太确定 let readFile = kernel32.declare( "ReadFile", ctypes.winapi_abi, ctypes.int32_t, //bool // return type: 1 indicates success, 0 failure ctypes.voidptr_t, // in: hObject ctypes.char.ptr, // out

我正在使用lpBuffer->char.ptr,但不太确定

  let readFile = kernel32.declare(
    "ReadFile",
    ctypes.winapi_abi,
    ctypes.int32_t,     //bool  // return type: 1 indicates success, 0 failure
    ctypes.voidptr_t,   // in: hObject
    ctypes.char.ptr,  // out: lpBuffer
    ctypes.uint32_t,    // in: lpNumberOfBytesRead
    ctypes.uint32_t.ptr,    // out: lpNumberOfBytesWritten
    ctypes.voidptr_t.ptr    // inout: lpOverlapped
  );
为了

然而,当我尝试

  let output = ctypes.char.array(1024);
  let isRead = readFile(hFile, output, 1024, bytesWritten.address())
我明白了

JPM[错误]消息:TypeError:无法传递ctypes.char.array1024 至int32_t ReadFilevoid*,char*,uint32_t,void的参数2**

更多的尝试

JPM[错误]消息:TypeError:无法通过 ctypes.char.array1024.ptr到int32_t ReadFilevoid*的参数2, 字符*,uint32\u t,无效**

JPM[error]消息:TypeError:output.address不是函数

JPM[错误]消息:TypeError:无法将ctypes.char.ptr传递给 int32_t ReadFilevoid*,char*,uint32_t,v oid的参数2**

这就成功了

  let outputType = ctypes.char.array(1024);
  let output = outputType();
  let isRead = readFile(hFile, output, 1024, bytesWritten.address(), null);
  let output = ctypes.char.array(1024);
  let isRead = readFile(hFile, output.ptr, 1024, bytesWritten.address())
  let output = ctypes.char.array(1024);
  let isRead = readFile(hFile, output.address(), 1024, bytesWritten.address())
  let output = ctypes.char.ptr;
  let isRead = readFile(hFile, output, 1024, bytesWritten.address())
  let outputType = ctypes.char.array(1024);
  let output = outputType();
  let isRead = readFile(hFile, output, 1024, bytesWritten.address(), null);