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/
它将在运行前展开内存中的整个文件。
它将节省带宽。