Trying to constructu a System.IntPtr object
Hi, I am stumped by this one - googled, even read the Readme!! I want to call System.Forms.Control.FromHandle() to get a control from a handle. But I am getting that handle as Python int instance but FromHandle requires a System.IntPtr. I would have guess that there would be automatic conversion from Python int to .Net IntPtr.
CLR.System.IntPtr(23) Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: 'int' value cannot be converted to System.IntPtr
So I try converting it to Int32 first... (same for Int64)
CLR.System.IntPtr(CLR.System.Int32(23)) Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: value cannot be converted to System.IntPtr
So now I am stuck - any help appreciated, Thanks Mark
I am stumped by this one - googled, even read the Readme!!
I want to call System.Forms.Control.FromHandle() to get a control from a handle. But I am getting that handle as Python int instance but FromHandle requires a System.IntPtr.
I would have guess that there would be automatic conversion from Python int to .Net IntPtr.
CLR.System.IntPtr(23) Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: 'int' value cannot be converted to System.IntPtr
So I try converting it to Int32 first... (same for Int64) ...
ooo - you've found a hole in the type conversion logic, methinks. In the interim, you can use the following sneaky hack: from CLR.System import IntPtr, Int32 i = Int32(32) p = IntPtr.op_Explicit(i) # now p is an intptr... Brian Lloyd brian@zope.com V.P. Engineering 540.361.1716 Zope Corporation http://www.zope.com
participants (2)
-
Brian Lloyd -
Mark McMahon