首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

请高手谈调试环境与运行环境的不同解决办法

2012-04-10 
请高手谈调试环境与运行环境的不同程序使用链接方式,连接DLL运行正常Release在调试环境下LoadLibrary正常R

请高手谈调试环境与运行环境的不同
程序使用链接方式,连接DLL   运行正常

Release在调试环境下LoadLibrary正常
Release独立运行(就是在开发的机器上),LoadLibrary错误   代码   0x7e

Debug无论在调试或独立运行都正常。

以前VC6是正确的,VC2005出现了这个问题

(应用需要LoadLibrary方式载入)

[解决办法]
# for hex 0x7e / decimal 126
ERROR_MOD_NOT_FOUND winerror.h
# The specified module could not be found.
# as an HRESULT: Severity: SUCCESS (0), FACILITY_NULL (0x0), Code 0x7e

几种可能性:
1。你的Dependency 路径有问题
2。缺Dependency,这个最有可能,你大概是Manifest版本没有弄对。

到System Event Log里面看看,如果是Manifest引起的里面会找得到。另外用 F5 运行Release Mode,观察你的Output Window,看看有没有明显的错误信息。
[解决办法]
生成文件只调用 user32.dll kernel32.dll,不存在的找不到的模块
=============================================================

你的程序是汇编写的还是自己写的MinCRT?不连接msvcrt吗?用Depends或者Dumpbin好好看看。从VS2005开始Runtime是用WinSxS,你的Manifest里面指定用哪版的就用哪版(如果没有.manifest,VS2005自动给你加一个)。如果你manifest里面所定的版本系统没有,你就会得到这个module could not be found 的问题。

调试机器和开发机器不是一个机器吗?有点儿糊涂。 在出问题的机器上运行

vcredist_x86.exe(忘了路径了,到2005安装目录底下找找)

试试。
[解决办法]
Nooning,你看看

看看System Event Log,里面会有错误信息。

首先需要搞清楚你的Manifest里面需要的是哪版的CRT.

关于这方面的检错,看看zhang junfeng的这篇博客,他以前就是Fusion组的,比较有权威。

http://blogs.msdn.com/junfeng/archive/2006/04/14/576314.aspx

[解决办法]
不好意思我没有QQ,你再试一下用系统自带的Debugger ntsd看看有没有有用的信息;

ntsd 你的.exe的全路径

然后
g

如果运气好,里面会显示所缺 DLL的名字。

热点排行