// main.cpp
#include "main.hpp"
#include "createform.hpp"
// main.hpp
#ifndef MAIN_H
#define MAIN_H
(...)
#endif
// createform.hpp
#ifndef CREATE_H
#define CREATE_H
(...)
HWND hEdit;
(...)
#endif
// createform.cpp
#include "createform.hpp"
Możecie mi wytłumaczyć dlaczego przy takim podziale dubluje mi definicję zmiennej hEdit (wyskakuje błąd "multiple definition of hEdit")? Czyż nie po to daję #ifndef CREATE_H, żeby uniknąć dublowania tej definicji zmiennej hEdit w plikach createform.cpp i main.cpp?
Wszystko śmiga jak tą przykładową zmienną hEdit przeniosę do "main.hpp", a w "createform.hpp" umieszczę wpis "extern HWND hEdit". Problem w tym, ze takich zmiennych w stylu hEdit mam ponad sto, razem tworzą bardzo rozbudowany formularz i nie wydaje mi się, żeby korzystnym rozwiązaniem dla czytelności kodu było umieszczenie ich w "main.hpp", a potem ponowne wypisanie tych definicji w pliku "createform.hpp" , tylko że tym razem z poprzedzeniem "extern". Przez to mam dodatkowo całą masę nowych linii w swoim kodzie.
Chyba, że tak właśnie ma to wyglądać?
Z góry dzięki za pomoc.