4

首先让我说我加载了一个 DLL 就好了。但是当我去加载第二个 DLL 时,它总是会出现“无效的访问内存位置 (998)”错误。

在我的项目中,DLL 基本上包含运行 AI 所需的代码。我构建的另一个应用程序允许您编写简单的代码,然后在后台编译源代码并使其可用于“游戏”。

基本上我可以加载一个 AI (DLL) 并观察它的工作。下次我向它发送命令以加载新的 AI(单独和不同的实体)时,它会失败。我在整个过程中使用了新变量,所以它不应该踩到其他模块。

每个 DLL 看起来都差不多,因为它们都是以基本相同的方式构建的。(DLL 仅由一堆结构和一个函数组成)。我在想,也许 DLL 中有一些共同点使它以某种方式共享同一内存的一部分,但我不知道。

我希望我可以向您展示 DLL 源代码,但它不在这台机器上。

如果您有任何想法,请提前致谢!

-迈克尔

编辑:998 错误的正确名称是“ERROR_NOACCESS”。对于那个很抱歉。

4

1 回答 1

1

我知道已经很晚了……但也许这会有所帮助:

如何在 Windows XP SP2 中配置内存保护(发布时间:2004 年 12 月 9 日)

提到的页面提供了以下信息:

  • 介绍
  • 在你开始之前
  • 为计算机上的所有程序启用 DEP
  • 启用 DEP 例外列表
  • 配置系统范围的 DEP 选项
  • 相关信息
于 2010-09-29T13:39:10.113 回答