Это позволить для будущего экспорта. Ogre может только строго быть статически связаны библиотеки на данный момент, но если авторы когда-либо решить, поддерживать динамически связанные библиотеки (он же совместно используемых библиотек на некоторых платформах), им нужно будет написать код:
class
#ifdef EXPORTING
__declspec(dllexport)
#else
__declspec(dllimport)
#endif
Sample_Character [...]
. .. и это только для MSVC. Обычно им приходилось прилагать усилия, чтобы сделать это с помощью Sample_Character и всех других классов, которые они предоставляют через свою библиотеку. Создание отдельного макроса, которое будет определено позже, намного проще, поскольку это нужно сделать только в одном месте.