i am using SharpDx.dll & SharpDx.XAudio2.dll in Unity3D.
The dll works fine in the editor. However, when I run the program after building Windows, an error occurs in the initialization part. The error log is as follows and a part of the source code is attached.
Doesn't that dll work on windows base? If not, is there any workaround?
using UnityEngine;
using SharpDX.Multimedia;
using SharpDX.XAudio2;
using System.IO;
using System;
XAudio2 xaudio2;
MasteringVoice masteringVoice;
void Start()
{
xaudio2 = new XAudio2(); << Error
masteringVoice = new MasteringVoice(xaudio2);
}
Error
NotSupportedException: To marshal a managed method, please add an attribute named 'MonoPInvokeCallback' to the method definition. The method we're attempting to marshal is: SharpDX.XAudio2.EngineShadow+EngineVtbl::OnProcessingPassStartImpl
at System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate (System.Delegate d) [0x00000] in <00000000000000000000000000000000>:0
at SharpDX.CppObjectVtbl.AddMethod (System.Delegate method) [0x00000] in <00000000000000000000000000000000>:0
at SharpDX.XAudio2.EngineShadow+EngineVtbl..ctor () [0x00000] in <00000000000000000000000000000000>:0
at SharpDX.XAudio2.EngineShadow..cctor () [0x00000] in <00000000000000000000000000000000>:0
at SharpDX.XAudio2.XAudio2..ctor (SharpDX.XAudio2.XAudio2Flags flags, SharpDX.XAudio2.ProcessorSpecifier processorSpecifier, SharpDX.XAudio2.XAudio2Version requestedVersion) [0x00000] in <00000000000000000000000000000000>:0
at SharpDX.XAudio2.XAudio2..ctor (SharpDX.XAudio2.XAudio2Version requestedVersion) [0x00000] in <00000000000000000000000000000000>:0
at SharpDX.XAudio2.XAudio2..ctor () [0x00000] in <00000000000000000000000000000000>:0
at DirectWav.Start () [0x00002] in C:\Develop\WJMAX\Assets\Scripts\Common\DirectWav.cs:23
Rethrow as TypeInitializationException: The type initializer for 'SharpDX.XAudio2.EngineShadow' threw an exception.
at SharpDX.XAudio2.XAudio2..ctor (SharpDX.XAudio2.XAudio2Flags flags, SharpDX.XAudio2.ProcessorSpecifier processorSpecifier, SharpDX.XAudio2.XAudio2Version requestedVersion) [0x00000] in <00000000000000000000000000000000>:0
at SharpDX.XAudio2.XAudio2..ctor (SharpDX.XAudio2.XAudio2Version requestedVersion) [0x00000] in <00000000000000000000000000000000>:0
at SharpDX.XAudio2.XAudio2..ctor () [0x00000] in <00000000000000000000000000000000>:0
at DirectWav.Start () [0x00002] in C:\Develop\WJMAX\Assets\Scripts\Common\DirectWav.cs:23
sharpdx
↧