zauważ że elementy ... namespace zazwyczaj nie posiadaja "#"
To są "przestrzenie nazw"
using namespace GUI; to jest poprawne.
Polecam artykuł http://edu.pjwstk.edu.pl/wyklady/pro/scb/PRG2CPP_files/node147.html
używając define GUT tak naprawdę korzystasz z biblioteki funkcji ... czyli samych deklaracji w tym momencie program wie, o jakie funkcja z jakiej biblioteki chodzi więc nie potrzebuje wskazania dodatkowego