1

私は C# を使用して開発しています。カメラを使用してアプリケーションで画像をキャプチャしたいと考えています。
私の知る限り、2 つの選択肢があります。

[DllImport("avicap32.dll", EntryPoint="capCreateCaptureWindowA")]  

そして、この関数を使用して画像をクリップボードにキャプチャすると、アプリケーションは画像を取得できます。

選択肢 2: directX を使用して画像をキャプチャすると、codeproject でサンプル プロジェクトが見つかりました。
私の質問は次のとおりです。どのソリューションを選択すればよいですか?
選択する前に考慮すべきことは何ですか?
正しい方向を教えてください、ありがとう!

4

1 に答える 1

-1

DirectXを使用すると、ハードウェアをより細かく制御できると思います。CPU使用率は、通常、アイドル状態でないタスクに費やされたCPU時間の単純なパーセンテージとして表されます。しかし、これは少し単純化されています。最新のオペレーティングシステムでは、CPUは実際には2つの非常に異なるモードで時間を費やしています。

カーネルモードカーネルモードでは、実行中のコードは、基盤となるハードウェアに完全かつ無制限にアクセスできます。任意のCPU命令を実行し、任意のメモリアドレスを参照できます。カーネルモードは通常、オペレーティングシステムの最低レベルで最も信頼できる機能のために予約されています。カーネルモードでのクラッシュは壊滅的です。PC全体を停止します。

ユーザーモードユーザーモードでは、実行中のコードはハードウェアや参照メモリに直接アクセスすることはできません。ユーザーモードで実行されているコードは、ハードウェアまたはメモリにアクセスするためにシステムAPIに委任する必要があります。この種の分離によって提供される保護により、ユーザーモードでのクラッシュは常に回復可能です。コンピューターで実行されているコードのほとんどは、ユーザーモードで実行されます。

于 2010-07-31T02:34:42.190 に答える