Makro wewnątrz biblioteki, które jest zależne od plików źródłowych exe

0

Hej.
Mam bibliotekę library.lib i plik wykonywalny app.exe.

W library.lib stworzyłem sobie plik header.h, który w zależności od tego, czy app.exe linkuje bibliotekę ext.lib, czy nie zachowuje się różnie.
header.h:

#pragma once
#include <iostream>

inline void test()
{
#if __has_include(<extHeader.h>)
std::cout << "included" << std::endl;
#else
std::cout << "not included" << std::endl;
#endif
}

Problem jest taki, że

#if __has_include(<extHeader.h>)

raz zwraca true, a raz false...
Jak mógłbym to zrobić inaczej? Myślałem nad przeniesieniem definicji do solucji app.exe tzn.deklaracja dalej pozostałaby w header.h ale plik z definicją już nie.
Problem jest jednak taki, że musiałbym dla wielu exeków dołączać ten plik...

5

Pachnie jak XY problem.

Co NAPRAWDĘ chcesz w ten sposób załatwić, jaki problem uleczyć.

PS. co bibliotekę obchodzi, że aplikacja jej NIE LINKUJE??? Nie to nie ....

PPS: @Focusx zerknąłem w twoje wątki, i większość z nich dzielnie próbuje walczyć z problemami, których nie mają inni.
Masz jakąś "zadrę" co do projektowania, ustalania linii separacji, zależności, i praktyka z OOP zbyt mocno trąca starymi "szkolnymi" wzorcami.
Z tymi bibliotekami - co jest zupełnym domysłem, intuicją - intuicja mi mówi, że masz problem z definicją "co od czego zależy", i mniemam że wszystko od wszystkiego.

Zatrzymaj się, zwolnij, poczytaj, może książki Boba Martina ... sam nie wiem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1