Delphi-运行时出现无效的流格式错误



Delphi 6教授

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

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

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

以前我们有C000006例外。正如我所知,这意味着文件分页(加载)因任何网络问题(超时等)而失败。

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

如果我很清楚的话,这两个错误都是由"分页问题"引起的,但C06发生在代码中,流错误发生在Exe的数据区。但也许我知道错了。。。

不管怎样,这个问题很奇怪。有时我们得到了,有时我们没有。

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

(在另一个地方,用户使用了wifi,然后我们得到了同样的副作用。)

也许你知道如何预防、避免这个问题。

UPX(与杀毒软件)?将前任复制到本地?

这个客户的系统管理员是"我们的敌人",因为他们说:"一切都好"。问题的根源无法确定。。。

感谢您的每一个想法:dd

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

请确保.dpr文件的uses子句包含Windows单元。然后加上这行:

{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}

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

另一种可能是用upx工具打包exe。

http://upx.sourceforge.net/

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

它将节省带宽。

相关内容

  • 没有找到相关文章

最新更新