P / Invoke on x64 null reference exception
当我尝试在.NET代码中编译x64时,我得到空引用异常,该代码利用平台调用服务来调用dll中的非托管代码。我错过了一些明显的东西吗?
e.g。致电
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
答案 0 :(得分:2)
您是否可能使用一堆int
(固定大小的32位),实际上需要IntPtr
(大小因平台而异)?
答案 1 :(得分:0)
没有64位版本的非托管dll。 32位版本被调用,当然事情并没有真正对齐?