Заголовок объявляет импорт DLL, что означает, что определение класса происходит из DLL.Поскольку вы предоставляете определение, это дает ошибку связи.Вместо этого вы захотите использовать __declspec(dllexport)
при определении DLL.
Поскольку вы захотите использовать тот же заголовочный файл в приложении, которое будет использовать DLL, часто используется следующая идиома:
#ifdef MYAPI_EXPORTS
# define MYAPI __declspec(dllexport)
#else
# define MYAPI __declspec(dllimport)
#endif
И затем используйте:
class MYAPI KinectRecognizer
#define MYAPI_EXPORTS
перед включением заголовка в DLL, но не определяйте его в приложении, используя заголовок для импорта DLL.