dll总是被挂死问题求解

glovej 2014-08-28 09:44:48
我的应用是borland C调用一个delphi的OCX,而ocx又是基于几个C++开发的dll,部件全是在在windows 32位上编译,然后在windows 64位win7环境下运行。实际测试的时候,dll总是在几个地方挂死。或者是写日志的地方,或者是调用系统函数的地方,或者是临界区相关的地方,而有的时候却是在OCX上挂死(好像也没有很固定的规律)。现在不知道该如何定位这个问题,是否OCX异常也会导致dll挂死(OCX是有界面的,从现象上来看只是界面动不了了,但是界面没有崩溃
...全文
130 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-08-29
  • 打赏
  • 举报
回复
换台电脑试试,如果没有问题,只能说明原机器CPU风扇不转了或机箱中灰尘太大或内存条接触不良。
glovej 2014-08-28
  • 打赏
  • 举报
回复
问题不是必现的,要多试几次才会出现
glovej 2014-08-28
  • 打赏
  • 举报
回复
试了下指定syswow64 regsvr32之后问题依旧
glovej 2014-08-28
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下; 所以要注意: 在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。 且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
dll和OCX及相关文件都是放在SysWow64下的,但我注册的时候只是用了regsvr32命令,没有指定路径,这个有影响吗
赵4老师 2014-08-28
  • 打赏
  • 举报
回复
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下; 所以要注意: 在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。 且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
枫舞的季节 2014-08-28
  • 打赏
  • 举报
回复
使用调试器(windbg)解决问题。 1 设置符号路径 2 挂windbg 3 查看挂死的时候,各个线程的栈状态。 如果是临界区死锁,那么可以使用!cs命令查看。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧