2010-02-24 32 views
0

的P/Invoke在x64空引用例外的P/Invoke在x64空引用例外

我得到空引用例外,当我尝试编译在.NET代码64,使得使用平台调用服务来调用非托管代码在dll中。我在这里错过了很明显的东西吗

例如来电

Private Declare Function waveOutOpen Lib "winmm.dll" (ByRef lphWaveOut As Int32, ByVal uDeviceID As Int32, ByRef lpFormat As WAVEFORMATEX, ByVal dwCallback As WaveDelegate, ByVal dwInstance As Int32, ByVal dwFlags As Int32) As Int32 

在失败:

完整的代码在这里: waveout sometimes memory issue

+1

您需要提供更多关于您尝试拨打的P/Invoke代码的详细信息。你的P/I签名是什么样的? – 2010-02-24 17:37:20

回答

0

没有非托管的dll的64位版本。 32位版本被调用,当然事情并不真正对齐?

2

你可能需要使用一堆int(固定大小的32位),实际上IntPtr(大小取决于平台)将需要?

+0

也许这可能是它 – PeanutPower 2010-02-24 17:56:58