лет назад я наткнулся на C0000006 external exception
при запуске большого (более 100 МБ) exe-файла из общей папки в некоторых конкретных локальных сетях.Поэтому я начал использовать флаги компилятора, описанные в этом вопросе .
После нескольких лет успешного "выполнения exe" на сотнях клиентов в сотнях сетей у меня начались проблемы с флагами PE (каким-то образом exe зависал при запуске на тех же компьютерах и исключая одну причину за раз, я эмпирически обнаружил, что комментирование этих флагов работает).
Каким-то образом я нашел обходной путь, чтобы дважды построить свой exe (и позволить клиентувыберите, какой из них следует развернуть), первый с этими:
{$SetPEFlags IMAGE_FILE_NET_RUN_FROM_SWAP}
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP}
, а второй комментируя их.
Эти затраты на строительство раздражают, и я хотел бы их избежать.Я не думаю, что есть способ, но я спрашиваю совета специалиста: есть ли способ «активировать эти флаги во время выполнения»?например, передача параметра командной строки?
Еще один обходной путь, о котором я подумал, - это локально скопировать исполняемый файл при запуске исполняемого файла, чтобы он всегда выполнялся с локальной машины, но я боюсь сценариев, с которыми мне приходится сталкиваться, даже если технически это просто.
Спасибо.