如何获得原型成员函数(C++ -> Javascript)
有谁知道如何从 C++ 调用 Javascript 原型的方法?
我有一个指向脚本 IDispatch 的指针,并且可以获取原型的 IDsOfNames,但我找不到如何获取其成员函数的 IDispatch。
说(伪代码):
JSprototype foo
{
method bar(baz);
}
我可以获得 foo 的有效 DISPID,但我不知道如何调用 bar(baz)
。有人有想法吗?
Does anyone know how you can call a method of a prototype in Javascript from C++?
I have an pointer to script IDispatch, and I can get the IDsOfNames for the prototype, but I can't find how to get the IDispatch of it's member function.
Say (pseudocode):
JSprototype foo
{
method bar(baz);
}
I can get a valid DISPID of foo, but I don't know how to call bar(baz)
. Does anyone have an idea?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这就是
IDispatch::Invoke
的用途。您不需要为每个函数使用单独的IDispatch
。但是,您确实需要bar
的DISPID,因此需要foo
的IDispatch
。这意味着您必须调用iFoo->Invoke(DISPID_bar)
和QueryInterface(IDispatch)
来获取结果。That's what
IDispatch::Invoke
is for. You don't need a separateIDispatch
for every function. However, you do need a DISPID ofbar
, and therefore anIDispatch
offoo
. That means you'll have to calliFoo->Invoke(DISPID_bar)
andQueryInterface(IDispatch)
the result.