J'ai un assembly .NET 32 bits qui PInvoque dans la couche C. Je veux porter cet assembly à 64 bits. J'ai lu de nombreux documents relatifs au portage en 64 bits, ce qui semble indiquer que nous devons prendre soin de l'alignement si nous voulons utiliser des structures.alignement de la structure au code de port à 64 bits
J'avais une question générale liée à l'alignement de la structure et je voulais d'abord clarifier cela afin que je ne manque rien. Supposons que j'ai un point d'entrée C qui accepte un pointeur struct et remplit les valeurs à l'intérieur. Ce code C n'a aucune directive d'emballage et toutes les structures .NET sont alignées sur pack = 8. Donc, si je passe une structure avec des ints adjacents, j'ai pensé qu'il pourrait être un problème d'interprétation des données peuplées dans la couche .NET, car le C par défaut utiliserait pack = 4 et nous interprétons la structure comme pack = 8 dans .NET couche, alors pensé qu'il pourrait causer un problème. Mais cela ne semble pas être le cas. Les données semblent être bien interprétées.
Quelqu'un peut-il expliquer ce comportement?
Merci, Niranjan