【发布时间】:2018-10-03 07:27:14
【问题描述】:
几年前,我在某些特定 LAN 上的共享文件夹中运行大型 (100+MB) exe 时偶然发现了 C0000006 external exception。所以我开始使用this question 中描述的编译器标志。
在数百个网络中的数百个客户上成功“执行 exe”多年后,我开始遇到 PE 标志问题(不知何故,exe 在同一台电脑上启动时崩溃,并且一次排除一个原因,我凭经验发现评论这些标志是有效的)。
不知何故,我发现的解决方法是构建我的 exe 两次(并让客户选择部署哪个),第一次使用这些:
{$SetPEFlags IMAGE_FILE_NET_RUN_FROM_SWAP}
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP}
第二个评论这些。
这种建筑开销很烦人,我想避免它。我不认为有办法,但我请教专家建议:有没有办法“在运行时激活这些标志?”例如传递命令行参数?
我想到的另一种解决方法是在 exe 启动时将 exe 复制到本地,以便始终从本地计算机执行它,但我担心我需要面对的场景,即使从技术上来说它很简单。
谢谢。
【问题讨论】:
标签: delphi delphi-10-seattle compiler-flags