已知一个现成的ocx文件,没有源代码,我需要做一个外部接口与其一模一样的外壳,比如某个exe程序使用了这个ocx,我仿做了这个ocx之后,注销掉原来的ocx,exe程序要自觉的引用到这个仿做的ocx而不能报错,请问有什么简单的方法可以实现?

解决方案 »

  1.   

    查看组件类型库来写自己的实现
    或者用VC向导让一个组件实现原组件的接口,每个方法都返回S_OK,但有输出类型的参数可能很麻烦,因为你不知道该返回什么,返回一个错误的数据一样可能导致后续调用出错。
      

  2.   

    你如果有OCX的支持文档就可以自己弄了!
      

  3.   

    1。首先你要知道这个组件的接口的类型库IDL声明,你声明跟它一样就OK了。
    2。接着你的组件要完成IDL的声明。
    3。注册表文件的CLSID做成跟OCX的一样。
    补充说明,想查看类型库IDL的声明可以使用OLEVIEW,VC6,跟VS2010都自带的有(不知为什么VS2003,2005,2008都没有)。
    这样做会比较复杂,但代码相对比较干净。
    或者像一楼说那样,使用向导,帮你生成很多代码,你也修改不少代码,相对比较方便,改起来比较麻烦。
      

  4.   

    1。首先你要知道这个组件的接口的类型库IDL声明,你声明跟它一样就OK了。
    2。接着你的组件要完成IDL的声明。
    3。注册表文件的CLSID做成跟OCX的一样。
    补充说明,想查看类型库IDL的声明可以使用OLEVIEW,VC6,跟VS2010都自带的有(不知为什么VS2003,2005,2008都没有)。
    这样做会比较复杂,但代码相对比较干净。
    或者像一楼说那样,使用向导,帮你生成很多代码,你也修改不少代码,相对比较方便,改起来比较麻烦。