Witam! Ostatnio padło mi na głowę, żeby napisać jakikolwiek program składający się z 2 dll'ek gdzie jedna to GUI a druga funkcjonalność - padło na prymitywny komunikator. Zadanie jak się okazało mnie przerosło ^.- oto kod:

http://pastebin.com/fxE4yMma gui
http://pastebin.com/MNS2fAXr siec
http://pastebin.com/RnkBMZHH main.cpp

Implementacji nie podaje bo to nie jest istotne. Cały czas mam chęć zrobić klasę GUI i sieci jako singletone, wtedy miałbym do nich dostęp w każdym miejscu ale czy to nie jest "brzydkie"? Nie mam pomysłu jak połączyć te dwie klasy z 2 różnych dll'ek do kupy, żeby ze sobą współpracowały(jak widać w main.cpp). Pododawałem callbacki, ale co mi po tym jak w main ustawie je dla klasy CGUI, a gdy CGUI wywoluje callback Connect() nie mam tam możliwości żeby podpiąć AddMessage do klasy sieci... Najprawdopodobniej cały projekt jest do bani, prosiłbym o jakieś wskazówki... sam komunikator jest nieważny, chciałbym zobaczyć jak powinien wyglądać poprawny podział klas na interfejsy w tym przypadku. Dzięki z góry i pozdro!

edit:
To może chociaż ktoś mi powie czy tworzenie globalnego obiektu, albo globalnego wskaźnika na obiekt jest czymś czego mam się wystrzegać?