That "dir" error is a known problem with beta 3 -- and as you might imagine, sky-high in priority on our list of things to fix for beta 4.
Viewlets appear to be user controls; you probably need to host one in a Form. On Fri, Jun 27, 2008 at 6:45 AM, Michael Foord <[EMAIL PROTECTED]> wrote: > Curt Hagenlocher wrote: > >> A bit of quality time with Reflector shows that there's a _viewletsProxy >> object which hasn't been initialized. You probably need to call >> VSLabFSICore.Viewlets.Init() first. It's static, and in the vslabfsicore >> module. >> > > Thanks Curt - your reflector-fu is greater than mine. I should spend some > quality time with it. > > Your advice gets me to the next step, I can make a GraphControl flash > momentarily into view (on creation), but attempting to show it causes > another explosion: > > C:\compile\VSLab>C:\compile\IronPython-2.0B3\ipy.exe -X:ExceptionDetail > viewlet. > py > Operation unavailable (Exception from HRESULT: 0x800401E3 > (MK_E_UNAVAILABLE)) > at System.Runtime.InteropServices.Marshal.GetActiveObject(Guid& rclsid, > IntPt > r reserved, Object& ppunk) > at System.Runtime.InteropServices.Marshal.GetActiveObject(String progID) > at VSLabFSICore.Viewlet.Show() > at GraphViewlet.GraphControl.Show() > at _stub_$28##26(Closure , CallSite , CodeContext , Object ) > at _stub_MatchCaller(Object , CallSite , Object[] ) > at Microsoft.Scripting.Actions.CallSite`1.UpdateAndExecute(Object[] args) > at > Microsoft.Scripting.Actions.UpdateDelegates.Update2[T,T0,T1,TRet](CallSite > site, T0 arg0, T1 arg1) > at S$2.Initialize(CodeContext ) > at IronPython.Hosting.PythonCommandLine.RunFileWorker(String fileName) > at IronPython.Hosting.PythonCommandLine.RunFile(String fileName) > EnvironmentError: Operation unavailable (Exception from HRESULT: 0x800401E3 > (MK_ > E_UNAVAILABLE)) > > The code that produces this is: > > import clr > clr.AddReference('vslabfsicore') > clr.AddReference('vslabviewlets') > > from VSLabFSICore import Viewlets > from GraphViewlet import GraphControl > > Viewlets.Init() > g = GraphControl() > g.Show() > > If instead of 'g.Show()' I attempt 'dir(g)' I get a very odd error! > > C:\compile\VSLab>C:\compile\IronPython-2.0B3\ipy.exe -X:ExceptionDetail > viewlet. > py > 'this' type cannot be an interface itself. > at System.RuntimeTypeHandle.GetFirstSlotForInterface(IntPtr > interfaceHandle) > at System.RuntimeType.GetInterfaceMap(Type ifaceType) > at > Microsoft.Scripting.Generation.CompilerHelpers.TryGetCallableMethod(Method > Info method) > at > Microsoft.Scripting.Generation.CompilerHelpers.FilterNonVisibleMembers(Typ > e type, MemberInfo[] foundMembers) > at IronPython.Runtime.Types.TypeInfo.MemberBinder.GetMember(Type type, > String > name, BindingFlags flags) > at > IronPython.Runtime.Types.TypeInfo.StandardResolver.ResolveMember(MemberBin > der binder, DynamicAction action, Type type, String name) > at > IronPython.Runtime.Types.TypeInfo.MemberResolver.ResolveMembers(MemberBind > er binder, DynamicAction action, Type type) > at IronPython.Runtime.Types.TypeInfo.GetResolvedMembers(MemberBinder > memberBi > nder, DynamicAction action, Type type) > at IronPython.Runtime.Calls.PythonBinder.ResolveMemberNames(CodeContext > conte > xt, PythonType type, PythonType owner, Dictionary`2 memberNames) > at IronPython.Runtime.Types.PythonType.GetMemberNames(CodeContext context, > Ob > ject self) > at IronPython.Runtime.Operations.PythonOps.GetAttrNames(CodeContext > context, > Object o) > at IronPython.Runtime.Builtin.dir(CodeContext context, Object o) > at _stub_$26##24(Closure , CallSite , CodeContext , Object , Object ) > at _stub_MatchCaller(Object , CallSite , Object[] ) > at Microsoft.Scripting.Actions.CallSite`1.UpdateAndExecute(Object[] args) > at > Microsoft.Scripting.Actions.UpdateDelegates.Update3[T,T0,T1,T2,TRet](CallS > ite site, T0 arg0, T1 arg1, T2 arg2) > at S$2.Initialize(CodeContext ) > at IronPython.Hosting.PythonCommandLine.RunFileWorker(String fileName) > at IronPython.Hosting.PythonCommandLine.RunFile(String fileName) > ValueError: 'this' type cannot be an interface itself. > > > Incidentally, even when installed with VS Pro I can't get VSLab to work > *anyway* (this is Vista 64bit FWIW), so the code may not be ready for prime > time. > > I may try firing up reflector myself and see where it takes me. > > Michael Foord > > >> On Thu, Jun 26, 2008 at 2:58 PM, Michael Foord <[EMAIL PROTECTED]<mailto: >> [EMAIL PROTECTED]>> wrote: >> >> The viewlets that come with VSLab look *really* cool. They're >> based on F# so I decided to see if they could be used from IronPython. >> >> http://www.codeplex.com/vslab >> >> The dependencies are pretty hefty. You need F# installed *and* >> Managed DirectX (June 2008 SDK ~450mb seems to fulfil the dependency). >> >> To get at the viewlet assemblies you need Visual Studio Pro >> installed as well, but they can be extracted from the VSLabs msi >> installer without VS Pro. >> >> Ok, so with all the dependencies installed I attempt to use them - >> and *boom*. Anyone here got any ideas? >> >> IronPython 2.0 Beta (2.0.0.3000) on .NET 2.0.50727.1434 >> Copyright (c) Microsoft Corporation. All rights reserved. >> >>> import clr >> >>> clr.AddReference('vslabfsicore') >> >>> clr.AddReference('vslabviewlets') >> >>> clr.AddReference('vslabcore') >> >>> from GraphViewlet import GraphControl >> >>> g = GraphControl() >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> File "vslabviewlets", line unknown, in .ctor >> File "vslabfsicore", line unknown, in .ctor >> File "System.Windows.Forms", line unknown, in get_Controls >> File "System.Windows.Forms", line unknown, in get_Properties >> SystemError: Object reference not set to an instance of an object. >> >> >> Interesting that the explosion is inside winforms. Referencing >> that assembly first makes knows difference. >> >> Michael Foord >> >> >> -- http://www.ironpythoninaction.com/ >> http://www.voidspace.org.uk/ >> http://www.trypython.org/ >> http://www.ironpython.info/ >> http://www.theotherdelia.co.uk/ >> http://www.resolverhacks.net/ >> >> _______________________________________________ >> Users mailing list >> Users@lists.ironpython.com <mailto:Users@lists.ironpython.com> >> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >> >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Users mailing list >> Users@lists.ironpython.com >> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >> >> > > > -- > http://www.ironpythoninaction.com/ > http://www.voidspace.org.uk/ > http://www.trypython.org/ > http://www.ironpython.info/ > http://www.theotherdelia.co.uk/ > http://www.resolverhacks.net/ > > _______________________________________________ > Users mailing list > Users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >
_______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com