Javascript 使用js ctypes,如何从Windows ReadFile检索输出?
我正在使用lpBuffer->char.ptr,但不太确定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
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);