You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Pythonnet version: 2.4.0 (in both python versions)
Python version:
code working in Python 2.7.17 (v2.7.17:c2f86d86e6, Oct 19 2019, 21:01:17) [MSC v.1500 64 bit (AMD64)] on win32
code not working in Python 3.7.7 (tags/v3.7.7:d7c567b08f, Mar 10 2020, 10:41:24) [MSC v.1900 64 bit (AMD64)] on win32
Operating System: Windows 10 Professional 64-bit
Details
Trying to copy a .NET array to a numpy array using Marshal as in the example on the mailing list:
import clr
from System import Array, Double, IntPtr, Random
from System.Runtime.InteropServices import Marshal
import numpy as np
r = Random()
src = Array.CreateInstance(Double, 10000000)
for i in xrange(len(src)): src[i] = r.NextDouble()
from System.Runtime.InteropServices import Marshal
dest = np.empty(len(src))
dest_ptr = IntPtr.__overloads__[int](dest.__array_interface__['data'][0])
Marshal.Copy(src, 0, dest_ptr, len(src))
was working fine in python 2 but in 3 results in
Traceback (most recent call last):
File "test.py", line 12, in <module>
dest_ptr = IntPtr.__overloads__[int](dest.__array_interface__['data'][0])
TypeError: no constructor matches given arguments
TODO
How can the changed python 3 int be used in this constructor?