v8,libuv,nodejs,win32 api - 如何调用EnumWindows并具有回调调用javascript函数?

时间:2014-04-22 03:02:13

标签: c++ node.js v8 libuv

我正在尝试使用v8为node.js编写一个C ++库。我唯一的目标是允许javascript调用EnumWindowsthe win32 api function

EnumWindows方法本身将回调函数作为参数。它将为每个枚举窗口调用该函数,并将窗口句柄传递给它。

我正在努力使它为每个窗口句柄调用一个javascript函数。任何想法如何做到这一点? libuv看起来很有希望,但看起来我必须成为创建线程的人。情况并非如此。

1 个答案:

答案 0 :(得分:1)

使用uv_async_init() and uv_async_send()。您可以将自己的数据指针附加到uv_async_t的{​​{1}}成员(例如data)。在使用uv_async_t foo; foo.data = someptr;发信号通知主线程时,您可以在此处存储所需的任何数据(例如,有关您的情况下的枚举窗口的信息)。

进入主线程上的uv_async回调后,您可以从同一个uv_async_send()成员中读取并使用v8 API调用javascript。