РЕДАКТИРОВАТЬ: простите меня за noobish-ness, я никогда не реализовывал оболочки .dll раньше!: S
Я немного повозился с некоторыми из недавно выпущенных хаков Kinect Sensor (а именно OpenKinect и OpenNI ) и сейчас пытаюсь обернутьфункциональность в * .dll для использования в различных «тестовых» программах, которые я надеюсь написать.
До сих пор я создал проект * .dll и получил много функций библиотеки,однако повсюду я получаю предупреждения компилятора C4251.
В настройках проекта у меня есть файл OpenNI.lib
, статически связанный, так что заголовок моей библиотеки выглядит так:
#ifdef LIBKINECT_EXPORTS
#define LIBKINECT_API __declspec(dllexport)
#else
#define LIBKINECT_API __declspec(dllimport)
#endif
// This class is exported from the LibKinect.dll
class LIBKINECT_API CLibKinect
{
public:
CLibKinect(void);
~CLibKinect(void);
bool Init(void);
protected:
private:
xn::Context m_xContext;
xn::DepthGenerator m_xDepthGen;
};
И мой stdafx.h
файл содержит:
#pragma once
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <XnOpenNI.h>
#include <XnCodecIDs.h>
#include <XnCppWrapper.h>
Теперь я попытался создать консольное приложение для Windows, чтобы протестировать библиотеку, и я получаю множество error C2653: 'xn' : is not a class or namespace name
ошибок.Я надеялся, что в приложении мне нужно будет только включить и связать с оберткой * .dll не все вещи OpenNI, чтобы скрыть базовую реализацию, это неправильно?