如何确保 ActiveX class 中的方法进入 DLL(通过 ITypeLib 检查)
How to ensure method in ActiveX class gets into DLL (Checking by ITypeLib)
在Visual Studio2013,如何保证ActiveX中添加的方法在Javascript中可以访问,在OlleView的ITypeLib
中可以查看
我有这个方法不会在 OlleView 的 ITypeLib
中显示,但有方法显示:
public:
STDMETHOD(SendToREST)(BSTR resource, BSTR operation, BSTR data); // not showing
STDMETHOD(WriteBuf)(/*[in]*/ BSTR a); // showing
我一直在 regsvr32
注册 DLL,但方法仍然没有出现。
- 我可以使用什么来追踪方法未显示的原因?
- 是因为该方法不在 DLL 中还是某些注册表中
没有更新?
- 我应该手动将它添加到项目的 IDL 文件中吗? (因为我在那里看不到)
您需要将有问题的方法添加到 IDL 中的接口。那么这些接口应该在库块中,或者被库块中的任何内容引用。这是将这些 IDL 定义编译到类型库中所必需的。然后确保类型库已注册。
C++ 代码将引用 IDL 的派生物,您的 类 将覆盖 IDL 接口中定义的抽象虚拟方法。这就是 C++ 代码与类型库定义的连接方式。
在Visual Studio2013,如何保证ActiveX中添加的方法在Javascript中可以访问,在OlleView的ITypeLib
我有这个方法不会在 OlleView 的 ITypeLib
中显示,但有方法显示:
public:
STDMETHOD(SendToREST)(BSTR resource, BSTR operation, BSTR data); // not showing
STDMETHOD(WriteBuf)(/*[in]*/ BSTR a); // showing
我一直在 regsvr32
注册 DLL,但方法仍然没有出现。
- 我可以使用什么来追踪方法未显示的原因?
- 是因为该方法不在 DLL 中还是某些注册表中 没有更新?
- 我应该手动将它添加到项目的 IDL 文件中吗? (因为我在那里看不到)
您需要将有问题的方法添加到 IDL 中的接口。那么这些接口应该在库块中,或者被库块中的任何内容引用。这是将这些 IDL 定义编译到类型库中所必需的。然后确保类型库已注册。
C++ 代码将引用 IDL 的派生物,您的 类 将覆盖 IDL 接口中定义的抽象虚拟方法。这就是 C++ 代码与类型库定义的连接方式。