您的位置:首页 > 其它

OCX 调试遇到问题

2013-09-28 14:13 211 查看


1.提示不是一个可执行的文件没有为这个文件类型注册的注册帮主程序 --- 缺少ocx依赖的dll 文件

2.1>正在生成代码

1>已完成代码的生成

1>正在嵌入清单...

1>正在注册输出...


编译到此处 程序卡住不动,我在DLL main 文件中添加了2个全局变量。注释掉 可以通过。
http://bbs.csdn.net/topics/340091362 来源这篇
问题。



2.未能注册输出 请确保您有修改注册表的相应权限
首先检查是否缺少DLL.
解决方法:来源于http://blog.sina.com.cn/s/blog_7270407901013hfg.html



工程设置的问题,VS2005建的STL工程中默认的设置是:

ALT的使用:动态链接到
ATL

配置属性->链接器->常规->注册输出:


改为:

ALT的使用:静态链接到
ATL

配置属性->链接器->常规->注册输出:


就这么简单就解决了,不过倒花了我不少时间去找问题。

注:我已经是管理员登陆,对注册表有完全的操作权限。

附:

3. 经过第二步编译成功但是注册时 仍然出错。---重启。

出差原因. 出错的OCX 或者(dll)调用了另外一个DLL(记为AAA.DLL) 中的函数. 而这个函数式新添加到dll中.也就是在(AAA.DLL 中添加了一个新的导出函数.且这个函数被Ocx使用)
编译不会出错也就是 按照1方法修改后编译通过,但是注册这个DLL 时会提示找不到文件. 如果不安第一步修改,则问题就是
error PRJ0050: 未能注册输出。请确保您有修改注册表的相应权限。错误.

如何编写一个控件:
/article/4286527.html



4> 另外一个情况也会导致同样的问题, 当前的OCX 控件已经通过其他的应用程序安装,到注册表中,此时 注册这个OCX 控件 仍然会导致提示这个错误.因此

如果检查到依赖的DLL 不缺少的情况下,可尝试 将之前安装的OCX 卸载.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐