解決KinectSDK 包含標頭檔案"NuiApi.h"報錯問題
阿新 • • 發佈:2019-02-05
C:\Program Files\Microsoft SDKs\Kinect\v1.7\inc\NuiSensor.h(46): error C2146: 語法錯誤: 缺少“;”(在識別符號“INuiAudioBeam”的前面)
1>C:\Program Files\Microsoft SDKs\Kinect\v1.7\inc\NuiSensor.h(46): error C4430: 缺少型別說明符 - 假定為 int。注意: C++ 不支援預設 int
1>C:\Program Files\Microsoft SDKs\Kinect\v1.7\inc\NuiSensor.h(46): error C2146: 語法錯誤: 缺少“;”(在識別符號“INuiAudioBeam”的前面)
1>C:\Program Files\Microsoft SDKs\Kinect\v1.7\inc\NuiSensor.h(46): error C4430: 缺少型別說明符 - 假定為 int。注意: C++ 不支援預設 int
1>C:\Program Files\Microsoft SDKs\Kinect\v1.7\inc\NuiSensor.h(46): error C4430: 缺少型別說明符 - 假定為 int。注意: C++ 不支援預設 int
1>C:\Program Files\Microsoft SDKs\Kinect\v1.7\inc\NuiSensor.h(46): error C2086: “int INuiAudioBeam”: 重定義
1> C:\Program Files\Microsoft SDKs\Kinect\v1.7\inc\NuiSensor.h(46) : 參見“INuiAudioBeam”的宣告
1>C:\Program Files\Microsoft SDKs\Kinect\v1.7\inc\NuiSensor.h(52): error C2146: 語法錯誤: 缺少“;”(在識別符號“INuiFrameTexture”的前面)
1>C:\Program Files\Microsoft SDKs\Kinect\v1.7\inc\NuiSensor.h(52): warning C4091: “”: 沒有宣告變數時忽略“interface”的左側
1>C:\Program Files\Microsoft SDKs\Kinect\v1.7\inc\NuiSensor.h(58): error
解決方案: 包含標頭檔案#include <Shlobj.h>即可 這是從網上找到的資料,之所以加入Shlobj的原因在於: Shlobj是位於WindowsCE時代下,涉及到影象API函式處理和Shell的呼叫。Kinect之所以需要這個檔案,可能是SDK僅僅作為一個外部裝置,需要呼叫到Win平臺下的原始資源來進行通訊。具體的資料可查Shlobj,以及Shell的作用即可。
解決方案: 包含標頭檔案#include <Shlobj.h>即可 這是從網上找到的資料,之所以加入Shlobj的原因在於: Shlobj是位於WindowsCE時代下,涉及到影象API函式處理和Shell的呼叫。Kinect之所以需要這個檔案,可能是SDK僅僅作為一個外部裝置,需要呼叫到Win平臺下的原始資源來進行通訊。具體的資料可查Shlobj,以及Shell的作用即可。