如何在 JavaScript 中保存指针并进一步检索
How to save pointer in JavaScript and retrieve further
我在服务器端使用 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
模块将它传递给你的函数调用。
我在服务器端使用 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
模块将它传递给你的函数调用。