dll无法加载到程序中

晓灬佩恩 2010-09-27 04:47:19
RT,我们公司发布一个程序,用户反馈说有个对话框点击没有响应(即对话框弹不出来)。自己测试了发现问题是:
如果电脑上没有安装vs 2008(vs其它版本并不清楚,我们这边都用的vs2008),则对话框点击没有响应。因为该对话框要加载的dll也是公司编写的,可能dll某些依赖项在没有安装VS 2008的电脑上找不到。
废话了半天,切入正题。。。谁知道安装vs 2008过程的电脑中添加了哪些dll文件??我需要一一排除,到底是缺少哪个dll导致。。。
如果有满意答案一定加分,over
...全文
481 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
晓灬佩恩 2010-09-29
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 nwao7890 的回复:]
编译选项里有没有加 清单嵌入?
[/Quote]
你是说的 那个不能有对话框不能运行的程序么?
nwao7890 2010-09-29
  • 打赏
  • 举报
回复
编译选项里有没有加 清单嵌入?
晓灬佩恩 2010-09-29
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 m_tornado 的回复:]
如果认为是在系统路径下另加dll,那么lz可以先删除vs08,dir C:\windows\system32\*.dll > C:\dllBak.txt
安装完了之后再执行一次,ue比对两个文件
[/Quote]

试过你的方法,确实多了几个文件,但我复制过来之后也不能运行。。。



谁能告诉我,安装VS都修改了系统一些什么东西。。。。知道的请告诉我下。。。总不能跟用户说你装个VS就可以了。。。
zhanshen2891 2010-09-29
  • 打赏
  • 举报
回复
凡是能重现的问题就都不是问题

既然你那个dll是自己写的,那你完全可以知道是哪里出了问题。多加一些错误提示。
晓灬佩恩 2010-09-29
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 tiger9991 的回复:]
楼主找DLL的问题,绝对是治标不治本,没经验的表现。你最后会发现,找到一个DLL,又缺少另外一个DLL,然后周而复始,搞很久
[/Quote]

所以我这不是在问嘛,你有没有什么好的意见咯。。。我确实刚初学。。。。,对这方面不太懂
晓灬佩恩 2010-09-29
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 wangk 的回复:]
下载 VC2008运行发布包在没有安装的机器上进行安装。
链接: Microsoft Visual C++ 2008 Redistributable Package (x86)
[/Quote]
兄弟,昨天晚上试过你 的方法,不行。。。
m_tornado 2010-09-28
  • 打赏
  • 举报
回复
如果认为是在系统路径下另加dll,那么lz可以先删除vs08,dir C:\windows\system32\*.dll > C:\dllBak.txt
安装完了之后再执行一次,ue比对两个文件
sl_shalou 2010-09-28
  • 打赏
  • 举报
回复
学习学习
晓灬佩恩 2010-09-28
  • 打赏
  • 举报
回复
有没有人能顺着我的思路帮我找找vs 2008安装后在系统中添加的dll。。。。。。。。。。。。。。
搞定结贴,加分。。。谢谢了
傻X 2010-09-28
  • 打赏
  • 举报
回复
楼主找DLL的问题,绝对是治标不治本,没经验的表现。你最后会发现,找到一个DLL,又缺少另外一个DLL,然后周而复始,搞很久
晓灬佩恩 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 wangk 的回复:]
下载 VC2008运行发布包在没有安装的机器上进行安装。
链接: Microsoft Visual C++ 2008 Redistributable Package (x86)
[/Quote]

额。。你说的运行发布包是什么个情况,能不能详细解释下。。。
晓灬佩恩 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 yuchongjike 的回复:]
2008安装时有太多个DLL了,建议楼主不要这样来找,太麻烦.


我刚刚还碰到了一个2003和XP能运行,2000不能运行的程序,直接用depends找所有DLL,然后一个一个拷过去试才搞定的.
[/Quote]

我也不想啊,但问题总得解决。。。你的方法我也去试试看,关键是我的那程序用depends是没有缺少dll的,只是有个提示
警告: 由于在延时加载依赖模块中丢失导入函数,至少有一个模块具有不能解析的导入。
wangk 2010-09-28
  • 打赏
  • 举报
回复
下载 VC2008运行发布包在没有安装的机器上进行安装。
链接: Microsoft Visual C++ 2008 Redistributable Package (x86)

yuchongjike 2010-09-28
  • 打赏
  • 举报
回复
2008安装时有太多个DLL了,建议楼主不要这样来找,太麻烦.


我刚刚还碰到了一个2003和XP能运行,2000不能运行的程序,直接用depends找所有DLL,然后一个一个拷过去试才搞定的.
dengzikun 2010-09-27
  • 打赏
  • 举报
回复
安装Visual C++ 2008 Redistributable Package (x86)试试.
sunlin7 2010-09-27
  • 打赏
  • 举报
回复
ieshims.dll ~~ 这个需要安装ie8以上才行。请安装IE8试试(这样的dll往往不是拷贝一个来就可以正常工作了,而可能需要com, activex等支持,建议楼主完整安装ie8)。
晓灬佩恩 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yuchongjike 的回复:]
建议你还是直接从可以运行的电脑上拷贝....

你可以在能运行的电脑上直接把程序打包试下
[/Quote]

不行。。。,这我试过了
所以才说是没装vs少了一些库,才会对话框没反应
晓灬佩恩 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dianhui 的回复:]
最好在自己的编译环境下用depends查找exe文件所需要的库。从网上下的库文件可能版本不一样!
[/Quote]
我的电脑是xp,出问题的电脑是win7,而且我的电脑上安装了vs,所以是能够弹出对话框的,在我电脑上面是没有缺少库文件,我也找不到到底是少了哪个出的问题
傻X 2010-09-27
  • 打赏
  • 举报
回复
vs2008? 我一直觉得不装VS,还是装下.NETFRAMEWORK3.5
yuchongjike 2010-09-27
  • 打赏
  • 举报
回复
建议你还是直接从可以运行的电脑上拷贝....

你可以在能运行的电脑上直接把程序打包试下
加载更多回复(7)

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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