Visual c++ ActiveX/IDL–;如何从导出成员函数;“ATL简单对象”;在OCX控制中?
我在MSVC++10中有一个ActiveX控件,可以编译成.ocx。我已经向这个控件添加了另一个“ATL简单对象”,我想从中导出一些函数 如果此库被称为Visual c++ ActiveX/IDL–;如何从导出成员函数;“ATL简单对象”;在OCX控制中?,visual-c++,activex,atl,idl,Visual C++,Activex,Atl,Idl,我在MSVC++10中有一个ActiveX控件,可以编译成.ocx。我已经向这个控件添加了另一个“ATL简单对象”,我想从中导出一些函数 如果此库被称为OcxTest,则必须执行以下步骤才能导出函数: 将函数声明为文件OcxTestCtrl.h中类COcxTestCtrl(由项目向导生成)的受保护成员 定义OcxTestCtrl.cpp中的函数 将其添加到OcxTestCtrl.cpp中的调度映射中: BEGIN_DISPATCH_MAP(COcxTestCtrl, COleControl)
OcxTest
,则必须执行以下步骤才能导出函数:
COcxTestCtrl
(由项目向导生成)的受保护成员BEGIN_DISPATCH_MAP(COcxTestCtrl, COleControl)
DISP_FUNCTION_ID(COcxTestCtrl, "Test", 1, Test, VT_I4, VTS_I4 VTS_I4)
END_DISPATCH_MAP()
[ uuid(...), version(1.0), control ]
library OcxTestLib {
importlib(STDOLE_TLB);
[ uuid(...) ]
dispinterface _DOcxTest {
properties:
methods:
[id(1)] int Test(int x, int y);
};
现在,我有点不知道我在哪里定义了我添加到项目中的另一个“ATL简单对象”的导出。我想前两个步骤与我写的类似。其他两步呢
你试图用手来做这件事会给自己带来麻烦。函数不会在COM服务器中导出。使用向导使一切正常。右键单击类视图窗口中的接口,添加,添加方法。您可能需要重新开始,以避免手动输入的代码造成痛苦。好的,谢谢您指出向导。(事实上,它每次都会冻结,因为我可能对IDL做了太多的更改,但我能够在一个新项目中使用它来查看它的功能。因此,我的问题得到了回答。)