我如何处理Node.js中的SlowBuffer?
现在我正在用Node.js开发一个usb-serial应用程序。 这个DLL返回INVALID_HANDLE_VALUE,如果无法打开COM端口。 所以我想在Node.js中处理ret值。 在这种情况下,我如何处理?
我不知道如何比较ret值和SlowBuffer。
DLL
#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1 typedef HANDLE (*OPEN)(int); __declspec(dllexport) HANDLE opencom(int ncom)
node.js与node-ffi
var ffi = require('ffi'); var lib = ffi.Library('serialmw.dll', { 'opencom' : ['pointer', ['int']] }); var hcom = null; hcom = lib.opencom(1); console.log(hcom); // <SlowBuffer@0xFFFFFFFFFFFFFFFF >
SlowBuffer
只是一个Buffer
,它只是一堆原始的二进制字节。 如果你想比较两个缓冲区逐字节,你将不得不使用for循环或类似buffertools
的compare()
与两个缓冲区。