我在服务器端使用dll
进行一些计算。我使用ffi
模块从nodeJS
调用dll
,因此我需要在中间的某个位置保存C pointer
的地址并进一步使用它,但我不知道如何保存它,以便在一段时间后将其传递给dll
,以便在同一地址上执行操作。
有人知道怎么做吗。
在搜索了很多并尝试了不同的-2种场景后,我终于找到了一个如何存储地址并在未来检索以进行进一步操作的解决方案:-
(注意:-这里我使用的是ref,ffi模块(因此,为了存储指针,创建一个缓冲区,可以像下面的一样保存指针类型
const ref = require('ref');
const ffi = require('ffi');
var buf = ref.alloc('pointer');
ref.writePointer(buf, 0, pointer); // pointer or memory address
因此,在这里你将内存地址存储在缓冲区中,在你想使用的地方,你可以从缓冲区中检索它,如下所示:-
memory_pointer = ref.readPointer(buf,0); // buf is buffer which we created above, 0 for offset
所以现在您得到了memory_pointer
,这样您就可以使用ffi
模块将其传递给您的函数调用。