Je ne code pas avec lib liant et dll pour la plupart du temps, récemment quand je fais, je me suis rendu compte qu'il pourrait y avoir quelque chose de très mal avec la façon dont je fais #include.C# MSVS dll en-têtes #include problèmes
Est-ce que la méthode correcte/souhaitable est #include?
Supposons que j'ai 3 projets (1) dll_A (2) dll_B (3) exe_1. dll_A dépend de dll_B, exe_1 dépend d'un dll_A.
la façon dont je fais mon #include est comme suit:
dll_B.h ----> no dependency
dll_B.cpp -----> #include dll_B.h
dll_A.h -------> #include dll_B.h
dll_A.cpp -------> #include dll_A.h
exe_1.h --------> #include dll_A.h
De là, on peut voir que exe_1.h comprend indirectement dll_b.h qui est un peu mauvais pour moi, parce que je veux exe_1. h pour être indépendant de dll_b.h ... encore, je ne suis pas sûr que ce soit possible car sinon comment exe_1 peut-il lier à dll_b?
EDIT: la dépendance à l'exemple
// dll_B.h
struct dataB{};
// dll_A.h
#include dll_B.h
dataB* A_function_ptr(); // (any difference for implementing PIMPL?)
dataB& A_function_ref();
dataB A_function_copy();
// exe_1.cpp
#include dll_A.h
// ... it seems naturally #include-sion of dll_B.h is necessary? Can it be avoided?
Merci Alf, quand je dis lien je veux aussi dire être conscient des déclarations dans dll_B qui est utilisé dans dll_A. supposons que dll_B a une structure B_DATA qui est le type de retour pour A_function dans dll_A, alors est-ce aussi un mauvais design? – Jake