`
mmdev
  • 浏览: 12930325 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

MFC创建ActiveX控件 遇到的问题

 
阅读更多

一、关于注册ActiveX控件

Regsvr32.exe位于Windows目录的system子目录下。点击Windows的“开始→运行”菜单,在对话框中输入以下命令:(这里以netshare.ocx控件为例)

regsvr32 netshare.ocx <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>注册netshare.ocx控件</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

regsvr32 /u netshare.ocx <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>解除netshare.ocx控件的注册</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

如果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,就可以断点调试了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics