Zrozumiałem!
-Każdy plik źródłowy jest osobną jednostką kompilacji,
dlatego na początku, każdego pliku źródłowego
trzeba załączyć pliki nagłówkowe.
-Załączając plik nagłówkowy
załączamy "pakiet" symboli.
(symboli w rozumieniu asemblera)
-Kompilatora to nie obchodzi czy linker znajdzie definicje funkcji
i czy będzie mógł zastąpić symbole odpowiednimi wywołaniami.
(brak definicji funkcji = (błąd linkera) "undefind reference to")
-Tworząc plik nagłówkowy, również trzeba
załączyć odpowiednie pliki nagłówkowe,
żeby kompilator mógł stworzyć symbole.
(Przez przyjmowane / zwracane typy inne niż standardowe:
klasy, struktury, typedefy, czy definicje preprocesora)
(brak odpowiednich nagłówków = (błąd kompilatora)
"does not name a type" lub "was not declared in this scope")
___________________________________________________________________
Dostęp do zmiennej globalnej z innej jednostki kompilacji:
int foo[ 64 ];
// foo.cpp
extern int foo[];
// bar.cpp
Zmienna "foo" od teraz jest widzialna
za instrukcją extern w pliku "bar.cpp"!
// ("foo.o" i "bar.o" muszą być razem linkowane)
___________________________________________________________________
Dzięki wam mój "main.cpp" tak wygląda. :D
#include "Globals.hpp"
#include "WinMain.hpp"
EDIT:
W sumie mogę go skasować...
Nawet nie zauważyłem kiedy
stał się bezwartościowy. :D
___________________________________________________________________
Nie wiem jakie możliwe bzdury tu wypisałem,
ale jest
w-pół-do czwartej. Dobranoc! : -_/
piąta nad ranem! Dzień dobry! Do widzenia?! emmmm...