OCX实际上还是一种dll,只不过暴露的接口能够被web直接访问。在vc6.0时代,有提供ocx容器进行接口的测试,但是在新版的vs2008以及后续版本的vs工具中,该工具已被移除。那么,我们该如何方便的对ocx进行调试呢?
既然ocx是被web调用的,我的思路是直接用html写一段测试代码。但是怎么进行调试呢?
上图中的Command和CommandArgument是关键所在——Command代表OCX所依赖的载体,或者说指定由谁来对我们的OCX来进行调用,这里我们选择iexploer.exe作为载体程序。CommandArgument为载体程序需要的参数,此处填写我们写好的html测试页面即可。
可能遇到的问题
a. Debug模式编译OCX报错
* pre-command*****后面忘记了。。。
修改Debug的编译属性,Linker->General->Register OutPut选为No,即可。
b. Debug执行,进不了当前的ocx源码的断点
原因:
ie8 默认是多进程工作的
通过修改注册表改为单进程工作
多进程的时候,启动的ie进程和加载要调试的ocx的ie进程不是一个进程,所以不能调试
解决:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"TabProcGrowth"=dword:00000000
把 以上文字保存成 1.reg,双击1.reg,导入到注册表里,就可以调试了