Interfaces DLL

Signaler
Messages postés
106
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
11 février 2008
-
Messages postés
106
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
11 février 2008
-
Bonjour

J'ai remarqué que les fichiers .h (headers) servant d'interface a une dll définie commencent toujours avec un code du genre :
#pragma pack(push,4)
ou
#pragma pack(push)
#pragma pack(1)
et finissent par :
#pragma pack(pop)

Quelqu'un peut me dire a quoi ca sert ?

Merci d'avance

4 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
Pour modifier l'alignement des données, surtout pour les structures.
A moins de savoir exactement pourquoi modifier l'alignement, il est préférable de laisser le compilo les aligner correctement sinon tu risques une importante perte de performance.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
106
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
11 février 2008

Ok bien compris

Mais quelles sont les raisons qui peuvent expliquer pourquoi on modifie cet alignement ?
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
Pour définir une structure avec celle d'un certain driver ou fournir une struct compatible avec l'alignement d'un langage interprété ou que sais-je encore.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
106
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
11 février 2008

Ok merci beaucoup