[Python.NET] Trying to constructu a System.IntPtr object

Brian Lloyd brian at zope.com
Fri Jul 29 21:38:05 CEST 2005

> 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 at zope.com
V.P. Engineering   540.361.1716              
Zope Corporation   http://www.zope.com 

More information about the PythonDotNet mailing list