一、关于注册ActiveX控件
Regsvr32.exe位于Windows目录的system子目录下。点击Windows的“开始→运行”菜单,在对话框中输入以下命令:(这里以netshare.ocx控件为例)
regsvr32 netshare.ocx
regsvr32 /u netshare.ocx
如果netshare.ocx文件不在system目录时,还必须在文件名前加上完整的路径。
(技巧:在“运行”中输入regsvr32 之后,只要把netshare.ocx按住直接拖到运行框中就行了)
问题:在Vista或W7中经常会有注册时 遇到权限问题,这时就要在 开始->所有程序->附件->命令提示符 (点右键)->以管理员身份登录,再将上面的注册代码写一遍,就ok了
二:关于添加ActiveX时出现 ”未指定的错误 控件无法加载的原因“
1.中文问题:如果你的项目类型是多字节的,而不是unicode编码的,你可能要注意这个问题了,我就发生了这个问题,为了解决这个问题没办法项目重新生成然后一个一个去排除,结果发现在 "copyright 公司名称(C)"的地方多了一个公司名称,是我自己手动加上去的,结果就是这个说明给搞的不能运行
2.acticex运行时需要其他的dll库没有在同一个目录下,或者没有在system32下都会导致这个问题
3.运行时许可导致,lic文件丢失.在新建项目的时候如果选中了"运行时许可"这个选项那么在你的项目中会产生一个lic文件,这个文件如果没有一起打包也会导致出现这个问题!
三:关于ActiveX如何设置断点调试
一般ActiveX的测试都是在VC提供的容器里进行了的,编译好.ocx之后,在VC中 工具->ActveX控件测试容器->新控件, 找到自己的OCX,确定,然后就可以看到ActiveX的效果。
但是这样就算设置了断点也断不住,或者如果OCX本身有错的话,也不知道错在哪或者直接就崩溃了,要让断点断住还需要让编译器ATTACH到对应的容器进程
具体的做法是:在测试容器(浏览器或者是vc自带测试容器)打开之后,在VC工具栏中,调试->附加到进程,然后选择你的容器的进程名(比如用VC自带的容器,进程名就是tstcon32.exe,或者 如果用IE浏览器,进程名就是IE的名字。 类推。),然后点击 附加。再到容器里添加ocx,就可以断点调试了。
|