Я пытаюсь написать библиотеку C ++, используя v8, для node.js. Моя единственная цель — позволить JavaScript вызывать EnumWindows
, функция Win32 API.
EnumWindows
Сам метод принимает функцию обратного вызова в качестве параметра. Эта функция будет вызываться для каждого перечисляемого окна, передавая ему дескриптор окна.
Я пытаюсь сделать так, чтобы он также вызывал функцию javascript для каждого дескриптора окна. Есть идеи, как это сделать? libuv выглядел многообещающе, но похоже, что именно я должен был создать тему. Это не тот случай, здесь.
использование uv_async_init () и uv_async_send (). Вы можете прикрепить свой собственный указатель данных к uv_async_t
«s data
член (например, uv_async_t foo; foo.data = someptr;
). Здесь вы можете хранить любые данные, которые вам нужны (например, информацию о перечисленных окнах в вашем случае), когда сигнализируете основной поток с помощью uv_async_send()
,
Оказавшись внутри обратного вызова uv_async в главном потоке, вы можете читать из того же data
член и призыв к JavaScript с помощью API v8.