程序笔记   发布时间:2022-06-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ocx手动添加方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

正常项目是可以通过ide(vc6.0、vs2013等)进行添加方法和事件的,但项目组成员有时候把工程搞坏了,即通过ide是无法自动添加了。

ocx手动添加方法

 

 所以只能先手动应急了。下面记录的是手动添加的过程。

-------------------------------------------------------------------------------------------------

  1. @H_616_16@Ctrl.h和Ctrl.cpp增加对应的声明和实现如下:

    @H_616_16@(说明:如果dispidYbInit和DISP_FUNCTION没加上,然对外接口有暴露[工具能看到暴露的接口],但调用时候会提示没有该方法)

    @H_616_16@@H_616_16@// Dispatch maps@H_616_16@@H_616_16@    @H_616_16@//{{AFX_DISPATCH(CocxCtrl)@H_616_16@    afx_msg short YbInit(LPCTSTR pIniTinfo);@H_616_16@    //}}AFX_DISPATCH@H_616_16@@H_616_16@    @H_616_16@DECLARE_DISPATCH_MAP()@H_616_16@        @H_616_16@@H_616_16@// Dispatch and event IDs@H_616_16@@H_616_16@public:@H_616_16@@H_616_16@    @H_616_16@enum {@H_616_16@@H_616_16@    @H_616_16@//{{AFX_DISP_ID(CocxCtrl)@H_616_16@    dispidcheckPrinter = 1L,@H_616_16@    dispidYbInit = 145L,
    @H_616_16@// Dispatch map@H_616_16@BEGIN_DISPATCH_MAP(CocxCtrl, COleControl)@H_616_16@    //{{AFX_DISPATCH_MAP(CocxCtrl)@H_616_16@        DISP_FUNCTION(CocxCtrl, "YbInit", YbInit, VT_I2, VTS_BSTR)@H_616_16@    //}}AFX_DISPATCH_MAP@H_616_16@    @H_616_16@@H_616_16@short @H_616_16@CocxCtrl::YbInit(@H_616_16@LPCTSTR @H_616_16@pIniTinfo)@H_616_16@{@H_616_16@@H_616_16@    @H_616_16@return @H_616_16@0;@H_616_16@}
  2. @H_616_16@对外暴露的Ctrl.odl文件methods下按顺序递增对应方法签名

    @H_616_16@@H_616_16@methods:@H_616_16@    @H_616_16@// NOTE - ClassWizard will maintain method information here.@H_616_16@    @H_616_16@//    Use extreme caution when ediTing this section.@H_616_16@    @H_616_16@//{{AFX_ODL_METHOD(CocxCtrl)@H_616_16@    [id(1)] short check();@H_616_16@    [id(145)] short YbInit(LPCTSTR pIniTinfo);@H_616_16@    //}}AFX_ODL_METHOD

    @H_616_16@总结:至此,就可以调用上面的方法了,调用示例如下:

    @H_616_16@function yb_init(){@H_616_16@@H_616_16@    var ret = ocxctl.YbInit("");@H_616_16@    @H_616_16@}@H_616_16@@H_616_16@<!--clsid : 控件成功注册到本机后,这个值在本机注册表中可以找到,页面获取控件对象就是通过这个来找的。-->  @H_616_16@@H_616_16@<@H_616_16@OBjeCT @H_616_16@name=@H_616_16@"ocxctl" @H_616_16@ID=@H_616_16@"ocxobject" @H_616_16@WIDTH=@H_616_16@"0" @H_616_16@HEIGHT=@H_616_16@"0" @H_616_16@CLASSID=@H_616_16@"CLSID:4953D2DD-0B5F-45F1-B46C-C55C35571152" @H_616_16@codebase=@H_616_16@"CocxCtrl.ocx"@H_616_16@></@H_616_16@OBjeCT@H_616_16@>  @H_616_16@@H_616_16@<@H_616_16@p@H_616_16@>@H_616_16@  @H_616_16@<@H_616_16@input @H_616_16@type=@H_616_16@"button" @H_616_16@value=@H_616_16@"初始化" @H_616_16@onClick=@H_616_16@"yb_init()"@H_616_16@/>@H_616_16@@H_616_16@</@H_616_16@p@H_616_16@>

大佬总结

以上是大佬教程为你收集整理的ocx手动添加方法全部内容,希望文章能够帮你解决ocx手动添加方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。