IronLanguages / main

Work for this repo has moved to https://github.com/IronLanguages/ironpython2
1.16k stars 349 forks source link

The Xbox 360 XDK Xdevkit.dll will not return an IXboxConsole object. #795

Closed ironpythonbot closed 7 years ago

ironpythonbot commented 9 years ago

In an attempt to gain an IXboxConsole object to access a devkit I instead get an IXboxDebugTarget interface. Both F# and C# return the correct interface.
An example of the steps to test this follow. This requires the Xbox 360 XDK to be installed on the PC as well as access to an Xbox 360 development kit.
I've attempted this on a PC running Windows Vista, XP and 7 using IronPython version 2.6.1

import clr
clr.AddReferenceToFileAndPath('C:/Program Files/Microsoft Xbox 360 SDK/bin/win32/xdevkit')
from XDevkit import *
man = XboxManagerClass()
con = man.OpenConsole('xguyc')
dir(con) #This will show you the members of an IXboxDebugTarget instance instead of the expected IXboxConsole
confromdebug = con.Console
dir(confromdebug) #This will show you the same as the dir(con) call above.

Work Item Details

Original CodePlex Issue: Issue 26151 Status: Active Reason Closed: Unassigned Assigned to: Unassigned Reported on: Feb 8, 2010 at 4:57 PM Reported by: gdcarver Updated on: Feb 22, 2013 at 2:10 AM Updated by: jdhardy

ironpythonbot commented 9 years ago

On 2010-03-16 06:16:18 UTC, billchi commented:

Does IXboxDebugTarget implement IXboxConsole? What is the result of con.GetType().GetInterfaces()? Is there something that's not working, or can you provide info on the failure mode?

ironpythonbot commented 9 years ago

On 2010-03-16 07:21:15 UTC, gcarver commented:

The result of con.GetType().GetInterfaces() is ArrayType.

IXboxDebugTarget does not implemnt IXboxConsole. There is an XboxConsole class that implements a number of interfaces. The 2 most important are IBoxConsole and IXboxDebugTarget. I'm sorry but there seems to be very little documentation on the XboxManagerClass and the XboxConsole class other than that they are part of a .NET framework interoperability layer to the "Debug Monitor" com objects.

The only thing not working is that I cannot get an IXboxConsole interface through the XboxManagerClass. I get the IXboxDebugTarget interface instead which works fine as the type of object it professes to be.

To get my application to work I re-implemented in F# which works as well as C#.