delphi – 有没有办法获得与PEFlags在运行时设置编译器标志相同
几年前,当从一些特定局域网上的共享文件夹运行一个大型(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,这样它总是从本地机器执行,但我担心我需要面对的场景,即使从技术上讲它很简单. 谢谢. 解决方法
不,那里没有.这些PE标志由系统加载器处理,并且在执行可执行文件中的任何代码之前确定结果.
这正是这些PE旗帜所具有的效果.如果可执行文件驻留在网络卷或可移动卷上,则首先将其复制到交换文件(本地文件),然后执行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |