Bonjours! Pour alléger un projet, je sépare mes fonctions dans des DLLs. Seulement, certaines fonctions sont du type:
où x est une variable de l’exécutable et où bar est utilisé dans l'exécutable et dans d'autres DLLs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int foo(int &x) { /*...*/ bar(x) /*...*/ }
Plusieurs solutions s'offrent alors (liste non-exhaustive):
- Déclarer la fonction void bar(int &y) dans chaques DLLs et dans l'exe.
Problème: Ce n'est pas du tout optimisé pour un gain de mémoire.- Déclarer la fonction void bar(int &y) dans une DLL et l'importer dans toutes les autre.
Problème: Cela fait beaucoup de dépendances et complique la relecture.- Déclarer la fonction void bar(int &y) dans l'exe mais l'appeler à partir de la réception d'un message spécifique envoyé à un HWND comme suggéré ici.
Problème: Pour passer plusieurs paramètres il faut soit utiliser une structure soit un tuple (à choisir je préfère le tuple, ça allège, mais c'est en C++11).- Déclarer la fonction void bar(int &y) dans l'exe et l'utiliser dans les DLLs.
Problème: Je ne sais absolument pas si c'est possible.
Si vous avez déjà été confrontés à cette situation, ou si vous avez une idée, pouvez-vous me faire part de votre méthode?
Merci,
Simac
Partager