C++でKinect v2関連プロジェクトを使用していますが、機能外でデプスフレーム(BYTE *)を使用できません。文字列の文字を読み取る際にエラーが発生しました - アクセス違反エラーC++
これは最初の数分間はうまく動くと思います。
文字列
とアクセス違反エラーと時間のある時点でkinect20.dllのためにロードされていない記号の文字を読んでエラー:
は、それから私は、のようなエラーを得ました。
ここでは値を呼び出す方法を示します。
BYTE* bodyIndex = new BYTE[512*424]; // initialization
HRESULT frameGet(){
//Initialization method if success
hr = pDepthFrame->AccessUnderlyingBuffer(&m_nDepthBufferSize, &bodyIndex); //Kinect dll method
prints(depth[300]); // Prints the value every time
return hr;
}
HRESULT getDepthFrame(){
if frameGet is success
prints(bodyIndex[300]); // throws error reading character of string
return hr;
}
誰でもbodyIndexデータにいつでもアクセスできます。
完全なコードを投稿したときに応答が得られなかったので、ロジックがどのように必要なのですか?
妥当であると仮定すると、時にはkinectdllによって奥行きデータが浄化され、反映されます。
私はmemcpyでまだエラーがありました。
ありがとうございます。
上記のコードで 'depth'はグローバル変数として宣言されていますか? – CinCout
'pDepthFrame-> AccessUnderlyingBuffer(&m_nDepthBufferSize、&depth);' w.r.t [1] 'depth 'によるバッファポインタが' m_nDepthBufferSize'のサイズと関係があるかどうかを評価する必要があるかもしれません。また、 'm_nDepthBufferSize'で指定された制限値でバッファにアクセスしています。 [2]関数 'AccessUnderlyingBuffer'はバッファポインタを' depth'で埋めるか、 'm_nDepthBufferSize'にサイズを格納することでバッファにコピーされたデータのサイズを返します。 [3]深さは 'AccessUnderlyingBuffer'によって内部的に割り当てられますか?その場合、' m_nDepthBufferSize'で割り当てサイズを受け取ります。 – sameerkn
@CinCoutはい深度はグローバルとして定義されます。 –