加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 有没有办法获得与PEFlags在运行时设置编译器标志相同

发布时间:2020-12-15 09:32:59 所属栏目:大数据 来源:网络整理
导读:几年前,当从一些特定局域网上的共享文件夹运行一个大型(100 MB)exe时,我偶然发现了C0000006外部异常.所以我开始使用 this question中描述的编译器标志. 在数百个网络中的数百个客户多年成功“执行exe”后,我开始遇到PE标志的问题(不知何故,exe在同一台PC上启
几年前,当从一些特定局域网上的共享文件夹运行一个大型(100 MB)exe时,我偶然发现了C0000006外部异常.所以我开始使用 this question中描述的编译器标志.

在数百个网络中的数百个客户多年成功“执行exe”后,我开始遇到PE标志的问题(不知何故,exe在同一台PC上启动时崩溃,一次排除一个原因,我根据经验发现评论这些标志工作).

不知怎的,我找到的解决方法是两次构建我的exe(并让客户选择部署哪一个),第一个用这些:

{$SetPEFlags IMAGE_FILE_NET_RUN_FROM_SWAP}
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP}

第二个评论那些.

这个建筑开销很烦人,我想避免它.我不认为有办法,但我要求专家建议:有没有办法“在运行时激活那些标志?”例如,传递命令行参数?

我想到的另一个解决方法是在exe开始时本地复制exe,这样它总是从本地机器执行,但我担心我需要面对的场景,即使从技术上讲它很简单.

谢谢.

解决方法

Is there a way to activate these flags at runtime,for example by passing a command line parameter?

不,那里没有.这些PE标志由系统加载器处理,并且在执行可执行文件中的任何代码之前确定结果.

Another workaround I thought of is to copy locally the exe as the exe starts,so that it is always executed from the local machine.

这正是这些PE旗帜所具有的效果.如果可执行文件驻留在网络卷或可移动卷上,则首先将其复制到交换文件(本地文件),然后执行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读