2

退出我的应用程序时偶尔会出现此问题 - 我的应用程序正在通过网络运行 EXE。我知道当部分 EXE 按需加载时,这是一个页面错误。

我还在 TDrawGrid 的 OnDrawCell 方法中观察到它,所以我很困惑这可能是如何导致页面加载的。此外,异常不断发生。

所以我的问题:

错误 C0000006 是否可能由其他原因导致?我已经对应用程序管理内存的方式进行了相当大的更改,尽管没有什么异常,而且我相信代码的行为。

如何让应用程序在启动时将其全部加载到内存中(在 Delphi 2006 中 - 我知道有用于更高版本的 Delphi 的指令)。

TIA

4

3 回答 3

5

该指令$SetPEFlags似乎是 Delphi 2006 的一部分,至少 Hallvard 在本文中在 D2006 的上下文中谈到了它。在这里查看如何使用它。

于 2011-08-02T09:29:05.007 回答
2

我们也经历过这一点。系统将一些可执行页面放出进行交换,然后在一段时间后将其调回页面失败。它似乎与睡眠后恢复的网络连接有关。

我们找到的唯一可行的解​​决方案是在本地机器上找到可执行文件。

于 2011-08-02T05:45:48.583 回答
1

如果您的软件是从网络驱动器运行的,也经常会出现此异常 C0000006。为了防止这个问题,你可以结合标志

{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP}

带有以下标志:

IMAGE_FILE_NET_RUN_FROM_SWAP = $0800;

{$SetPEFlags $0C00}
于 2016-01-28T09:00:55.117 回答