Bonjours! Pour alléger un projet, je sépare mes fonctions dans des DLLs. Seulement, certaines fonctions sont du type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
int foo(int &x)
{
    /*...*/
    bar(x)
    /*...*/
}
où x est une variable de l’exécutable et où bar est utilisé dans l'exécutable et dans d'autres DLLs.
Plusieurs solutions s'offrent alors (liste non-exhaustive):
  1. 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.
  2. 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.
  3. 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).
  4. 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