我正在尝试使用v8为node.js编写一个C ++库。我唯一的目标是允许javascript调用EnumWindows
,the win32 api function。
EnumWindows
方法本身将回调函数作为参数。它将为每个枚举窗口调用该函数,并将窗口句柄传递给它。
我正在努力使它为每个窗口句柄调用一个javascript函数。任何想法如何做到这一点? libuv看起来很有希望,但看起来我必须成为创建线程的人。情况并非如此。
答案 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。