Я не пишу код с помощью lib linking и dll большую часть времени, недавно, когда я это сделал, я понял, что может быть что-то очень не так с тем, как я делаю # include.
Является ли следующий правильный / желательный способ сделать #include?
предположим, у меня есть 3 проекта (1) dll_A (2) dll_B (3) exe_1. dll_A зависит от dll_B, exe_1 зависит от одного dll_A.
мой #include выглядит следующим образом:
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
Отсюда видно, что exe_1.h косвенно включает dll_b.h, что для меня немного плохо, потому что я хочу, чтобы exe_1.h не зависел от dll_b.h ... но я не уверен, что это возможно потому что как exe_1 может ссылаться на dll_b?
РЕДАКТИРОВАТЬ: Пример зависимости
// 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?