Here is a standard devc++ header file for a dll.
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
DLLIMPORT void HelloWorld (void);
#endif /* _DLL_H_ */
What does BUILDING_DLL mean and if I change the name of the header file to loop.h should i change _DLL_H_?
BUILDING_DLL would (one can presume) be set if the IDE thinks that it's currently building a DLL, as opposed to when it is USING an external DLL.
It is considered good style to have some sort of relationship between the include guards and the filename [or rather, you don't want "loop.h" to prevent you from including a valid "dll.h" later on in life].