0

Managed DirectX dll および .Net Framework 4.0 で DirectSound を使用すると問題が発生します。

このプログラムは .Net Framework 2.0 で正常に動作しますが、他のコンポーネントを使用するには 4.0 にアップグレードする必要があります。

プログラムがサウンド モジュールを呼び出すと、以下に示す例外でクラッシュします。

誰もこれを見て、それを修正する方法を知っていますか?

==============================================
System.IO.FileNotFoundException was unhandled
Message=Could not load file or assembly 'Microsoft.DirectX, Version=2.0.0.0, Culture=neutral,    PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
Source=Microsoft.DirectX.DirectSound
FileName=Microsoft.DirectX, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
FusionLog=""
[stack dump snipped]
InnerException: System.IO.FileNotFoundException
Message=Could not load file or assembly 'Microsoft.DirectX, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
FileName=Microsoft.DirectX, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

FusionLog==== Pre-bind state information ===
LOG: User = *****************
LOG: DisplayName = Microsoft.DirectX, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
(Fully-specified)
LOG: Appbase = file:///C:/Users/*********/Documents/Visual Studio 2010/Projects/************/bin/x86/Debug/
LOG: Initial PrivatePath = NULL

Calling assembly : Microsoft.DirectX.DirectSound, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\***********\Documents\Visual Studio 2010\Projects\****************\bin\x86\Debug\***************.exe.config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Redirect found in application configuration file: 1.0.2902.0 redirected to 2.0.0.0.
LOG: Post-policy reference: Microsoft.DirectX, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
LOG: The same bind was seen before, and was failed with hr = 0x80070002.
InnerException: 
4

3 に答える 3

0

これは遅い返信であることは知っていますが、これを機能させるには、2 つの DirectX DLL を見つけMicrosoft.DirectXMicrosoft.DirectX.DirectInput、プロジェクトへの参照として追加する必要がありました。

次に、メソッドの呼び出しに DirectX 名前空間を使用します。

于 2013-02-15T16:51:20.847 に答える
0
 <!--  Uncomment this section when switching from Net2.0 to Net 4.0 
  It is intended to fix problems loading DirectX dlls  - per Microsoft-->

 <!-- 

  <startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0"/>

   </startup>
 -->
于 2013-08-08T20:14:40.590 に答える