編集:私の許しを許してください、私はこれまでラッパー.dllを実装したことがありません!:S
私は最近リリースされたKinectセンサーハック(つまり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のものすべてが含まれるわけではないことを期待していましたが、これは正しくありませんか?