It's not quite that straightforward with p/Invoke though -- it can be *very* convenient to define multiple overloads for the same C function with different signatures. Consider the GetPrinter function and the different versions of the PRINTER_INFO_x structure it can deal with: <http://msdn.microsoft.com/en-us/library/dd144911(VS.85).aspx> http://msdn.microsoft.com/en-us/library/dd144911(VS.85).aspx On Mon, Mar 23, 2009 at 4:21 PM, Jeff Hardy <[email protected]> wrote:
> I've been thinking about whether that functionality is really needed. > C doesn't support function overloading, so presumably there would only > ever by one signature per name? I'll have to see if CPython supports > that. > > - Jeff > > 2009/3/23 Curt Hagenlocher <[email protected]>: > > I seem to recall that in Seo's original code, MakeOrAdd was used to build > up > > the overloads over time as user code asked for additional method > signatures > > for the same method name. This could presumably be simulated by > replacing > > the method group in Python with a new method group that contained all the > > original infos plus the new one. > > > > On Mon, Mar 23, 2009 at 11:11 AM, Dino Viehland <[email protected]> > wrote: > >> > >> Do you actually need MakeOrAdd or would the factory that takes multiple > >> method infos be good enough? > >> > >> I'm just reluctant to open up the ability to modify any built-in > function. > >> > >> > -----Original Message----- > >> > From: [email protected] [mailto:users- > >> > [email protected]] On Behalf Of Jeff Hardy > >> > Sent: Saturday, March 21, 2009 1:17 PM > >> > To: Discussion of IronPython > >> > Subject: Re: [IronPython] Creating Dynamic Assemblies from IronPython > >> > 2.6 > >> > > >> > Hi Dino, > >> > I'm updating Seo's old ctypes.py to work with 2.6, so unfortuantely > >> > it's a little more complex than just one method. I could probably use > >> > a delegate that takes an object[], but BuiltinFunction contains that > >> > code already, and it is a lot more optimized than I could manage. Plus > >> > it's less code for me to write :). > >> > > >> > - Jeff > >> > > >> > On Sat, Mar 21, 2009 at 11:45 AM, Dino Viehland <[email protected]> > >> > wrote: > >> > > If you only have 1 method and don't need overload resolution I'd > >> > suggest making a delegate using System.Delegate.CreateDelegate. > >> > Otherwise this could be made public. > >> > > > >> > _______________________________________________ > >> > Users mailing list > >> > [email protected] > >> > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > >> _______________________________________________ > >> Users mailing list > >> [email protected] > >> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > > > > > _______________________________________________ > > Users mailing list > > [email protected] > > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > > > > _______________________________________________ > Users mailing list > [email protected] > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >
_______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
