1

このコードは、選択したカテゴリ (この場合は Web カメラ) で接続されているデバイスを表す FilterInfo オブジェクトのコレクションを提供するはずです。

FilterInfoCollection collection = new FilterInfoCollection(FilterCategory.VideoInputDevice);

これをコンソール アプリケーションでテストしたところ、うまく機能しましたが、コードを WPF に取り込むと、1 つのオブジェクトしか返されません。

xamlコードビハインドとxamlコントロールにバインドされたビューモデルで直接使用しようとしましたが、同じ結果になりました。

これはとてもイライラします よろしくお願いします=)

編集:

原因を突き止めたところ、WPF プロジェクトの「プラットフォーム ターゲット」が「任意の CPU」に設定されており、コンソール アプリが x86 に設定されています。コンソールアプリの「プラットフォームターゲット」を「任意のCPU」に設定すると、まったく同じことが行われます。

残念ながら、x86 に設定すると WPF プロジェクトは実行されません。

4

3 に答える 3

0

ここで推測しますが、FilterInfoCollectionは、ドライバーがx64かx86かによって違いを返しているようです。

x86モードでコンパイルするように強制すると、すべてのx86ドライバーを取得できるようになります。

インストールされているOSに応じて、CPUモードはx64またはx86のいずれかで実行されます。64ビットOSの場合、x64モードで実行されます。これは、x64ベースのドライバーのみが返されることを意味します。システムにインストールされているドライバーは1つだけのようです。

x86のプラットフォームターゲットでWPFアプリケーションを実行する際の問題については、表示されているエラーなどの詳細を提供する必要があります。ここで問題は発生しないはずです。x64ラップトップでプラットフォームターゲットをx86に設定すると、一部のWPFタイプが正しく読み込まれなくなります。

于 2011-08-02T16:08:07.287 に答える
0

同じソリューションで新しい WPF プロジェクトを作成しようとしましたが、動作するようになりました。時々私は情熱を持ってコードを嫌います... =P

でも助けてくれてありがとう!このようなことが再び起こった場合、私は目を開けたままにします。

于 2011-08-04T14:31:25.233 に答える
0

Target Framework を 4.0 から 3.5 に変更しようとしましたか? 同様の問題があり、ターゲットフレームワークを変更したときは良かったからです。

于 2011-08-04T04:06:20.390 に答える