1. 程式人生 > >解決KinectSDK 包含標頭檔案"NuiApi.h"報錯問題

解決KinectSDK 包含標頭檔案"NuiApi.h"報錯問題

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的作用即可。