如何解决 MEM_BAD_POINTER 弹出问题?
已发表: 2021-02-15MEM_BAD_POINTER 错误是一个难以理解的具有挑战性的问题。 它通常在启动时出现在对话框窗口中,并在您单击“确定”按钮时消失,仅在下次重新启动时再次出现。
该错误与管理系统内存的 SmartHeap 库相关,并表明依赖于该库的应用程序出现问题。 该错误也是操作系统不兼容的症状。
什么是 SmartHeap 库?
SmartHeap 是一种用于优化系统内存的古老技术。 它用于无法在多处理器和多线程环境中最大化内存分配的旧操作系统中。 许多旧程序使用该工具来编译文件和模块。
今天,几乎没有任何程序依赖于内存管理工具。 如果您看到错误,那是因为您安装了旧版本的 Adobe Acrobat、AutoCAD 或 CorelDraw。
是什么导致 MEM_BAD_POINTER 错误?
您现在知道,如果您看到错误,则表示您的系统上安装了旧程序。 错误的原因可以追溯到该特定程序。 以下是对根本问题的简要说明:
程序不兼容
现代操作系统并不总是与遗留应用程序一致。 虽然较新版本的 Windows 运行旧应用程序应该没有问题,但 Microsoft 和应用程序开发人员可能已放弃对这些应用程序的支持,从而导致程序和您的操作系统之间出现小问题。
安装损坏
拥有一个可能与操作系统不同步的遗留应用程序是一回事,但错误地安装它是另一回事。 除此之外,该程序的文件可能已被恶意软件或任何其他系统故障破坏,从而导致 SmartHeap Library 错误发生。
系统变化
假设您已经使用旧版应用程序有一段时间了。 在这种情况下,最近的更改(例如新软件安装、新更新甚至新驱动程序安装)可能会导致错误。 升级对遗留应用程序不是那么友好,因为它们可能会引入某些未融入应用程序代码的设置。
应用程序冲突
您系统上的其他应用程序,尤其是启动程序和服务,可能与旧程序发生冲突。 您可以找出导致冲突的应用程序并纠正问题。 稍后您将了解如何执行此操作。
有问题的注册表项
某些程序在卸载后会留下注册表项。 每当注册表项尝试调用不再可用的程序时,就会发生错误。 清除错误的注册表项应立即解决问题。
如何解决 MEM_BAD_POINTER 问题
现在您已经熟悉了错误的可能原因,是时候解决这些问题并彻底摆脱它们了。
修复旧版应用程序或将其卸载
MEM_BAD_POINTER 错误表明您有一个依赖 SmartHeap 库的旧程序。 这也表明该程序有问题或与您的操作系统不兼容。 因此,您的第一个操作是修复应用程序。
修复程序很容易。 您必须通过控制面板中的程序和功能窗口。 跟着这些步骤:
- 同时按下 Windows 和 R 键盘按钮或右键单击“开始”按钮并在“高级用户”菜单打开后选择“运行”。
- 运行对话框窗口打开后,在文本字段中键入“控制面板”,然后单击“确定”按钮。
- 出现“控制面板”窗口后,单击“程序”下的“卸载程序”。
- 现在将出现“程序和功能”窗口。
- 接下来,找到该程序,右键单击它,然后单击修复。
- 按照向导上的后续说明完成该过程。
如果您没有看到修复选项,则必须卸载该应用程序并重新安装。 更好的是,您可以选择为与您当前的操作系统一起工作而开发的最新版本的程序。
在兼容模式下运行旧版应用程序
我们提到,由于兼容性问题,错误可能会出现。 如果您在 Windows 10 PC 上运行旧版应用程序,这可能是问题所在,因为操作系统可能不完全支持该应用程序。 也就是说,Windows 10 具有一项功能,可让您在较旧的 Windows 环境中运行应用程序。 Windows 8 或 7 应该对该应用程序有更好的支持,因此在兼容模式下运行这些版本中的任何一个都可以看到错误永远消失。
如果您不知道如何在兼容模式下运行程序,请按照以下步骤操作:
- 右键单击应用程序的桌面快捷方式,然后单击上下文菜单中的属性。
- 如果应用没有桌面快捷方式,请按照以下步骤操作:
- 同时按下 Windows 和 S 键盘按钮以打开搜索功能。
- 搜索程序。
- 一旦它出现在搜索结果中,右键单击它,选择更多,然后单击打开文件位置。
- 您将看到一个包含程序快捷方式的文件夹。
- 右键单击快捷方式,然后单击上下文菜单中的打开文件位置。
- 应用程序的安装文件夹打开后,转到其可执行文件(带有 EXE 扩展名的文件)并右键单击它。
- 下拉上下文菜单后选择属性。
- 属性对话框窗口打开后,切换到兼容性选项卡。
- 接下来,选中“以兼容模式运行此程序”复选框,然后选择 Windows 8 或 Windows 7。
- 之后,单击“确定”按钮。
- 检查问题是否再次出现。
清理您的系统注册表
一些剩余的注册表项有时会导致问题。 如果您有旧版应用程序但将其卸载,则它的一些剩余注册表项可能会导致错误。 另一个应用程序的注册表项也可能与旧应用程序发生冲突并触发 MEM_BAD_POINTER 问题。
在这种情况下,您必须查找这些注册表项并清除它们以解决问题。
请注意,系统注册表是操作系统中敏感且高度先进的部分。 如果您没有足够的知识并对其进行篡改,您可能会造成无法弥补的损失。
我们建议您使用专门的应用程序来查找这些有问题的密钥并摆脱它们。 强烈推荐使用 Auslogics Registry Cleaner。 该程序对新手和专家都很友好。 如果您不知道如何调整 Windows 注册表,该工具会将其范围限制为仅完全安全的基本操作。
也就是说,您应该做的第一件事是备份整个注册表。 这样,如果出现问题,您可以快速使系统恢复正常。
这些步骤将向您展示如何备份注册表:
- 同时按下 Windows 徽标键和 R 键,或右键单击“开始”按钮并从“高级用户”菜单中选择“运行”。
- 运行对话框窗口打开后,键入“regedit”并单击“确定”。
- 在“用户帐户控制”对话框中单击“是”。
- 看到注册表编辑器窗口后,单击左上角的文件。
- 单击导出。
- 导出注册表文件对话框窗口打开后,导航到要保存备份的文件夹,选择文件名,然后选择导出范围下的全部。
- 之后,单击“保存”按钮。
- 每当您想恢复注册表时,打开注册表编辑器并单击文件>>导入。
- 接下来,前往保存备份文件的文件夹并加载它。
现在您已经备份了注册表,前往 Auslogics Registry Cleaner 的官方网页并下载该程序的设置文件。 下载安装文件后,运行它。 单击“用户帐户控制”对话框中的“是”以允许运行设置向导。

安装向导出现后,选择您的首选项,例如语言和首选安装位置,然后同意许可。 向导完成安装后,重新启动系统。
系统重新启动后,启动程序,单击立即扫描按钮并选中备份更改选项。 该过程现在应该开始。 扫描的持续时间将取决于注册表的内容和系统的速度。
扫描完成后,程序将列出它发现的问题,并在旁边列出每个问题的严重性级别。 之后,单击修复选项以允许该工具解决它检测到的问题。 您将看到修复过程的进度,一旦完成,该程序将让您知道这些注册表问题的状态。 您可能会看到来自程序开发人员的其他产品的广告。
执行系统还原
如果您最近才开始遇到遗留应用程序的问题,则表明最近对系统所做的一些更改正在触发相关问题。 它可能是新的软件程序、驱动程序或系统更新。
您可以通过将计算机恢复到以前的日期来解决问题。 请注意,必须先保存一个还原点,然后才能还原系统。 幸运的是,当您对系统进行重大更改时,Windows 通常会创建自动还原点。
以下步骤将向您展示如何执行系统还原:
- 右键单击任务栏中的 Windows 徽标,然后单击文件资源管理器或同时按下 Windows 和 E 键盘按钮。
- 文件资源管理器窗口打开后,转到左侧边栏并右键单击此 PC。
- 从上下文菜单中选择属性。
- 系统窗口打开后,单击左侧的系统保护。
- 现在将出现“系统属性”对话框窗口的“系统保护”选项卡。
提示:您可以使用开始菜单的搜索功能来调用系统属性对话框。 只需打开开始并键入“系统还原”,然后单击“创建还原点”。
- 单击系统还原按钮。
- 系统还原向导打开后,单击下一步。
- 选择一个还原点,然后再次单击下一步。
- 之后,单击“完成”按钮并允许 Windows 恢复您的 PC。
- 过程完成后检查问题。
执行干净启动
如果上述修复均无效,您的下一步操作应该是检查应用程序干扰。 为此,您必须执行干净启动。
执行干净启动涉及禁用旨在在系统启动时加载的应用程序和服务。 通过这种方式,您可以了解是否有某个应用程序触发了错误。 您还可以使用干净启动技术来识别负责的应用程序或服务。
请按照以下步骤执行干净启动:
- 转到“开始”菜单,搜索“运行”,然后启动该程序。 您还可以点击 Windows 和 R 键盘按钮以打开运行。
- 运行打开后,键入“msconfig”,然后按 Enter 键。
- 系统配置对话框窗口打开后,转到服务选项卡。
- 选中“隐藏所有 Microsoft 服务”框。
- 接下来,单击“全部禁用”按钮。
- 之后,转到“启动”选项卡,然后单击“打开任务管理器”。
- 在任务管理器的启动选项卡下,选择每个程序并单击禁用。
- 在任务管理器的启动选项卡下禁用所有程序后,返回系统配置对话框并单击确定。
- 重新启动系统。
如果您的系统启动后错误没有出现,那么您必须找到之前导致它的程序。 为此,请启用一项服务并重新启动系统以检查错误是否出现。 继续检查其余服务,直到有问题的应用程序再次触发错误。
如果逐个浏览应用程序工作量太大,您可以按照以下步骤操作:
- 打开系统配置窗口并切换到服务选项卡。
- 取消选中您之前禁用的服务的前半部分,然后单击“全部禁用”按钮。 下次重新启动后,将阻止加载启动服务的后半部分。
- 如果错误对话框没有出现,那么您未选中的任何服务均不负责。 取消选中其余服务,单击禁用,然后重新启动系统。
- 如果在您第一次重新启动系统时出现错误,那么列表前半部分中的一项服务就是您要查找的服务。 您不必再检查其他启动项。 但是,在某些情况下,多个应用程序可能会触发错误。
找到负责任的应用程序后,将其删除或更新。
结论
这就是在 Windows 10 中修复 mem_bad_pointer 错误的方法。如果您对任何事情感到困惑,可以使用下面的评论部分来分享您的想法和问题。

使用反恶意软件保护 PC 免受威胁
检查您的 PC 是否存在您的防病毒软件可能遗漏的恶意软件,并使用 Auslogics Anti-Malware 安全删除威胁
如果您没有,我们建议您使用功能强大的防病毒程序。 此类问题可能是恶意软件感染的结果。