Как изменить INTPTR на представление памяти [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 Как изменить INTPTR на представление памяти [закрыто]

Сообщение Anonymous »

Я попытался получить изображение с камеры. Но файл .dll return intptr в c#. Я позвонил в функцию в Python и Get []. < /P>
in .dll: < /p>
DVPCamera.dvpGetFrame(uint, DVPCameraType.dvpFrame, System.IntPtr, uint)
< /code>
Позвоните в Python: < /p>
CamData = Cam.dvpGetFrame(CameraIndex, RefFrame, RefIntPtr,40000)
print(CamData)
< /code>
camdata is: () < /p>
python не может сделать массив с помощью < /p>
Я попробовал: < /p>
net_hndl = GCHandle.Alloc(CamData[2], GCHandleType.Pinned)
net_ptr = net_hndl.AddrOfPinnedObject().ToInt64()
bufType = ctypes.c_ubyte * (frame.iHeight * frame.iWidth * shape)
cbuf = bufType.from_address(net_ptr)
mat = np.frombuffer(cbuf, bits)# dtype=cbuf._type_)
mat = mat.reshape(frame.iHeight, frame.iWidth, shape)
< /code>
Ядро будет умереть.
Как я могу получить картинку? < /p>

Подробнее здесь: https://stackoverflow.com/questions/796 ... emory-view
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»