社区
Windows SDK/API
帖子详情
出现 "KERNEL32.DLL 中导致无效页错误" 怎么办?
lanshing
2003-10-13 11:55:31
我用 Delphi7 编写了一个软件,现在这个软件运行几天后退出时,会出现“KERNEL32.DLL 中导致无效页错误”,在调试状态,会进入到不是我的源程序里面,都是一些汇编代码?
请问在这种情况下,改如何判断在哪里出错了?
...全文
144
10
打赏
收藏
出现 "KERNEL32.DLL 中导致无效页错误" 怎么办?
我用 Delphi7 编写了一个软件,现在这个软件运行几天后退出时,会出现“KERNEL32.DLL 中导致无效页错误”,在调试状态,会进入到不是我的源程序里面,都是一些汇编代码? 请问在这种情况下,改如何判断在哪里出错了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lanshing
2003-10-17
打赏
举报
回复
我这边是这样的:程序在Win2K、WinXP、Win2003上执行均没有问题;在Win98下如果连续执行几天后,程序退出时有时会出现此问题。我仔细检查了程序退出代码,后来发现是程序退出时调用 FreeLibrary 时引起,按说也就是这个dll在退出时有问题,可是我这个dll功能极其简单,根本不存在内存泄漏的问题。现在我在程序退出时把 FreeLibrary 语句删除(由操作系统帮我释放dll)后,没有再出现这个问题。 我也百思不得其解。
另外我的程序是在 Win2K 上编译的。
wlw88
2003-10-17
打赏
举报
回复
你用到了哪些API函数?
星之瀚海
2003-10-17
打赏
举报
回复
是内存泄漏,我遇见过,主要是由于程序中有一些内存没有及时释放造成的,而在Windows系统中,一个进程在销毁时,要释放掉所有内存的,所以这时就导致了上面的错误,请楼主好好找找吧,我上次找了一个星期
lanshing
2003-10-17
打赏
举报
回复
不是内存泄漏。是动态卸载dll时出现问题。
lanshing
2003-10-13
打赏
举报
回复
内存泄漏不应该会在程序退出时出错吧?
huojiehai
2003-10-13
打赏
举报
回复
内存泄漏
lanshing
2003-10-13
打赏
举报
回复
详细错误是:
"在 015f:bff881b8 的模块
KERNEL32.DLL 中导致无效页错误。
Registers:
EAX=c0030120 CS=015f EIP=bff881b8 EFLGS=00010216
EBX=095fff58 SS=0167 ESP=094fffac EBP=09500018
ECX=095001cc DS=0167 ESI=81749fdc FS=2b37
EDX=bff768d5 ES=0167 EDI=095001f4 GS=0000
Bytes at CS:EIP:
53 56 57 8b 30 83 7d 10 01 8b 4e 38 89 4d f8 75
Stack dump:"
可是用编译 .map 文件后没有 bff881b8 附近的代码。
cuihl
2003-10-13
打赏
举报
回复
只能慢慢查找了,仅凭此内存错误很难定位源码。
你应该仔细检查一下程序退出时执行的代码。
尤其是清除对象、释放内存之类的操作。
lanshing
2003-10-13
打赏
举报
回复
那该如何查找呢?我知道VC里面可以通过编译 .map文件的方式查找,可是DELPHI下该如何查找此类错误呢?
另外:我的程序也不是说每次都会出错,而是运行比较长的一段时间后会此错。
huojiehai
2003-10-13
打赏
举报
回复
可能是退出时调用API出错,释放内存出错,可能是你的程序在运行过程中的某些操作已导致内存空间混乱
kernel
32
.
dll
本文详细解析了
导致
Windows系统
中
kernel
32
.
dll
非法
页
错误
的原因,并提供了针对性的解决方法,帮助用户理解并解决这类常见问题。
深入解析
Kernel
32
.
dll
与Msvcrt.
dll
本文深入探讨了Windows操作系统
中
两个核心
DLL
:
Kernel
32
.
dll
和Msvcrt.
dll
。
Kernel
32
.
dll
提供操作系统基本功能,如输入输出、窗口管理等;Msvcrt.
dll
为C/C++程序提供运行时支持,包含C标准库函数实现等。还给出了二者在文件操作、标准输入输出方面的使用示例。
“
kernel
32
.
dll
”、“user
32
.
dll
”这种类型的弹窗是什么原因
导致
的以及怎么解决?
本文介绍了“
kernel
32
.
dll
”“user
32
.
dll
”弹窗的原因,包括系统文件损坏或丢失、病毒感染、系统更新不当等。同时给出了解决办法,如使用系统文件检查器、进行系统还原、手动下载替换文件、使用小番茄
dll
修复工具等,还介绍了该工具的特点。
解决
kernel
32
.
dll
丢失的修复方式,
kernel
32
.
dll
预防
错误
的方法
本文介绍了如何修复电脑
中
kernel
32
.
dll
丢失的问题,包括使用
DLL
修复工具、恢复丢失文件、从官网下载以及预防措施,如系统更新、安全软件使用等。,
kernel
32
.
dll
文件丢失的几种解决办法,概述
kernel
32
.
dll
文件
本文详细阐述了
kernel
32
.
dll
在Windows系统
中
的关键作用,涉及内存管理、线程处理和
错误
处理。介绍了
kernel
32
.
dll
丢失的常见症状及解决方法,包括重新安装程序、使用SFC工具、
dll
修复工具和手动替换文件,同时强调了备份和来源验证的重要性。
Windows SDK/API
1,184
社区成员
22,326
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章