Program w kilku plikach

0

<font size="4">Program w kilku plikach [!!!] </span>

Zrobiłem sobie ostatnio całkiem fajny interfejs graficzny na dosa. Chcę go wykorzystać w moich programikach. Utworzyłem plik nagłówkowy. Są w nim klasy obiektów graficznych i myszy.

Moje pytanko jest następujące:

Czy można umieścić to w jakimś pliku, tak aby kilka programów mogło korzystać z tych klas, bez potrzeby ciągłego dołączania pliku nagłówkowego? Chodzi o to, aby program składał się z kilku plików, np. pliku programu i pliku z interfejsem.

Proszę pomóżcie mi. [glowa]

0

Zrób static libary ze wszystkimi modułami - masz trzy możliwości - albo nowy projekt, albo z linii poleceń
link -lib mysz.obj grafika.obj keyboard.obj /out:dosDX.lib
Wynikowy plik dosDX.lib przesuwasz do głównego folderu /lib, a definicje klas do głównego /include i dopisujesz w nim #pragma comment(link,"dosDX.lib").
Trzecia możliwość to dodanie modułów do takiej biblioteki której zawsze używasz, np. libc.lib, ale nagłówki klas nadal musisz #include'.

0

Wielkie dzięki [!!!]

Pogrzebie sobie przy tym.

Pozdrowienia dla wszystkich :-)

0

Wystąpił mały problem

W moim kompilatorku (Borland C++ 3.1) jest tlink. Użyłem go tak jak pisałeś. Ale pojawiają się błędy. Mój plik nagłówkowy - dosgui.cpp, kożysta z kilku innych plików, np graphics.h. Błędy wygląddają tak: (piszę po polsku, bo po angielsku nie spamiętałem).

Nie zdefiniowano symbolu _RECTANGLE w module dosgui.cpp
Nie zdefiniowano symbolu _LINE w module dosgui.cpp
...

Jest ich sporo. Nie wiem co zrobić. Może przybliży mi ktoś, działanie tlink, i o co chodzi w bibliotekach *.LIB.

0

Tak się składa że mam bcc5 :)
zrób test - napisz 2 moduły:

//module1.c
int dodaj(int a,int b)
{
	return a+b;
}
//module2.c
int odejmij(int a,int b)
{
	return a-b;
}

Skompiluj je:

bcc32 -c module1.c
bcc32 -c module2.c

Powstaną dwa pliki *.obj które możesz wpakować do jednego pliku funkcje.lib:
tlib funkcje.lib +module1.obj +module2.obj

Podobnie robisz ze swoimi klasami, normalnie je kompilujesz, ewentualnie dodajesz parametry dla bcc żeby wiedział gdzie jest /include... a powstałe pliki .obj pakujesz do jednego lib'a.

Nie musisz tworzyć pliku lib, możesz linkować pliki obj z innymi projektam, ale takie działanie zawsze kopiuje kod z plików obj do np. exe, obojętnie czy używasz ich funkcji czy nie.

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