OCX控件给一个方法手动增加了一个参数后调用不起来了

chengshiding 2014-07-15 11:28:04
MyOcx.odl dispinterface _DMyOcx methods:
MyOcxCtl.h Dispatch maps
MyOcxCtl.cpp 增加函数参数

就在上面三个源代码相应的地方照猫画虎的改了下,方法就掉不起来了。其实更好的办法是重载需要增加的函数,然后增加一个类成员变量来保存增加的参数。然后在旧的调用函数中使用。

现在这种手动改动代码为什么起不了作用呢。求大神帮忙!


...全文
199 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengshiding 2014-07-16
  • 打赏
  • 举报
回复
这个地方没改,BEGIN_DISPATCH_MAP 改了就好了。 多谢楼上了
fishion 2014-07-16
  • 打赏
  • 举报
回复
这种手动添加的方式经常会漏掉一些地方的添加的,同时类型要对,你要仔细看看 dispinterface _DMyOcx { properties: methods: [id(DISPID_ABOUTBOX)] void AboutBox(); [id(1)] void Test(BSTR bstr1, LONG lParam); }; void Test(LPCTSTR bstr1, long lParam); DISP_FUNCTION_ID(CMyOcxCtrl, "Test", dispidTest, Test, VT_EMPTY, VTS_BSTR VTS_I4) void CMyOcxCtrl::Test(LPCTSTR bstr1, long lParam) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); // TODO: 在此添加调度处理程序代码 CString str; str.Format(_T("%s:%ld"), bstr1, lParam); AfxMessageBox(str); }
zgl7903 2014-07-16
  • 打赏
  • 举报
回复
调用应用的地方也要修改 static BYTE parms[] = 嘻嘻嘻嘻嘻嘻

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧