Indicateurs d'en-tête PE (Portable Executable) (Object Pascal)

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Liste des directives de compilation Object Pascal - Index


Type

Indicateur

Syntaxe

{$SetPEFlags <expression entière>} {$SetPEOptFlags <expression entière>}

Portée

Locale



Microsoft s'appuie sur les indicateurs d'en-tête PE (portable executable) pour permettre à une application d'indiquer sa compatibilité avec les services SE ou de demander des services SE avancés. Ces directives offrent de puissantes options pour le réglage de vos applications sur les systèmes NT hauts de gamme.

Avertissement :  La définition ou le masquage des valeurs de bits spécifiées par ces directives n'est pas une erreur. Si vous définissez la mauvaise combinaison de bits, vous pouvez endommager votre fichier exécutable.

Ces directives vous permettent de définir des bits d'indicateurs respectivement dans la zone de caractéristiques de l'en-tête de fichier PE ainsi que dans la zone optionnelle de caractéristiques DLL. La majorité des indicateurs de caractéristiques, définis en utilisant $SetPEFlags, sont spécifiques des fichiers objet et des bibliothèques. Les indicateurs de caractéristiques DLL, définis en utilisant $SetPEOptFlags, sont des indicateurs qui décrivent à quel moment appeler le point d'entrée d'une DLL.

L'<expression entière> de ces directives peut inclure des identificateurs de constantes Object Pascal, comme les constantes IMAGE_FILE_xxxx définies dans Windows.pas. Les constantes multiples doivent être combinées avec l'opérateur OR.

Le tableau suivant liste certains indicateurs d'en-tête que vous pouvez définir, avec SetPEFlags ou SetPEOptFlags.

Nom Description

IMAGE_FILE_RELOCS_STRIPPED

Les informations de relogement sont retirées du fichier.

IMAGE_FILE_EXECUTABLE_IMAGE

Le fichier est exécutable (c'est-à-dire sans références externes non résolues).

IMAGE_FILE_LINE_NUMS_STRIPPED

Les numéros de lignes sont retirés du fichier.

IMAGE_FILE_LOCAL_SYMS_STRIPPED

Les symboles locaux sont retirés du fichier.

IMAGE_FILE_AGGRESIVE_WS_TRIM

Troncature agressive de la plage de travail.

IMAGE_FILE_LARGE_ADDRESS_AWARE

L'application peut gérer des adresses supérieures à 2 Go.

IMAGE_FILE_BYTES_REVERSED_LO

Les octets du mot machine sont inversés.

IMAGE_FILE_32BIT_MACHINE

Machine à mots de 32 bits.

IMAGE_FILE_DEBUG_STRIPPED

Les informations de débogage sont retirées du fichier .DBG.

IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP

Si l'image réside sur un support amovible, copier et exécuter depuis le fichier d'échange.

IMAGE_FILE_NET_RUN_FROM_SWAP

Si l'image réside sur le Net, copier et exécuter depuis le fichier d'échange.

IMAGE_FILE_SYSTEM

Fichier système.

IMAGE_FILE_DLL

Le fichier est une DLL.

IMAGE_FILE_UP_SYSTEM_ONLY

Le fichier doit seulement être exécuté sur une machine UP.

IMAGE_FILE_BYTES_REVERSED_HI

Les octets du mot machine sont inversés.

IMAGE_FILE_MACHINE_UNKNOWN

Machine inconnue.

IMAGE_FILE_MACHINE_I386

Intel 386.

IMAGE_FILE_MACHINE_R3000

MIPS Little-Endian, 0x160 big-endian.

IMAGE_FILE_MACHINE_R4000

MIPS Little-Endian.

IMAGE_FILE_MACHINE_R10000

MIPS Little-Endian.

IMAGE_FILE_MACHINE_ALPHA

Alpha_AXP.

IMAGE_FILE_MACHINE_POWERPC

IBM PowerPC Little-Endian.



Vous pouvez inclure ces directives plusieurs fois dans le code source. Les valeurs des indicateurs spécifiées par plusieurs directives sont strictement cumulatives : si la première occurrence de la directive définit $03 et la seconde occurrence $10, la valeur écrite dans le fichier exécutable au moment de la liaison sera $13 (plus tous les bits normalement définis par le lieur dans les champs indicateur PE).

Ces directives affectent le fichier de destination uniquement si elles sont incluses dans le code source avant la liaison. Cela signifie que vous devez placer ces directives dans un fichier .dpr ou .dpk, et non dans une unité ordinaire. Comme la directive de description exe, le placement de ces directives dans le code source de l'unité n'est pas une erreur. Toutefois, ces directives placées dans le source de l'unité n'affecteront pas le fichier de sortie (exe ou dll) à moins que le source de l'unité ne soit recompilé lors de la liaison du fichier de sortie.

Cinq options relatives à l'en-tête PE sont disponibles sur la page Projet > Options > Compilateur Object Pascal > Liaison de l'EDI.

Voir aussi

  • Options du projet > Compilateur Object Pascal > Page Liaison