1

DirectXコンポーネントを含むWPFアプリケーションがあります。このコンポーネントはリモートデスクトップでは機能しません。破損したイメージを表示するだけです。リモートデスクトップを使用していない場合、アプリケーションは正常に動作します。

問題をデバッグしようとして、2010年2月のDirectXSDKをインストールしました。これで、SDKとリモートデスクトップを備えたコンピューターでプログラムを別のコンピューターから実行すると、コンポーネントは正常に機能します。ただし、その逆は機能しません。DirectXSDKのないコンピューターで実行しているときに、リモートデスクトップ経由でアプリケーションを使用しようとすると、イメージが破損するという元の問題が発生します。

SDKマシンでアプリケーションを実行する場合とSDK以外のマシンで実行する場合で、ロードされたDLLを(Process Explorerを使用して)すでに比較しました。どちらも同じDLLバージョンをロードしています。

他に何がこの動作を引き起こしている可能性がありますか?


編集:アプリケーションが実際に別のDLLロードしていることを発見しました。DLLリストを適切にキャプチャしなかったため、気づきませんでした。SDKを搭載したマシンでアプリケーションを実行すると、DirectX参照ラスタライザーであるD3DREF9.dllが読み込まれます。これは私に問題が何であるかについての手がかりを与えてくれますが、私はまだ解決策を考えています。

4

3 に答える 3

2

私が保守していたアプリケーションは、DirectX ハードウェア デバイスを作成しようとしていたことがわかりました。それが失敗した場合は、参照デバイスを作成しようとし、最後に両方が失敗した場合は、ソフトウェア デバイスを作成します。

デフォルトでは、システムで使用できるリファレンスまたはソフトウェア レンダラーはありません。リファレンス レンダラーを取得するには、DirectX SDK をインストールする必要があります。これは、デプロイではなく、デバッグにのみ使用することになっています。ソフトウェア レンダラーの場合、システムは .NET 3.5 SP1 のみを必要とし、ソフトウェアはそれをロードする必要があります。

基本的に、問題はソフトウェアがレンダリング デバイスを適切に作成できなかったことだと思います。初期化コードをクリーンアップしたところ、リモート デスクトップで問題なくレンダリングされるようになりました。

于 2010-04-30T21:16:54.540 に答える
0

RemDeskのパフォーマンス/エクスペリエンス表示オプションを減らしてみてください。まず、ビットマップキャッシュをオフにしたり、色深度を減らしたりします。

于 2010-04-01T19:35:35.783 に答える
-1

DirectX ハードウェア アクセラレーションは、ネイティブ リモート デスクトップ機能の設計により無効になっています: http://support.microsoft.com/kb/260565

于 2014-03-19T17:06:52.470 に答える