Подтвердить что ты не робот

Рекомендуемые параметры заголовка PE для приложения Delphi 7, работающего на сервере терминалов?

При исследовании ошибок внешнего исключения C0000006, о которых сообщают некоторые пользователи, работающие с приложением Delphi 7 на терминальном сервере Windows 2008, я уже нашел несколько вопросов по этому и связанным с этим вопросам. Мне интересно, есть ли у кого-то окончательный список этих параметров, который бы соответствовал стандартным приложениям базы данных Delphi 7, работающим на сервере терминалов.

Вопросы, которые я рассмотрел, включают:

Пока я не читаю эти данные, я думаю, что добавить в файл .dpr следующее:

const
  IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = $8000;
  // Following are already defined in D7 Windows.pas
  IMAGE_FILE_RELOCS_STRIPPED               = $0001;
  IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP       = $0400;
  IMAGE_FILE_NET_RUN_FROM_SWAP             = $0800;

{$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE}

{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED 
  or IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 
  or IMAGE_FILE_NET_RUN_FROM_SWAP}

Изменить: Удаление раздела переноса необязательно, поэтому здесь пересмотренная версия:

const
  IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = $8000;
  // Following are already defined in D7 Windows.pas
  IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP       = $0400;
  IMAGE_FILE_NET_RUN_FROM_SWAP             = $0800;

{$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE}

{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 
  or IMAGE_FILE_NET_RUN_FROM_SWAP}
4b9b3361

Ответ 1

{$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_TERMINAL_ SERVER_AWARE}
{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED   
  or IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP   
  or IMAGE_FILE_NET_RUN_FROM_SWAP}

подходит для ваших нужд. Я подозреваю, что IMAGE_FILE_NET_RUN_FROM_SWAP - это то, что вам нужно иметь дело с C0000006. Эта ошибка обычно возникает при запуске с сетевого диска, и диск не может удовлетворить страницу в запросе исполняемого файла.

Другие флаги PE отлично подходят для вас в любом случае. Я бы сделал это так, как вы.

Что касается права IMAGE_DLLCHARACTERISTICS_TERMINAL_ SERVER_AWARE, то только вы знаете. Применяется ли приложение для приложений, которые будут считаться не устаревшим приложением для служб терминалов, а задокументировано в MSDN? Если это так, используйте IMAGE_DLLCHARACTERISTICS_TERMINAL_ SERVER_AWARE.