2009-05-20 9 views
0

Une fonction exportable a une structure comme l'un des paramètres. Cette DLL est utilisée par de nombreux exeL'ajout de membres de données (à la fin) d'une structure exportable peut-il causer des problèmes?

L'un des fichiers EXE doit envoyer des données supplémentaires. Nous avons donc ajouté un membre à la fin de la structure et distribué la DLL.

Maintenant, ma question est, si nous mettons la nouvelle DLL dans d'autres EXE qui ne sont pas au courant du membre supplémentaire, cela va-t-il poser des problèmes?

La DLL ne doit pas essayer d'accéder au membre de données de structure, qui n'est pas présent dans EXE. Comment puis-je gérer cette situation?

Remarque: L'ajout d'une nouvelle API n'est pas autorisé dans la DLL.

Répondre

1

Si d'autres fonctions acceptent la valeur struct, c.-à-d. Pas en prenant un pointeur dessus, alors oui, il y aura très probablement des problèmes. Votre code d'appel placera un plus grand struct sur la pile que la fonction de réception ne le supprimera, ce qui provoquera une croissance nette de la pile et un mauvais fonctionnement général.

Questions connexes