Рекомендуемые параметры заголовка 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}
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.

licensed under cc by-sa 3.0 with attribution.