3

ユーザー指定のバッファ (特定のメモリ アドレス) を定期的にイメージ データで満たすビデオ キャプチャ カードがあります。Surface.lpSurface ポインター アドレスを指定するだけで、キャプチャ カード ドライバーがフレームごとに新しい画像データを自動的に入力し、flip() して新しい画像を取得できるため、これは C++ で機能します。素敵なきれいなビデオ フィード。

問題は、私が C# に移植していて、同じことができるようにする必要があることですが、DirectDraw.Surface のマネージ バージョンには、サーフェス メモリ領域のメモリ アドレスを取得するためのメソッド/プロパティがありません。必要なのはこのアドレスだけです。C# を使用して取得する方法はありませんか?

4

1 に答える 1

1

MDXについて言及している場合、私がMDXを試してからしばらく経っているので、これはまったく意味がないかもしれませんが、バイトへのアクセスを提供する「ロック」メソッドがSurfaceにあるはずですが、基になるポインタに直接アクセスするのに慣れているよりも少し遅くなります...

プロジェクト/クラスを「安全ではない」とマークしてから、ネイティブDXルーチンにアクセスして、pinvokeを介してポインターを取得できる場合がありますか?そうすれば、コードの安全でない部分がデータに直接アクセスできるようになります。右?

この返信が役に立たない場合は申し訳ありません。私が言ったように、DirectShow/MDXで遊んでからしばらく経ちました。多分これはいくつかのグーグル飼料を提供するか、あなたの側でいくつかのアイデアを刺激するでしょう。

于 2011-02-15T19:05:23.350 に答える