/**
 * \file BGDNetConfig.h
 * \brief Конфигурационный файл проекта
 * 
 * Содержит различную конфигурационную информацию, управляющую режимами
 * компиляции проекта. Подключается в начале каждого заголовочного файла.
 */

#ifndef __BGDNetConfig_h__
#define __BGDNetConfig_h__

/**
 * \def BGDNET_API
 * \brief Макрос, определяющий, экспортируется или импортируется интерфейс
 * библиотеки.
 * 
 * Если данный заголовочный файл используется для компиляции DLL, макрос
 * раскрывается в __declspec(dllexport), если же заголовочный файл используется
 * для подключения библиотеки, раскрывается в __declspec(dllimport).
 */

/**
 * \def BGDNET_TEMPLATE(T)
 * \brief Макрос, использующийся для экспорта/импорта шаблонов.
 */

/**
 * \def BGDNET_USE_MFC
 * \brief Если определен данный макрос, библиотека использует MFC
 */

#ifdef _MSC_VER
# ifdef BGDNETDLL_EXPORTS
#   define BGDNET_API __declspec(dllexport)
#   define BGDNET_TEMPLATE(T) template class __declspec(dllexport) T
# else
#   define BGDNET_API __declspec(dllimport)
#   define BGDNET_TEMPLATE(T) extern template class __declspec(dllimport) T
# endif
#else
# define BGDNET_API
# define BGDNET_TEMPLATE(T) 
#endif

#if defined(_MSC_VER) && defined (_AFXDLL)
# define BGDNET_USE_MFC
#endif

#endif //__BGDNetConfig_h__
