Closed
Description
Environment
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?
Metadata
Metadata
Assignees
Labels
No labels