2011-02-10 16 views
3

私は、ユーザ指定のバッファ(特定のメモリアドレス)にイメージデータを定期的に書き込むことによって動作するビデオキャプチャカードを持っています。これはC++で私にとってはうまくいきます。なぜならSurface.lpSurfaceポインタアドレスを与えるだけでキャプチャカードのドライバはフレームごとに新しい画像データを自動的に埋め込み、そこでflip()して新しい画像を取得できるからです。素晴らしいクリーンビデオフィード。Cで直接DirectDrawサーフェスメモリにアクセスする

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

答えて

1

MDXについて言及しているのは、私が演奏して以来ずっと時間がかかっていたので、これは全くナンセンスかもしれませんが、Surfaceには、バイトにアクセスできる「ロック」メソッドが必要ですしかし、それは基本的なポインタに直接アクセスするのに慣れていたより少し遅いかもしれません...

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

申し訳ありませんが、この返信は役に立たないナンセンスです。私が言ったように、DirectShow/MDXで演奏してからしばらくしています。たぶんこれは、いくつかのGoogleの飼料を提供するか、あなたの側にいくつかのアイデアを発する。

関連する問題