6

德尔福 6 教授

我们有很多应用程序。这些程序有 8-12 MB 大小。

在此期间,我们多次收到有关“无效流格式”错误的报告。

我们使用共享的 Windows(或 Linux)文件夹来存储应用程序,用户通过链接从这些目录运行它们。这意味着操作系统正在分页文件,并仅加载所需的部分。

以前我们得到 C000006 异常。据我所知,这意味着文件分页(加载)因任何网络问题(超时等)而失败。

现在我们面临“无效的流格式”错误和“无效的属性 xxxx”错误。

如果我知道的话,这两个错误都是由“分页问题”引起的,但是代码中发生了 C06,并且在 Exe 的数据区域中发生了流错误。但也许我知道错了...

无论如何,问题很奇怪。有时我们得到它,有时我们没有。

如何避免?这些错误阻止用户创建新对话框,使用程序......

(在其他地方,用户使用了 wifi - 然后我们得到了相同的副作用。)

也许你有任何想法如何预防,避免这个问题。

UPX(与防病毒软件)?将exe-s复制到本地?

该客户的系统管理员是“我们的敌人”,因为他们说:“一切正常”。问题的根源无法确定...

感谢您的每一个想法:dd

4

2 回答 2

6

假设您的分析是正确的,并且问题在于可执行文件位于连接不稳定的网络驱动器上,那么就有了解决方案。您需要在可执行文件中添加 PE 标志,强制 Windows 在运行之前将文件从网络复制到本地计算机。

确保您的 .dpr 文件的 uses 子句包括Windows单位。然后添加这一行:

{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}

begin在您的 .dpr 文件中。我们添加了Windows单位,以便识别这两个常数。

于 2012-12-07T16:30:26.257 回答
0

例如,另一种可能性是使用 upx 工具打包 exe。

http://upx.sourceforge.net/

它将在运行之前扩展内存中的整个文件。

它将节省带宽。

于 2012-12-07T20:29:03.580 回答