2

现在我正在使用 Node.js 中的 dll 开发一个 USB 串行应用程序。如果无法打开 com 端口,此 dll 将返回 INVALID_HANDLE_VALUE。所以我想在 Node.js 中处理 ret 值。在这种情况下,我该如何处理?

我不确定如何比较 ret 值和 SlowBuffer。

动态链接库

#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1
typedef HANDLE  (*OPEN)(int);
__declspec(dllexport) HANDLE opencom(int ncom)

带有 node-ffi 的 Node.js

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 >
4

1 回答 1

0

ASlowBuffer只是 a Buffer,它只是一堆原始二进制字节。如果要逐字节比较两个缓冲区,则必须对两个缓冲区使用 for 循环或类似buffertools'compare()的东西。

于 2014-09-16T14:44:08.383 回答