Wpis z mikrobloga

Hej programiści c++,
Tworzę i utrzymuję aplikację wykorzystującą pewne API. W obecnej wersji tegoż zaszły istotne zmiany, które będę musiał uwzględnić w swoim kodzie, ale chcę utrzymać kompatybilność również z poprzednimi wersjami. Co ważne, zmiany dotyczą głównie plików źródłowych znajdujących się w szablonie projektu do tego API. Czy jest jakiś sposób żeby podłączyć nowe pliki (z nowej wersji API) obok starych i zrobić kompilację warunkową?

Jedyne rozwiązanie, jakie mi przyszło do głowy, to wrzucić zawartość nowych plików do starych i tam objąć cały blok ifdefem, ale może jest jakiś bardziej elegancki sposób?
#programowanie #cpp
  • 10
@zetisdead: nie o takich szablonach mowa ( ͡° ͜ʖ ͡°)

Po prostu jest przygotowany szablon PROJEKTU *.sln z gotowymi ustawieniami opcji kompilacji (razem z jakimiś customowymi narzędziami do pakowania zasobów i innymi duperelami) i paroma plikami źródłowymi. Moje zadanie to uzupełnić projekt o potrzebne rzeczy i nacisnąć "kompiluj". Ponieważ sprawa ciągnie się już od kilku lat, co roku jest nowa wersja API, a muszę obsługiwać również stare,
@Malkof: aplikacja to wtyczka DLL, którą podłącza się do ichniego programu i musi być skompilowana z odpowiednimi ustawieniami i z użyciem dostarczonego kompilatora zasobów, żeby wszystko poprawnie działało. W dostarczonym gotowym projekcie jest już wszystko poustawiane, my tylko uzupełniamy potrzebny kod i budujemy dll-kę. Próbowałem kiedyś samemu zrobić własny szablon projektu pod swoje potrzeby, ale dałem sobie spokój.

W każdym razie, teraz widzę, że Visual Studio ma opcję odłączania plików źródłowych
MostlyRenegade - @Malkof: aplikacja to wtyczka DLL, którą podłącza się do ichniego pr...

źródło: comment_1662402144zPxupLbmysLUwXZ4AWYNvV.jpg

Pobierz
@MostlyRenegade: Aż dostaję drgawek jak czytam o windowsowych korporacyjnych projektach w C++. Miałem identyczną sytuację w projekcie sterowników do jednej z topowych scad. Producent co wersję dostarczał "bibliotekę" w postaci zmienionego kodu źródłowego i solucji. Dostarczał również szablon generujący projekt pod daną wersję. Żeby przenieść własny kod z wersji do wersji idąc ich tokiem rozumowania trzeba byłoby kopiować własny kod i dostosowywać do zmienionego interfejsu. Zero stricte wydzielonego API.

Początkowo, przy