C++ 如何确保ActiveX类中的方法进入DLL(通过ITypeLib检查)
在Visual Studio 2013中,我们如何确保ActiveX中添加的方法可以在Javascript中访问,并且可以在OlleView的C++ 如何确保ActiveX类中的方法进入DLL(通过ITypeLib检查),c++,dll,visual-studio-2013,com,activex,C++,Dll,Visual Studio 2013,Com,Activex,在Visual Studio 2013中,我们如何确保ActiveX中添加的方法可以在Javascript中访问,并且可以在OlleView的ITypeLib 我有一个方法,它不会显示在OlleView中的ITypeLib中,但有一些方法显示: public: STDMETHOD(SendToREST)(BSTR resource, BSTR operation, BSTR data); // not showing STDMETHOD(WriteBuf)(/*[in]*/ BS
ITypeLib
我有一个方法,它不会显示在OlleView中的ITypeLib
中,但有一些方法显示:
public:
STDMETHOD(SendToREST)(BSTR resource, BSTR operation, BSTR data); // not showing
STDMETHOD(WriteBuf)(/*[in]*/ BSTR a); // showing
我一直在进行regsvr32
DLL注册,但仍然没有显示该方法
- 我可以使用什么来跟踪方法未显示的原因
- 是因为该方法不在DLL中,还是因为某些注册表不在DLL中 没有更新
- 我应该手动将其添加到项目的IDL文件中吗?(因为我在那里看不到)
C++代码将引用IDL的派生,您的类将覆盖IDL接口中定义的抽象虚拟方法。这是C++代码如何与类型库定义连接的。问题是第三颗子弹。您需要以另一种方式执行此操作,首先将其添加到IDL,然后确保编译器会抱怨,因为您尚未添加该方法。在VS2013中,始终使用类向导,以便两件事同时发生。@HansPassant如果类(.h和.cpp)已经存在,我是否应该再次添加该类(参考您所说的类向导)?@HansPassant如果您对该类进行注释,您可以将其作为答案,以便我可以接受它。如何确保类型库已注册,regsvr32命令不够吗?
regsvr32
在类型库是DLL的一部分时可以。当您通过LIBID(而不是浏览特定文件)查找类型库时,始终可以通过使用OleView打开来进行双重检查。