DotNet-Connect cannot load an assembly

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

DotNet-Connect cannot load an assembly

Dimitri Gheysels
Hello

I'm experimenting with the dotnet-connect package in order to be able to communicate with some activeX component developed in .NET 4.0.

When dotnet-connect is reading the Global Assembly Cache, the assembly I like to use cannot be used because of the following error:

Could not load file or assembly 'c:\Windows\assembly\GAC_64\ActiveX_3DPlayBrowser\v4.0_5.0.13.13__13aaee2f91025a4b\ActiveX_3DPlayBrowser.dll' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
   at System.Reflection.AssemblyName.nGetFileInformation(String s)

   at System.Reflection.AssemblyName.GetAssemblyName(String assemblyFile)

   at Heeg.ReflectionProxy.Static_System_Reflection_AssemblyName_GetAssemblyName(ReflectionProxy* , return_type* vwReturnValue, Char* assemblyFile)

I know that this assembly (3rd party) is developped in .NET framework 4.0.  It seems that dotnet-connect uses an earlier version of .NET to load assemblies.

Is there any way to let dotnet-connect use .NET framework 4.0 ?  Or are there some updates available such that dotnet-connect can read/load assemblies developed in .NET framework 4.0 ?

Or, are there some other package available to use .NET assemblies in VisualWorks ?  I know there is SmallCom/X, but I've heard that this is not supported anymore in VW 7.9.

PS: I'm using VisualWorks 7.7 at the moment.  I also have tried this with VW 7.9, but I get the same error.

Thanks.
Reply | Threaded
Open this post in threaded view
|

Re: DotNet-Connect cannot load an assembly

Ralf Propach
Hallo Dimitri,

Am 28.06.2013 13:52, schrieb Dimitri Gheysels:

> Hello
>
> I'm experimenting with the dotnet-connect package in order to be able to
> communicate with some activeX component developed in .NET 4.0.
>
> When dotnet-connect is reading the Global Assembly Cache, the assembly I
> like to use cannot be used because of the following error:
>
>
>
> I know that this assembly (3rd party) is developped in .NET framework 4.0.
> It seems that dotnet-connect uses an earlier version of .NET to load
> assemblies.
>
> Is there any way to let dotnet-connect use .NET framework 4.0 ?  Or are
> there some updates available such that dotnet-connect can read/load
> assemblies developed in .NET framework 4.0 ?

Yes, there is. From the 7.9 version of the documentation of DotNETConnect:
By default, version 4.0 assemblies use a different runtime than
earlier versions. Objects of the new runtime cannot access
objects of the old one, and vice versa. This means that
DotNETConnect, whose registry lives in the version 2 runtime,
cannot access assemblies that run in the new runtime. To use
assemblies that require version 4 of the framework, you need to
set the useLegacyV2RuntimeActivationPolicy, by copying
DotNETConnect\sources-dll\vwnt.exe.config into the
VM directory (normally bin\win). See
http://msdn.microsoft.com/en-us/library/bbx34a2h.aspx for more info on
this setting.

>
> Or, are there some other package available to use .NET assemblies in
> VisualWorks ?  I know there is SmallCom/X, but I've heard that this is not
> supported anymore in VW 7.9.
>
> PS: I'm using VisualWorks 7.7 at the moment.  I also have tried this with VW
> 7.9, but I get the same error.
>

You should be able to use the file vwnt.exe.config from the 7.9
installation with VisualWorks 7.7 as well


Regards,
Ralf


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: DotNet-Connect cannot load an assembly

Dimitri Gheysels
In reply to this post by Dimitri Gheysels
Yes, that was the trick :-)
Thanks for that !

However, I get a new exception.  When I browse to my assembly in the .NET object browser in visualworks, I find my assembly and I see my version.  But when I click on the version, I get this error.

a DotNET.System.Exception(System.BadImageFormatException: Could not load file or assembly 'ActiveX_3DPlayBrowser, Version=5.0.13.13, Culture=neutral, PublicKeyToken=13aaee2f91025a4b' or one of its dependencies. An attempt was made to load a program with an incorrect format.

File name: 'ActiveX_3DPlayBrowser, Version=5.0.13.13, Culture=neutral, PublicKeyToken=13aaee2f91025a4b'

   at System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)

   at System.Reflection.Assembly.LoadFile(String path)

   at Heeg.MscorlibProxy.Static_System_Reflection_Assembly_LoadFile01(MscorlibProxy* , return_type* vwReturnValue, Char* path)



=== Pre-bind state information ===

LOG: User = OOPS\testmachine

LOG: Where-ref bind. Location = c:/Windows/Microsoft.NET/assembly/GAC_64/ActiveX_3DPlayBrowser/v4.0_5.0.13.13__13aaee2f91025a4b/ActiveX_3DPlayBrowser.dll

LOG: Appbase = file:///C:/VW/vw7.9.1/bin/win/

LOG: Initial PrivatePath = NULL

Calling assembly : (Unknown).

===

LOG: This bind starts in LoadFrom load context.

WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().

LOG: Using application configuration file: C:\VW\vw7.9.1\bin\win\vwnt.exe.Config

LOG: Using host configuration file: 

LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.

LOG: Attempting download of new URL file:///c:/Windows/Microsoft.NET/assembly/GAC_64/ActiveX_3DPlayBrowser/v4.0_5.0.13.13__13aaee2f91025a4b/ActiveX_3DPlayBrowser.dll.

ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated.

)

I think the reason for this error is that my assembly is 64 bit and dotnet-connect still uses the 32bit version of the libraries.  
I do have found and installed the 64bit libraries (from www.heeg.de) for the dotnet-connect package.  I copied the 'MscorlibProxy64.dll' and 'ReflectionProxy64.dll' to the '...\dotnet-connect\libraries' folder.  Afterwards, I have filed in the 'DotNET64.st' file.

My assembly is correctly installed in the 'Assembly\GAC_64' folder.

Is there something I have forgotten in order to use the 64bit DLL's ?

Thanks
Reply | Threaded
Open this post in threaded view
|

Re: DotNet-Connect cannot load an assembly

Ralf Propach
Hi Dimitri,

could you send me the stack for error you get?

Ralf

Am 28.06.2013 15:37, schrieb Dimitri Gheysels:

> Yes, that was the trick :-)
> Thanks for that !
>
> However, I get a new exception.  When I browse to my assembly in the .NET
> object browser in visualworks, I find my assembly and I see my version.  But
> when I click on the version, I get this error.
>
>
>
> I think the reason for this error is that my assembly is 64 bit and
> dotnet-connect still uses the 32bit version of the libraries.
> I do have found and installed the 64bit libraries (from www.heeg.de) for the
> dotnet-connect package.  I copied the 'MscorlibProxy64.dll' and
> 'ReflectionProxy64.dll' to the '...\dotnet-connect\libraries' folder.
> Afterwards, I have filed in the 'DotNET64.st' file.
>
> My assembly is correctly installed in the 'Assembly\GAC_64' folder.
>
> Is there something I have forgotten in order to use the 64bit DLL's ?
>
> Thanks
>
>
>
> --
> View this message in context: http://forum.world.st/DotNet-Connect-cannot-load-an-assembly-tp4696023p4696109.html
> Sent from the VisualWorks mailing list archive at Nabble.com.
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: DotNet-Connect cannot load an assembly

Dimitri Gheysels
This is the VW stack.  But I see that I'm using the 32 bit version of VW.  So this is possibly the reason why a 64 bit assembly cannot be loaded ?

System.BadImageFormatException: Could not load file or assembly 'ActiveX_3DPlayBrowser, Version=5.0.13.13, Culture=neutral, PublicKeyToken=13aaee2f91025a4b' or one of its dependencies. An attempt was made to load a program with an incorrect format.

File name: 'ActiveX_3DPlayBrowser, Version=5.0.13.13, Culture=neutral, PublicKeyToken=13aaee2f91025a4b'

   at System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)

   at System.Reflection.Assembly.LoadFile(String path)

   at Heeg.MscorlibProxy.Static_System_Reflection_Assembly_LoadFile01(MscorlibProxy* , return_type* vwReturnValue, Char* path)



=== Pre-bind state information ===

LOG: User = OOPS\testmachine

LOG: Where-ref bind. Location = c:/Windows/Microsoft.NET/assembly/GAC_64/ActiveX_3DPlayBrowser/v4.0_5.0.13.13__13aaee2f91025a4b/ActiveX_3DPlayBrowser.dll

LOG: Appbase = file:///C:/VW/vw7.9.1/bin/win/

LOG: Initial PrivatePath = NULL

Calling assembly : (Unknown).

===

LOG: This bind starts in LoadFrom load context.

WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().

LOG: Using application configuration file: C:\VW\vw7.9.1\bin\win\vwnt.exe.Config

LOG: Using host configuration file:

LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.

LOG: Attempting download of new URL file:///c:/Windows/Microsoft.NET/assembly/GAC_64/ActiveX_3DPlayBrowser/v4.0_5.0.13.13__13aaee2f91025a4b/ActiveX_3DPlayBrowser.dll.

ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated.


DotNET.System.Exception>>raise
DotNET.MscorlibStub(DotNET.DotNETDLLExecutionStub)>>raiseErrorObject:
DotNET.MscorlibStub(DotNETUtils.DotNETExecutionStub)>>checkError:returnValue:
DotNET.MscorlibStub>>Static_System_Reflection_Assembly_LoadFile01:
DotNET.System.Reflection.Assembly class>>LoadFile:
DotNETUtils.DotNETReflectionStub>>loadAssembly
DotNETUtils.DotNETReflectionStub class>>on:
DotNETUtils.AssemblyDescription>>myInterface
DotNETUtils.AssemblyDescription>>analyzeAssembly
DotNETUtils.AssemblyDescription>>types
DotNETUtils.AssemblyDescription>>isLoaded
DotNETUtils.DotNETObjectBrowser>>buildTree
optimized [] in DotNETUtils.DotNETObjectBrowser>>showTypes
BlockClosure>>ensure:
Cursor>>showWhile:
DotNETUtils.DotNETObjectBrowser>>showTypes
DotNETUtils.DotNETObjectBrowser>>assemblySelected
DependencyTransformer>>update:with:from:
DependentsCollection>>update:with:from:
ValueHolder(Object)>>changed:with:
ValueHolder(Object)>>changed:
ValueHolder(ValueModel)>>value:
TreeView(SelectionView)>>useSelectionIndex:
TreeController(SequenceController)>>toggleAt:
TreeController(SequenceController)>>toggleTarget
TreeController(SequenceController)>>selectUpAt:
SequenceSelectionTracker>>finishSelectionFor:
SequenceSelectionTracker(SelectionTracker)>>redButtonReleasedEvent:
RedButtonReleasedEvent>>dispatchTo:
SequenceSelectionTracker(SelectionTracker)>>handleEvent:
EventDispatcher>>dispatch:to:
EventDispatcher>>dispatchEvent:
RedButtonReleasedEvent(Event)>>dispatch
optimized [] in Event>>dispatchForWindowManager:
UndefinedObject>>ifNotNil:ifNil:
ApplicationStandardSystemController>>inTransactionDo:
ApplicationStandardSystemController>>executeInContextWithoutUpdateWidgets:
ApplicationStandardSystemController>>executeInContext:
ApplicationStandardSystemController>>eventExecuteInContext:
RedButtonReleasedEvent(Event)>>executeInWindowContext:
RedButtonReleasedEvent(Event)>>dispatchForWindowManager:
optimized [] in [] in WindowManager>>safelyDispatchForWindowManager:
BlockClosure>>ensure:
optimized [] in WindowManager>>safelyDispatchForWindowManager:
BlockClosure>>on:do:
WindowManager>>safelyDispatchForWindowManager:
WindowManager>>processNextEvent
optimized [] in [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in Process class>>forBlock:priority:

----------------------------------------------------------------------
DotNET.System.Exception>>raise
Receiver:
        an DotNET.System.Exception
Instance Variables:
        objectId = 224
Context PC = 7

----------------------------------------------------------------------
DotNET.MscorlibStub(DotNET.DotNETDLLExecutionStub)>>raiseErrorObject:
Receiver:
        a DotNET.MscorlibStub
Instance Variables:
        errorHandler = nil
        converter = a DotNETUtils.DotNETDataConverter
        externalInterface = a DotNET.MscorlibExternalInterface
Arguments:
        returnValue = a CCompositePointer {02C2AE50} (struct {
        unsigned int type;
        union {
                __bool char bool_data;
                char sbyte_data;
                unsigned char byte_data;
                short word_data;
                unsigned short uword_data;
                long int_data;
                unsigned long uint_data;
                long long long_data;
                unsigned long long ulong_data;
                float single_data;
                double double_data;
                unsigned short char_data;
                unsigned short * string_data;
                short_object_reference enum_data;
        } u;
} * )
Temporaries:
        error = a DotNET.System.Exception(System.BadImageFormatException: Could not load file or assembly 'ActiveX_3DPlayBrowser, Version=5.0.13.13, Culture=neutral, PublicKeyToken=13aaee2f91025a4b' or one of its dependencies. An attempt was made to load a program with an incorrect format.

File name: 'ActiveX_3DPlayBrowser, Version=5.0.13.13, Culture=neutral, PublicKeyToken=13aaee2f91025a4b'

   at System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)

   at System.Reflection.Assembly.LoadFile(String path)

   at Heeg.MscorlibProxy.Static_System_Reflection_Assembly_LoadFile01(MscorlibProxy* , return_type* vwReturnValue, Char* path)



=== Pre-bind state information ===

LOG: User = OOPS\testmachine

LOG: Where-ref bind. Location = c:/Windows/Microsoft.NET/assembly/GAC_64/ActiveX_3DPlayBrowser/v4.0_5.0.13.13__13aaee2f91025a4b/ActiveX_3DPlayBrowser.dll

LOG: Appbase = file:///C:/VW/vw7.9.1/bin/win/

LOG: Initial PrivatePath = NULL

Calling assembly : (Unknown).

===

LOG: This bind starts in LoadFrom load context.

WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().

LOG: Using application configuration file: C:\VW\vw7.9.1\bin\win\vwnt.exe.Config

LOG: Using host configuration file:

LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.

LOG: Attempting download of new URL file:///c:/Windows/Microsoft.NET/assembly/GAC_64/ActiveX_3DPlayBrowser/v4.0_5.0.13.13__13aaee2f91025a4b/ActiveX_3DPlayBrowser.dll.

ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated.

)
Context PC = 30

----------------------------------------------------------------------
DotNET.MscorlibStub(DotNETUtils.DotNETExecutionStub)>>checkError:returnValue:
Receiver:
        a DotNET.MscorlibStub
Instance Variables:
        errorHandler = nil
        converter = a DotNETUtils.DotNETDataConverter
        externalInterface = a DotNET.MscorlibExternalInterface
Arguments:
        errorCode = 1
        returnValue = a CCompositePointer {02C2AE50} (struct {
        unsigned int type;
        union {
                __bool char bool_data;
                char sbyte_data;
                unsigned char byte_data;
                short word_data;
                unsigned short uword_data;
                long int_data;
                unsigned long uint_data;
                long long long_data;
                unsigned long long ulong_data;
                float single_data;
                double double_data;
                unsigned short char_data;
                unsigned short * string_data;
                short_object_reference enum_data;
        } u;
} * )
Context PC = 19

----------------------------------------------------------------------
DotNET.MscorlibStub>>Static_System_Reflection_Assembly_LoadFile01:
Receiver:
        a DotNET.MscorlibStub
Instance Variables:
        errorHandler = nil
        converter = a DotNETUtils.DotNETDataConverter
        externalInterface = a DotNET.MscorlibExternalInterface
Arguments:
        path = 'c:\Windows\Microsoft.NET\asse...4b\ActiveX_3DPlayBrowser.dll'
Temporaries:
        vw_errorCode = 1
        vwReturnValueBuffer = a CCompositePointer {02C2AE50} (struct {
        unsigned int type;
        union {
                __bool char bool_data;
                char sbyte_data;
                unsigned char byte_data;
                short word_data;
                unsigned short uword_data;
                long int_data;
                unsigned long uint_data;
                long long long_data;
                unsigned long long ulong_data;
                float single_data;
                double double_data;
                unsigned short char_data;
                unsigned short * string_data;
                short_object_reference enum_data;
        } u;
} * )
        pathBuffer = a CPointer {02C14AE0} (unsigned char * )
Context PC = 20

----------------------------------------------------------------------
DotNET.System.Reflection.Assembly class>>LoadFile:
Receiver:
        an DotNET.System.Reflection.Assembly class
Instance Variables:
        superclass = DotNET.System.Object
        methodDict = a MethodDictionary[33]
        format = 16385
        subclasses = nil
        instanceVariables = an Array[0]
        organization = ('methods' #CreateInstance: #CreateInstance:with: #Equals: #GetCustomAttributes: #GetCustomAttributes:with: #GetExportedTypes #GetFile: #GetFiles #GetFiles: #GetHashCode #GetManifestResourceNames #GetManifestResourceStream: #GetManifestResourceStream:with: #GetName #GetName: #GetReferencedAssemblies #GetSatelliteAssembly: #GetSatelliteAssembly:with: #GetType: #GetType:with: #GetType:with:with: #GetTypes #IsDefined:with: #ToString)
('properties' #CodeBase #EntryPoint #EscapedCodeBase #FullName #GlobalAssemblyCache #HostContext #ImageRuntimeVersion #Location #ReflectionOnly)

        name = #Assembly
        classPool = a NameSpaceOfClass[0]
        environment = a NameSpace[15]
        executionStub = DotNET.MscorlibStub
        dotNETObject = nil
Arguments:
        path = 'c:\Windows\Microsoft.NET\asse...4b\ActiveX_3DPlayBrowser.dll'
Context PC = 6

----------------------------------------------------------------------
DotNETUtils.DotNETReflectionStub>>loadAssembly
Receiver:
        a DotNETUtils.DotNETReflectionStub
Instance Variables:
        assemblyLocation = 'c:\Windows\Microsoft.NET\asse...4b\ActiveX_3DPlayBrowser.dll'
        assembly = nil
Context PC = 18

----------------------------------------------------------------------
DotNETUtils.DotNETReflectionStub class>>on:
Receiver:
        a DotNETUtils.DotNETReflectionStub class
Instance Variables:
        superclass = Object
        methodDict = a MethodDictionary[29]
        format = 16386
        subclasses = nil
        instanceVariables = an Array[2]
        organization = ('accessing' #assemblyLocation: #getBasetype: #getCodeBase #getConstructorsFor:from: #getEventsFor:from: #getMethodsFor:from: #getName #getPropertiesFor:from: #getReferences #getTypeNames #interestingMethod: #loadAssembly #references)
('reflection' #IsInterface: #classNamed: #createConstructors:for:constructorClass: #createEvents:forClass: #createMethods:for: #createProperties:for: #getBasetypeForTypeNamed: #getEnumValuesFor: #getInterfacesFor: #getMembersUsing:forClass: #getMembersUsing:forInterface: #getMembersUsing:forType: #getTypes #getTypesFor: #getTypesFromList:)
('initialize release' #disconnect)

        name = #DotNETReflectionStub
        classPool = a NameSpaceOfClass[1]
        environment = a NameSpace[119]
Arguments:
        assemblyLocation = 'c:\Windows\Microsoft.NET\asse...4b\ActiveX_3DPlayBrowser.dll'
Context PC = 16

----------------------------------------------------------------------
DotNETUtils.AssemblyDescription>>myInterface
Receiver:
        an DotNETUtils.AssemblyDescription
Instance Variables:
        path = 'c:\Windows\Microsoft.NET\asse...4b\ActiveX_3DPlayBrowser.dll'
        name = 'ActiveX_3DPlayBrowser'
        types = nil
        version = '5.0.13.13'
        culture = 'neutral'
        publicKey = '13aaee2f91025a4b'
        info = ''
        references = nil
        ignoreList = an OrderedCollection[0]
        knownTypes = nil
        fileNamePrefix = 'ActiveX_3DPlayBrowser'
        classNamePrefix = nil
        codeBase = nil
        fullname = nil
Temporaries:
        interface = nil
Context PC = 14

----------------------------------------------------------------------
DotNETUtils.AssemblyDescription>>analyzeAssembly
Receiver:
        an DotNETUtils.AssemblyDescription
Instance Variables:
        path = 'c:\Windows\Microsoft.NET\asse...4b\ActiveX_3DPlayBrowser.dll'
        name = 'ActiveX_3DPlayBrowser'
        types = nil
        version = '5.0.13.13'
        culture = 'neutral'
        publicKey = '13aaee2f91025a4b'
        info = ''
        references = nil
        ignoreList = an OrderedCollection[0]
        knownTypes = nil
        fileNamePrefix = 'ActiveX_3DPlayBrowser'
        classNamePrefix = nil
        codeBase = nil
        fullname = nil
Temporaries:
        interface = nil
Context PC = 8

----------------------------------------------------------------------
DotNETUtils.AssemblyDescription>>types
Receiver:
        an DotNETUtils.AssemblyDescription
Instance Variables:
        path = 'c:\Windows\Microsoft.NET\asse...4b\ActiveX_3DPlayBrowser.dll'
        name = 'ActiveX_3DPlayBrowser'
        types = nil
        version = '5.0.13.13'
        culture = 'neutral'
        publicKey = '13aaee2f91025a4b'
        info = ''
        references = nil
        ignoreList = an OrderedCollection[0]
        knownTypes = nil
        fileNamePrefix = 'ActiveX_3DPlayBrowser'
        classNamePrefix = nil
        codeBase = nil
        fullname = nil
Context PC = 7

----------------------------------------------------------------------
DotNETUtils.AssemblyDescription>>isLoaded
Receiver:
        an DotNETUtils.AssemblyDescription
Instance Variables:
        path = 'c:\Windows\Microsoft.NET\asse...4b\ActiveX_3DPlayBrowser.dll'
        name = 'ActiveX_3DPlayBrowser'
        types = nil
        version = '5.0.13.13'
        culture = 'neutral'
        publicKey = '13aaee2f91025a4b'
        info = ''
        references = nil
        ignoreList = an OrderedCollection[0]
        knownTypes = nil
        fileNamePrefix = 'ActiveX_3DPlayBrowser'
        classNamePrefix = nil
        codeBase = nil
        fullname = nil
Context PC = 4

----------------------------------------------------------------------
DotNETUtils.DotNETObjectBrowser>>buildTree
Receiver:
        a DotNETUtils.DotNETObjectBrowser
Instance Variables:
        dependents = a ScheduledWindow 321
        builder = an UIBuilder
        uiSession = a ControlManager
        eventHandlers = nil
        isChanged = false
        subject = nil
        assemblies = a SortedCollection[207]
        selectedAssembly = an AssemblyDescription for ActiveX_3DPlayBrowser
        selectedMember = nil
        assemblyTreeHolder = a SelectionInTree
        signature = a ValueHolder on: ''
        typeTreeHolder = a SelectionInTree
Temporaries:
        typesNodes = nil
        types = nil
        namespaces = nil
        n = nil
        namespaceNodes = nil
Context PC = 6

----------------------------------------------------------------------
optimized [] in DotNETUtils.DotNETObjectBrowser>>showTypes
Receiver:
        an UndefinedObject
Temporaries:
        .root = a DotNETUtils.GACRoot
        .self = a DotNETUtils.DotNETObjectBrowser
Context PC = 7

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in DotNETUtils.DotNETObjectBrowser>>showTypes
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        aBlock = BlockClosure [] in Cursor>>showWhile:
Temporaries:
        result = nil
Context PC = 4

----------------------------------------------------------------------
Cursor>>showWhile:
Receiver:
        a Cursor
Instance Variables:
        errorCode = 0
        handle = 6
        image = Depth1Image(extent: 16 @ 16 depth: 1)
        mask = Depth1Image(extent: 16 @ 16 depth: 1)
        hotSpot = 0 @ 0
        name = 'wait'
Arguments:
        aBlock = BlockClosure [] in DotNETUtils.DotNETObjectBrowser>>showTypes
Temporaries:
        oldcursor = Cursor normal
Context PC = 23

----------------------------------------------------------------------
DotNETUtils.DotNETObjectBrowser>>showTypes
Receiver:
        a DotNETUtils.DotNETObjectBrowser
Instance Variables:
        dependents = a ScheduledWindow 321
        builder = an UIBuilder
        uiSession = a ControlManager
        eventHandlers = nil
        isChanged = false
        subject = nil
        assemblies = a SortedCollection[207]
        selectedAssembly = an AssemblyDescription for ActiveX_3DPlayBrowser
        selectedMember = nil
        assemblyTreeHolder = a SelectionInTree
        signature = a ValueHolder on: ''
        typeTreeHolder = a SelectionInTree
Temporaries:
        root = a DotNETUtils.GACRoot
        tm = nil
Context PC = 40

----------------------------------------------------------------------
DotNETUtils.DotNETObjectBrowser>>assemblySelected
Receiver:
        a DotNETUtils.DotNETObjectBrowser
Instance Variables:
        dependents = a ScheduledWindow 321
        builder = an UIBuilder
        uiSession = a ControlManager
        eventHandlers = nil
        isChanged = false
        subject = nil
        assemblies = a SortedCollection[207]
        selectedAssembly = an AssemblyDescription for ActiveX_3DPlayBrowser
        selectedMember = nil
        assemblyTreeHolder = a SelectionInTree
        signature = a ValueHolder on: ''
        typeTreeHolder = a SelectionInTree
Temporaries:
        selection = an AssemblyDescription for ActiveX_3DPlayBrowser
Context PC = 53

----------------------------------------------------------------------
DependencyTransformer>>update:with:from:
Receiver:
        a DependencyTransformer
Instance Variables:
        receiver = a DotNETUtils.DotNETObjectBrowser
        selector = #assemblySelected
        numArguments = 0
        aspect = #value
        suspended = false
Arguments:
        anAspect = #value
        parameters = nil
        anObject = a ValueHolder on: 3
Context PC = 20

----------------------------------------------------------------------
DependentsCollection>>update:with:from:
Receiver:
        a DependentsCollection
Arguments:
        anAspect = #value
        aParameter = nil
        anObject = a ValueHolder on: 3
Temporaries:
        i = 2
Context PC = 22

----------------------------------------------------------------------
ValueHolder(Object)>>changed:with:
Receiver:
        a ValueHolder
Instance Variables:
        dependents = a DependentsCollection[3]
        value = 3
Arguments:
        anAspectSymbol = #value
        aParameter = nil
Context PC = 7

----------------------------------------------------------------------
ValueHolder(Object)>>changed:
Receiver:
        a ValueHolder
Instance Variables:
        dependents = a DependentsCollection[3]
        value = 3
Arguments:
        anAspectSymbol = #value
Context PC = 6

----------------------------------------------------------------------
ValueHolder(ValueModel)>>value:
Receiver:
        a ValueHolder
Instance Variables:
        dependents = a DependentsCollection[3]
        value = 3
Arguments:
        newValue = 3
Context PC = 9

----------------------------------------------------------------------
TreeView(SelectionView)>>useSelectionIndex:
Receiver:
        a TreeView
Instance Variables:
        container = a ScrollWrapper on: a TreeView
        eventHandlers = nil
        properties = a Dictionary[4]
        model = a ValueHolder on: TreeModel on: a DotNETUtils.GACRoot (opened: 208)
        controller = a TreeController
        state = a WidgetState
        scrollOffset = a ScrollValueHolder
        sequence = a TreeModel[208]
        selectionChannel = a ValueHolder on: 3
        selectionIndex = 3
        targetIndex = 3
        grid = BlockClosure [] in SequenceView>>initializeGrid
        textStyle = nil
        displayStringSelector = #assemblyNodeName
        visualBlock = BlockClosure [] in TreeView>>useImage:selectedImage:
        selectedVisualBlock = BlockClosure [] in TreeView>>useImage:selectedImage:
        measureWidth = true
        cachedWidth = 335
        mouseOverIndex = 0
        useChildImages = true
        useLines = true
        rootExpander = true
        displayingObject = nil
        fullLineSelect = false
Arguments:
        anIndex = 3
Context PC = 19

----------------------------------------------------------------------
TreeController(SequenceController)>>toggleAt:
Receiver:
        a TreeController
Instance Variables:
        model = a ValueHolder on: TreeModel on: a DotNETUtils.GACRoot (opened: 208)
        view = a TreeView
        menuHolder = a ValueHolder on: a Menu
        performer = a TreeController
        outside = false
        searchString = nil
        keyboardHook = nil
        doStringSearching = true
        dispatcher = nil
        dragDropCallbacks = nil
        selectOnDownWithDrag = false
        autoSelect = true
        useModifierKeys = true
        inPlaceEditor = nil
        composite = a CompositePart
Arguments:
        index = 3
Context PC = 24

----------------------------------------------------------------------
TreeController(SequenceController)>>toggleTarget
Receiver:
        a TreeController
Instance Variables:
        model = a ValueHolder on: TreeModel on: a DotNETUtils.GACRoot (opened: 208)
        view = a TreeView
        menuHolder = a ValueHolder on: a Menu
        performer = a TreeController
        outside = false
        searchString = nil
        keyboardHook = nil
        doStringSearching = true
        dispatcher = nil
        dragDropCallbacks = nil
        selectOnDownWithDrag = false
        autoSelect = true
        useModifierKeys = true
        inPlaceEditor = nil
        composite = a CompositePart
Temporaries:
        index = 3
Context PC = 44

----------------------------------------------------------------------
TreeController(SequenceController)>>selectUpAt:
Receiver:
        a TreeController
Instance Variables:
        model = a ValueHolder on: TreeModel on: a DotNETUtils.GACRoot (opened: 208)
        view = a TreeView
        menuHolder = a ValueHolder on: a Menu
        performer = a TreeController
        outside = false
        searchString = nil
        keyboardHook = nil
        doStringSearching = true
        dispatcher = nil
        dragDropCallbacks = nil
        selectOnDownWithDrag = false
        autoSelect = true
        useModifierKeys = true
        inPlaceEditor = nil
        composite = a CompositePart
Arguments:
        aPoint = 71 @ 43
Context PC = 7

----------------------------------------------------------------------
SequenceSelectionTracker>>finishSelectionFor:
Receiver:
        a SequenceSelectionTracker
Instance Variables:
        controller = a TreeController
        process = nil
        wantsToDrag = false
        selectionDone = false
        startEvent = a RedButtonPressedEvent
Arguments:
        aPoint = 71 @ 43
Context PC = 16

----------------------------------------------------------------------
SequenceSelectionTracker(SelectionTracker)>>redButtonReleasedEvent:
Receiver:
        a SequenceSelectionTracker
Instance Variables:
        controller = a TreeController
        process = nil
        wantsToDrag = false
        selectionDone = false
        startEvent = a RedButtonPressedEvent
Arguments:
        aMouseButtonEvent = a RedButtonReleasedEvent
Context PC = 13

----------------------------------------------------------------------
RedButtonReleasedEvent>>dispatchTo:
Receiver:
        a RedButtonReleasedEvent
Instance Variables:
        time = 1790236
        initiator = an EventDispatcher
        window = a ScheduledWindow 321
        state = 0
        x = 72
        y = 106
        gx = 780
        gy = 466
        buttonNumber = 1
Arguments:
        anObject = a SequenceSelectionTracker
Context PC = 4

----------------------------------------------------------------------
SequenceSelectionTracker(SelectionTracker)>>handleEvent:
Receiver:
        a SequenceSelectionTracker
Instance Variables:
        controller = a TreeController
        process = nil
        wantsToDrag = false
        selectionDone = false
        startEvent = a RedButtonPressedEvent
Arguments:
        anEvent = a RedButtonReleasedEvent
Context PC = 22

----------------------------------------------------------------------
EventDispatcher>>dispatch:to:
Receiver:
        an EventDispatcher
Instance Variables:
        windowController = an ApplicationStandardSystemController
        currentMouseConsumer = nil
        grabbingMouse = false
        lastControlObject = nil
        trapList = nil
        state = nil
        repairDamageWhenDebugging = true
        flushQueueAfterError = true
        distributeEventsWhenDebugging = true
        dragDropInProgress = false
        dragDropTracker = nil
        dispatchUnknownEvents = false
Arguments:
        event = a RedButtonReleasedEvent
        object = a SequenceSelectionTracker
Temporaries:
        tmp = nil
Context PC = 10

----------------------------------------------------------------------
EventDispatcher>>dispatchEvent:
Receiver:
        an EventDispatcher
Instance Variables:
        windowController = an ApplicationStandardSystemController
        currentMouseConsumer = nil
        grabbingMouse = false
        lastControlObject = nil
        trapList = nil
        state = nil
        repairDamageWhenDebugging = true
        flushQueueAfterError = true
        distributeEventsWhenDebugging = true
        dragDropInProgress = false
        dragDropTracker = nil
        dispatchUnknownEvents = false
Arguments:
        event = a RedButtonReleasedEvent
Temporaries:
        objectWantingControl = nil
        targetKeyboardProcessor = nil
Context PC = 60

----------------------------------------------------------------------
RedButtonReleasedEvent(Event)>>dispatch
Receiver:
        a RedButtonReleasedEvent
Instance Variables:
        time = 1790236
        initiator = an EventDispatcher
        window = a ScheduledWindow 321
        state = 0
        x = 72
        y = 106
        gx = 780
        gy = 466
        buttonNumber = 1
Context PC = 16

----------------------------------------------------------------------
optimized [] in Event>>dispatchForWindowManager:
Receiver:
        an UndefinedObject
Temporaries:
        .self = a RedButtonReleasedEvent
Context PC = 6

----------------------------------------------------------------------
UndefinedObject>>ifNotNil:ifNil:
Receiver:
        an UndefinedObject
Arguments:
        notNilBlock = BlockClosure [] in ApplicationStandardSystemController>>inTransactionDo:
        nilBlock = BlockClosure [] in Event>>dispatchForWindowManager:
Context PC = 3

----------------------------------------------------------------------
ApplicationStandardSystemController>>inTransactionDo:
Receiver:
        an ApplicationStandardSystemController
Instance Variables:
        model = a DotNETUtils.DotNETObjectBrowser
        view = a ScheduledWindow 321
        locked = false
        eventDispatcher = an EventDispatcher
        shouldUpdateWidgets = false
        transactionHolder = a ValueHolder on: nil
        shouldUpdateWidgetsBecauseOfUserInteraction = false
Arguments:
        aBlock = BlockClosure [] in Event>>dispatchForWindowManager:
Context PC = 10

----------------------------------------------------------------------
ApplicationStandardSystemController>>executeInContextWithoutUpdateWidgets:
Receiver:
        an ApplicationStandardSystemController
Instance Variables:
        model = a DotNETUtils.DotNETObjectBrowser
        view = a ScheduledWindow 321
        locked = false
        eventDispatcher = an EventDispatcher
        shouldUpdateWidgets = false
        transactionHolder = a ValueHolder on: nil
        shouldUpdateWidgetsBecauseOfUserInteraction = false
Arguments:
        aBlock = BlockClosure [] in Event>>dispatchForWindowManager:
Context PC = 5

----------------------------------------------------------------------
ApplicationStandardSystemController>>executeInContext:
Receiver:
        an ApplicationStandardSystemController
Instance Variables:
        model = a DotNETUtils.DotNETObjectBrowser
        view = a ScheduledWindow 321
        locked = false
        eventDispatcher = an EventDispatcher
        shouldUpdateWidgets = false
        transactionHolder = a ValueHolder on: nil
        shouldUpdateWidgetsBecauseOfUserInteraction = false
Arguments:
        aBlock = BlockClosure [] in Event>>dispatchForWindowManager:
Temporaries:
        result = nil
Context PC = 5

----------------------------------------------------------------------
ApplicationStandardSystemController>>eventExecuteInContext:
Receiver:
        an ApplicationStandardSystemController
Instance Variables:
        model = a DotNETUtils.DotNETObjectBrowser
        view = a ScheduledWindow 321
        locked = false
        eventDispatcher = an EventDispatcher
        shouldUpdateWidgets = false
        transactionHolder = a ValueHolder on: nil
        shouldUpdateWidgetsBecauseOfUserInteraction = false
Arguments:
        aBlock = BlockClosure [] in Event>>dispatchForWindowManager:
Context PC = 5

----------------------------------------------------------------------
RedButtonReleasedEvent(Event)>>executeInWindowContext:
Receiver:
        a RedButtonReleasedEvent
Instance Variables:
        time = 1790236
        initiator = an EventDispatcher
        window = a ScheduledWindow 321
        state = 0
        x = 72
        y = 106
        gx = 780
        gy = 466
        buttonNumber = 1
Arguments:
        aWinMgr = BlockClosure [] in Event>>dispatchForWindowManager:
Context PC = 26

----------------------------------------------------------------------
RedButtonReleasedEvent(Event)>>dispatchForWindowManager:
Receiver:
        a RedButtonReleasedEvent
Instance Variables:
        time = 1790236
        initiator = an EventDispatcher
        window = a ScheduledWindow 321
        state = 0
        x = 72
        y = 106
        gx = 780
        gy = 466
        buttonNumber = 1
Arguments:
        aWinMgr = a WindowManager
Context PC = 8

----------------------------------------------------------------------
optimized [] in [] in WindowManager>>safelyDispatchForWindowManager:
Receiver:
        an UndefinedObject
Temporaries:
        .event = a RedButtonReleasedEvent
        .self = a WindowManager
Context PC = 9

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in [] in WindowManager>>safelyDispatchForWindowManager:
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        aBlock = BlockClosure [] in [] in WindowManager>>safelyDispatchForWindowManager:
Temporaries:
        result = nil
Context PC = 4

----------------------------------------------------------------------
optimized [] in WindowManager>>safelyDispatchForWindowManager:
Receiver:
        an UndefinedObject
Temporaries:
        .self = a WindowManager
        .event = a RedButtonReleasedEvent
Context PC = 20

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in WindowManager>>safelyDispatchForWindowManager:
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        anExceptionSelector = BadControllerError
        handlerBlock = BlockClosure [] in WindowManager>>safelyDispatchForWindowManager:
Context PC = 18

----------------------------------------------------------------------
WindowManager>>safelyDispatchForWindowManager:
Receiver:
        a WindowManager
Instance Variables:
        windows = an OrderedCollection[1]
        activeController = nil
        interruptLock = false
        outstandingMetaOrDamage = false
        openInProgress = false
        eventQueue = an EventQueue
        baseProcess = a Process in Semaphore>>waitIfCurtailedSignal
        dontFilterEvents = false
        eventsCounter = 1
        actionsAfterUpdateWidgets = nil
        timestampOfLastUpdateWidgets = nil
        animationProcess = nil
        pixmap = nil
        lastDispatchedEvent = an UnknownEvent
Arguments:
        event = a RedButtonReleasedEvent
Context PC = 13

----------------------------------------------------------------------
WindowManager>>processNextEvent
Receiver:
        a WindowManager
Instance Variables:
        windows = an OrderedCollection[1]
        activeController = nil
        interruptLock = false
        outstandingMetaOrDamage = false
        openInProgress = false
        eventQueue = an EventQueue
        baseProcess = a Process in Semaphore>>waitIfCurtailedSignal
        dontFilterEvents = false
        eventsCounter = 1
        actionsAfterUpdateWidgets = nil
        timestampOfLastUpdateWidgets = nil
        animationProcess = nil
        pixmap = nil
        lastDispatchedEvent = an UnknownEvent
Temporaries:
        event = a RedButtonReleasedEvent
Context PC = 9

----------------------------------------------------------------------
optimized [] in [] in WindowManager>>newProcess
Receiver:
        an UndefinedObject
Temporaries:
        .self = a WindowManager
Context PC = 13

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in [] in WindowManager>>newProcess
        outerContext = nil
        copiedValues = a WindowManager
Arguments:
        anExceptionSelector = TerminateException
        handlerBlock = BlockClosure [] in [] in WindowManager>>newProcess
Context PC = 18

----------------------------------------------------------------------
optimized [] in WindowManager>>newProcess
Receiver:
        an UndefinedObject
Temporaries:
        .self = a WindowManager
Context PC = 15

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in WindowManager>>newProcess
        outerContext = nil
        copiedValues = a WindowManager
Arguments:
        anExceptionSelector = TerminateException
        handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority:
Context PC = 18

----------------------------------------------------------------------
optimized [] in Process class>>forBlock:priority:
Receiver:
        an UndefinedObject
Temporaries:
        .aBlock = BlockClosure [] in WindowManager>>newProcess
Context PC = 9
Reply | Threaded
Open this post in threaded view
|

Re: DotNet-Connect cannot load an assembly

Ralf Propach
In reply to this post by Dimitri Gheysels
Hi Dimitri,

as far as I remember, you need to use the 64 bit VM and image to use 64
bit DLLs and assemblies.

Am 28.06.2013 15:37, schrieb Dimitri Gheysels:
> Yes, that was the trick :-)
> Thanks for that !
>
> However, I get a new exception.  When I browse to my assembly in the .NET
> object browser in visualworks, I find my assembly and I see my version.  But
> when I click on the version, I get this error.
>
 > a DotNET.System.Exception(System.BadImageFormatException: Could not
load file or assembly 'ActiveX_3DPlayBrowser, Version=5.0.13.13,
Culture=neutral, PublicKeyToken=13aaee2f91025a4b' or one of its
dependencies. An attempt was made to load a program with an incorrect
format.
 >
 > File name: 'ActiveX_3DPlayBrowser, Version=5.0.13.13,
Culture=neutral, PublicKeyToken=13aaee2f91025a4b'
 >
 >   at System.Reflection.RuntimeAssembly.nLoadFile(String path,
Evidence evidence)
 >
 >   at System.Reflection.Assembly.LoadFile(String path)
 >
 >   at
Heeg.MscorlibProxy.Static_System_Reflection_Assembly_LoadFile01(MscorlibProxy*
, return_type* vwReturnValue, Char* path)
 >

>
>
> I think the reason for this error is that my assembly is 64 bit and
> dotnet-connect still uses the 32bit version of the libraries.
> I do have found and installed the 64bit libraries (from www.heeg.de) for the
> dotnet-connect package.  I copied the 'MscorlibProxy64.dll' and
> 'ReflectionProxy64.dll' to the '...\dotnet-connect\libraries' folder.
> Afterwards, I have filed in the 'DotNET64.st' file.
>
> My assembly is correctly installed in the 'Assembly\GAC_64' folder.
>
> Is there something I have forgotten in order to use the 64bit DLL's ?
>

Regards,

Ralf
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: DotNet-Connect cannot load an assembly

Dimitri Gheysels
Finally, I'm able to generate the stubs for my 64bit DLL.  But when I try to create an new object from a class which is defined in the DLL, I get this exception:

"Unhandled exception: External object not found".

What could be the reason for this exception ?  Below, I copy-paste the stacktrace.
The 'anExternal' variable has a reference to 1 library, my DLL file.  My DLL file is registered (regasm.exe) and also resides in my GAC (windows/Microsoft.NET/assembly).

I needed to do some minor changes:
 - dotnet-connect still referred to 'windows/assembly', while since .NET 4.0, it should be 'windows/Microsoft.NET/assembly'
 - the batch file to compile the sources still tried to compile against a 32 bit platform

Unhandled exception: External object not found
[] in ExternalMethod class>>mapAddressFor:
LinkedOrderedCollection>>detect:ifNone:
ExternalMethod class>>mapAddressFor:
ExternalMethod class>>virtualHandleForClass:external:
ExternalMethod>>unlinkedCall:arguments:
DotNET.ActiveX_3DPlayBrowserStub>>ActiveX_3DPlayBrowser_Acx_New
DotNET.ActiveX_3DPlayBrowser.Acx class>>New
UndefinedObject>>unboundMethod
UndefinedObject(Object)>>performMethod:arguments:
UndefinedObject(Object)>>performMethod:
TextEditorController>>evaluateCompiled:
optimized [] in TextEditorController>>evaluateSelection
BlockClosure>>ensure:
Cursor>>showWhile:
TextEditorController>>evaluateSelection
optimized [] in TextEditorController>>printIt
BlockClosure>>on:do:
TextEditorController>>printIt
WorkspacePage>>printIt
Workbook(AbstractWorkspace)>>smalltalkPrintIt
WinXPMenuBarButtonController(MenuBarButtonController)>>dispatchMenuSymbol:
WinXPMenuBarButtonController(MenuBarButtonController)>>dispatchMenuSelection:
optimized [] in [] in MenuBarButtonView>>processShortcutKeyEventAsMenuItemAccessor:
BlockClosure>>ensure:
optimized [] in MenuBarButtonView>>processShortcutKeyEventAsMenuItemAccessor:
BlockClosure>>on:do:
WinXPMenuBarButtonView(MenuBarButtonView)>>processShortcutKeyEventAsMenuItemAccessor:
[] in WinXPMenuBar(MenuBar)>>prefocusKeypressEvent:
OrderedCollection>>do:
WinXPMenuBar(MenuBar)>>prefocusKeypressEvent:
PrefocusKeypressEvent>>dispatchTo:
KeyboardProcessor>>broadcastPrefocusKeyboardEvent:
KeyboardProcessor>>processKeyboardEvent:
KeyboardProcessor>>processKeyboardEvent:for:
EventDispatcher>>dispatchEvent:
KeyPressedEvent(Event)>>dispatch
KeyPressedEvent(Event)>>dispatchForWindowManager:
optimized [] in WindowManager>>safelyDispatchForWindowManager:
BlockClosure>>on:do:
WindowManager>>safelyDispatchForWindowManager:
WindowManager>>processNextEvent
optimized [] in [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in Process class>>forBlock:priority:

----------------------------------------------------------------------
[] in ExternalMethod class>>mapAddressFor:
Receiver:
	an ExternalMethod class
Instance Variables:
	superclass = CompiledMethod
	methodDict = a MethodDictionary[40]
	format = 20493
	subclasses = nil
	instanceVariables = an Array[10]
	organization = ('initialize-release' #for: #for:selector: #releaseHandle #updateLayoutCache)
('address mapping' #mapAddress #mapAddressFor: #unlinkedCall:arguments:)
('accessing' #argumentKinds #datumClass #external #handle #libraries #methodSelector #name #ordinal #ordinal: #owner #referentAddress #resultType #specifierFlags #structArgSize #structReturnSize #undefinedExternals #virtuals)
('testing' #isExternalMethod #isLinkedFor: #isVirtual)
('copying' #postCopy #withAdditionalProperties:)
('comparing' #=)
('tracing' #traceWalkFrom:)
('binary storage' #isCodeReaderEquivalentTo: #postLoad #postReadGeneralStructureOn: #storeGeneralStructureOn:)
('private' #computeStructReturnSize #copyStateFromOldVersion: #findVirtualHandleForClass: #referentAddress: #virtuals:)

	name = #ExternalMethod
	classPool = a NameSpaceOfClass[0]
	environment = a NameSpace[53]
Temporaries:
	.anExternal = ExternalMethod DotNET.ActiveX_3DPlayBrowserExternalInterface>>ActiveX_3DPlayBrowser_Acx_New:
	.self = ExternalMethod
Context PC = 22

----------------------------------------------------------------------
LinkedOrderedCollection>>detect:ifNone:
Receiver:
	a LinkedOrderedCollection
Instance Variables:
	firstIndex = 1
	lastIndex = 1
	backup = an OrderedCollection[1]
Arguments:
	aBlock = BlockClosure [] in ExternalMethod class>>mapAddressFor:
	exceptionBlock = BlockClosure [] in ExternalMethod class>>mapAddressFor:
Context PC = 10

----------------------------------------------------------------------
ExternalMethod class>>mapAddressFor:
Receiver:
	an ExternalMethod class
Instance Variables:
	superclass = CompiledMethod
	methodDict = a MethodDictionary[40]
	format = 20493
	subclasses = nil
	instanceVariables = an Array[10]
	organization = ('initialize-release' #for: #for:selector: #releaseHandle #updateLayoutCache)
('address mapping' #mapAddress #mapAddressFor: #unlinkedCall:arguments:)
('accessing' #argumentKinds #datumClass #external #handle #libraries #methodSelector #name #ordinal #ordinal: #owner #referentAddress #resultType #specifierFlags #structArgSize #structReturnSize #undefinedExternals #virtuals)
('testing' #isExternalMethod #isLinkedFor: #isVirtual)
('copying' #postCopy #withAdditionalProperties:)
('comparing' #=)
('tracing' #traceWalkFrom:)
('binary storage' #isCodeReaderEquivalentTo: #postLoad #postReadGeneralStructureOn: #storeGeneralStructureOn:)
('private' #computeStructReturnSize #copyStateFromOldVersion: #findVirtualHandleForClass: #referentAddress: #virtuals:)

	name = #ExternalMethod
	classPool = a NameSpaceOfClass[0]
	environment = a NameSpace[53]
Arguments:
	anExternal = ExternalMethod DotNET.ActiveX_3DPlayBrowserExternalInterface>>ActiveX_3DPlayBrowser_Acx_New:
Context PC = 22

----------------------------------------------------------------------
ExternalMethod class>>virtualHandleForClass:external:
Receiver:
	an ExternalMethod class
Instance Variables:
	superclass = CompiledMethod
	methodDict = a MethodDictionary[40]
	format = 20493
	subclasses = nil
	instanceVariables = an Array[10]
	organization = ('initialize-release' #for: #for:selector: #releaseHandle #updateLayoutCache)
('address mapping' #mapAddress #mapAddressFor: #unlinkedCall:arguments:)
('accessing' #argumentKinds #datumClass #external #handle #libraries #methodSelector #name #ordinal #ordinal: #owner #referentAddress #resultType #specifierFlags #structArgSize #structReturnSize #undefinedExternals #virtuals)
('testing' #isExternalMethod #isLinkedFor: #isVirtual)
('copying' #postCopy #withAdditionalProperties:)
('comparing' #=)
('tracing' #traceWalkFrom:)
('binary storage' #isCodeReaderEquivalentTo: #postLoad #postReadGeneralStructureOn: #storeGeneralStructureOn:)
('private' #computeStructReturnSize #copyStateFromOldVersion: #findVirtualHandleForClass: #referentAddress: #virtuals:)

	name = #ExternalMethod
	classPool = a NameSpaceOfClass[0]
	environment = a NameSpace[53]
Arguments:
	theClass = DotNET.ActiveX_3DPlayBrowserExternalInterface
	anExternal = ExternalMethod DotNET.ActiveX_3DPlayBrowserExternalInterface>>ActiveX_3DPlayBrowser_Acx_New:
Temporaries:
	aHandle = nil
	actualClass = DotNET.ActiveX_3DPlayBrowserExternalInterface
	errorClass = DotNET.ActiveX_3DPlayBrowserExternalInterface
Context PC = 27

----------------------------------------------------------------------
ExternalMethod>>unlinkedCall:arguments:
Receiver:
	an ExternalMethod
Instance Variables:
	bytes = a ByteArray[11]
	mclass = DotNET.ActiveX_3DPlayBrowserExternalInterface
	sourceCode = 2463043716
	handle = nil
	specifierFlags = 18
	argumentKinds = a ByteArray[2]
	structArgSize = 0
	structReturnSize = 0
	datumClass = CDatum
	resultType = int
	virtuals = nil
	methodSelector = #ActiveX_3DPlayBrowser_Acx_New:
	external = #ActiveX_3DPlayBrowser_Acx_New
Arguments:
	receiver = a DotNET.ActiveX_3DPlayBrowserExternalInterface
	arguments = an Array[1]
Context PC = 8

----------------------------------------------------------------------
DotNET.ActiveX_3DPlayBrowserStub>>ActiveX_3DPlayBrowser_Acx_New
Receiver:
	an DotNET.ActiveX_3DPlayBrowserStub
Instance Variables:
	errorHandler = nil
	converter = a DotNETUtils.DotNETDataConverter
	externalInterface = a DotNET.ActiveX_3DPlayBrowserExternalInterface
Temporaries:
	vw_errorCode = nil
	vwReturnValueBuffer = a CCompositePointer {01E79E40} (struct {
	unsigned int type;
	union {
		__bool char bool_data;
		char sbyte_data;
		unsigned char byte_data;
		short word_data;
		unsigned short uword_data;
		long int_data;
		unsigned long uint_data;
		long long long_data;
		unsigned long long ulong_data;
		float single_data;
		double double_data;
		unsigned short char_data;
		unsigned short * string_data;
		short_object_reference enum_data;
	} u;
} * )
Context PC = 10

----------------------------------------------------------------------
DotNET.ActiveX_3DPlayBrowser.Acx class>>New
Receiver:
	an DotNET.ActiveX_3DPlayBrowser.Acx class
Instance Variables:
	superclass = DotNET.System.Windows.Forms.UserControl
	methodDict = a MethodDictionary[121]
	format = 16385
	subclasses = nil
	instanceVariables = nil
	organization = ('methods' #ClearCurrentEvent #CueCurrentEvent #CueEvent: #Finit #GetCurrentEventDuration #GetCurrentEventParameter: #GetCurrentEventUniqueID #GetEventInfo:with: #GetEventInfoAsString:with:with: #GetEventParameter:with: #HideGUI #Init: #LastError #LoadEventFromStorage: #LoadEventFromStorageAsCurrent: #PlayCurrentEvent #PlayEvent: #RenderEventToFileSync:with:with: #SaveCurrentEventToStorage #SetActionAsCurrent:with: #SetCurrentEventDuration: #SetCurrentEventParameter:with: #SetEnvParameter:with: #SetEnviroment:with: #SetEventParameter:with:with: #ShowGUI #StartRenderingEventToFile:with:with:with: #StopCurrentEvent #StopEvent: #StopRenderingEventToFile #SwitchRenderWorkingMode: #TimelineAddEvent:with: #TimelineClear #TimelineGoTo: #TimelinePlay:with: #TimelineRemoveEvent:with: #TimelineStop)
('events' #AutoSizeChanged #AutoValidateChanged #BackColorChanged #BackgroundImageChanged #BackgroundImageLayoutChanged #BindingContextChanged #CanActionBeExecuted #CausesValidationChanged #ChangeUICues #Click #ClientSizeChanged #ContextMenuChanged #ContextMenuStripChanged #ControlAdded #ControlRemoved #CursorChanged #Disposed #DockChanged #DoubleClick #DragDrop #DragEnter #DragLeave #DragOver #EnabledChanged #Enter #FontChanged #ForeColorChanged #GiveFeedback #GotFocus #HandleCreated #HandleDestroyed #HelpRequested #ImeModeChanged #Invalidated #KeyDown #KeyPress #KeyUp #Layout #Leave #Load #LocationChanged #LostFocus #MarginChanged #MouseCaptureChanged #MouseClick #MouseDoubleClick #MouseDown #MouseEnter #MouseHover #MouseLeave #MouseMove #MouseUp #MouseWheel #Move #On3DPlayInternalError #OnActionUidAndExternalsCollected #OnEventLoaded #OnEventSaved #OnEventSavingGetUniqueID #OnEventUniqueIDChanged #OnGUIHidden #OnGUIShowed #OnGetTimeCode #OnGoToTimeCode #OnRenderingEventToFileFinished #PaddingChanged #Paint #ParentChanged #PreviewKeyDown #QueryAccessibilityHelp #QueryContinueDrag #RegionChanged #Resize #RightToLeftChanged #Scroll #SizeChanged #StyleChanged #SystemColorsChanged #TabIndexChanged #TabStopChanged #TextChanged #Validated #Validating #VisibleChanged)

	name = #Acx
	classPool = a NameSpaceOfClass[0]
	environment = a NameSpace[24]
	executionStub = DotNET.ActiveX_3DPlayBrowserStub
	dotNETObject = nil
Context PC = 5

----------------------------------------------------------------------
UndefinedObject>>unboundMethod
Receiver:
	an UndefinedObject
Context PC = 3

----------------------------------------------------------------------
UndefinedObject(Object)>>performMethod:arguments:
Receiver:
	an UndefinedObject
Arguments:
	method = AnnotatedMethod UndefinedObject>>unboundMethod
	args = an Array[0]
Context PC = 5

----------------------------------------------------------------------
UndefinedObject(Object)>>performMethod:
Receiver:
	an UndefinedObject
Arguments:
	method = AnnotatedMethod UndefinedObject>>unboundMethod
Context PC = 5

----------------------------------------------------------------------
TextEditorController>>evaluateCompiled:
Receiver:
	a TextEditorController
Instance Variables:
	model = a PluggableAdaptor
	view = a TextEditorView
	menuHolder = a ValueHolder on: a Menu
	performer = a WorkspacePage
	beginTypeInIndex = nil
	anchorIndex = 1
	emphasisHere = nil
	dispatchTable = a DispatchTable
	charComposer = a CharacterComposer
	textHasChanged = true
	feelPolicy = a Win95FeelPolicy
	supportCodeEditingFeels = true
	localMenuItems = an Array[20]
	extendingDown = true
	keyboardHook = nil
	readOnly = false
	accepted = false
	autoAccept = false
	continuousAccept = false
	tabMeansNextField = true
	tabRequiresControl = true
	dispatcher = an UIDispatcher
	selectable = false
	maxChars = nil
	nextUndoBlock = BlockClosure [] in TextEditorController>>appendToSelection:
	currentUndo = a TextUndo #Typing [+]DotNET.ActiveX_3DBrowser.Acx New[+]
Arguments:
	aMethod = AnnotatedMethod UndefinedObject>>unboundMethod
Temporaries:
	context = nil
Context PC = 13

----------------------------------------------------------------------
optimized [] in TextEditorController>>evaluateSelection
Receiver:
	an UndefinedObject
Temporaries:
	.self = a TextEditorController
	.code = AnnotatedMethod UndefinedObject>>unboundMethod
Context PC = 7

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
	a BlockClosure
Instance Variables:
	method = CompiledBlock [] in TextEditorController>>evaluateSelection
	outerContext = nil
	copiedValues = an Array[2]
Arguments:
	aBlock = BlockClosure [] in Cursor>>showWhile:
Temporaries:
	result = nil
Context PC = 4

----------------------------------------------------------------------
Cursor>>showWhile:
Receiver:
	a Cursor
Instance Variables:
	errorCode = 0
	handle = 4
	image = Depth1Image(extent: 16 @ 16 depth: 1)
	mask = Depth1Image(extent: 16 @ 16 depth: 1)
	hotSpot = 1 @ 1
	name = 'xeq'
Arguments:
	aBlock = BlockClosure [] in TextEditorController>>evaluateSelection
Temporaries:
	oldcursor = Cursor normal
Context PC = 23

----------------------------------------------------------------------
TextEditorController>>evaluateSelection
Receiver:
	a TextEditorController
Instance Variables:
	model = a PluggableAdaptor
	view = a TextEditorView
	menuHolder = a ValueHolder on: a Menu
	performer = a WorkspacePage
	beginTypeInIndex = nil
	anchorIndex = 1
	emphasisHere = nil
	dispatchTable = a DispatchTable
	charComposer = a CharacterComposer
	textHasChanged = true
	feelPolicy = a Win95FeelPolicy
	supportCodeEditingFeels = true
	localMenuItems = an Array[20]
	extendingDown = true
	keyboardHook = nil
	readOnly = false
	accepted = false
	autoAccept = false
	continuousAccept = false
	tabMeansNextField = true
	tabRequiresControl = true
	dispatcher = an UIDispatcher
	selectable = false
	maxChars = nil
	nextUndoBlock = BlockClosure [] in TextEditorController>>appendToSelection:
	currentUndo = a TextUndo #Typing [+]DotNET.ActiveX_3DBrowser.Acx New[+]
Temporaries:
	code = AnnotatedMethod UndefinedObject>>unboundMethod
	result = nil
Context PC = 14

----------------------------------------------------------------------
optimized [] in TextEditorController>>printIt
Receiver:
	an UndefinedObject
Temporaries:
	.self = a TextEditorController
Context PC = 8

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
	a BlockClosure
Instance Variables:
	method = CompiledBlock [] in TextEditorController>>printIt
	outerContext = nil
	copiedValues = a TextEditorController
Arguments:
	anExceptionSelector = CompilationError
	handlerBlock = BlockClosure [] in TextEditorController>>printIt
Context PC = 18

----------------------------------------------------------------------
TextEditorController>>printIt
Receiver:
	a TextEditorController
Instance Variables:
	model = a PluggableAdaptor
	view = a TextEditorView
	menuHolder = a ValueHolder on: a Menu
	performer = a WorkspacePage
	beginTypeInIndex = nil
	anchorIndex = 1
	emphasisHere = nil
	dispatchTable = a DispatchTable
	charComposer = a CharacterComposer
	textHasChanged = true
	feelPolicy = a Win95FeelPolicy
	supportCodeEditingFeels = true
	localMenuItems = an Array[20]
	extendingDown = true
	keyboardHook = nil
	readOnly = false
	accepted = false
	autoAccept = false
	continuousAccept = false
	tabMeansNextField = true
	tabRequiresControl = true
	dispatcher = an UIDispatcher
	selectable = false
	maxChars = nil
	nextUndoBlock = BlockClosure [] in TextEditorController>>appendToSelection:
	currentUndo = a TextUndo #Typing [+]DotNET.ActiveX_3DBrowser.Acx New[+]
Context PC = 20

----------------------------------------------------------------------
WorkspacePage>>printIt
Receiver:
	a WorkspacePage
Instance Variables:
	dependents = a PluggableAdaptor
	builder = an UIBuilder
	uiSession = nil
	eventHandlers = nil
	workspace = a Workbook
	label = an UserMessage('Page 1', #Page1, #dialogs)
	verboseLabel = nil
	filename = nil
	fileTimestamp = nil
	textModel = a PluggableAdaptor
	unacceptedText = nil
	savedSelection = nil
	savedFileTimestamp = nil
	textModelOverride = nil
Context PC = 5

----------------------------------------------------------------------
Workbook(AbstractWorkspace)>>smalltalkPrintIt
Receiver:
	a Workbook
Instance Variables:
	dependents = a ScheduledWindow 1207
	builder = an UIBuilder
	uiSession = a ControlManager
	eventHandlers = nil
	locals = a WorkspaceVariablePool[0]
	importAll = true
	specificImports = an Array[3]
	importSummaryHolder = a ValueHolder on: 'All'
	pageExplanationHolder = a ValueHolder on: 'Text or Smalltalk code'
	statusBarVisible = true
	encodingChannel = a ValueHolder on: #Source
	menuBarHolder = a ValueHolder on: a Menu
	pageHolder = a SelectionInList
	lastInstalledPage = a WorkspacePage
Context PC = 5

----------------------------------------------------------------------
WinXPMenuBarButtonController(MenuBarButtonController)>>dispatchMenuSymbol:
Receiver:
	a WinXPMenuBarButtonController
Instance Variables:
	model = nil
	view = a WinXPMenuBarButtonView
	highlightOnOpen = false
Arguments:
	menuSelection = #smalltalkPrintIt
Context PC = 38

----------------------------------------------------------------------
WinXPMenuBarButtonController(MenuBarButtonController)>>dispatchMenuSelection:
Receiver:
	a WinXPMenuBarButtonController
Instance Variables:
	model = nil
	view = a WinXPMenuBarButtonView
	highlightOnOpen = false
Arguments:
	menuSelection = #smalltalkPrintIt
Context PC = 17

----------------------------------------------------------------------
optimized [] in [] in MenuBarButtonView>>processShortcutKeyEventAsMenuItemAccessor:
Receiver:
	an UndefinedObject
Temporaries:
	.self = a WinXPMenuBarButtonView
	.theValue = #smalltalkPrintIt
Context PC = 12

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
	a BlockClosure
Instance Variables:
	method = CompiledBlock [] in [] in MenuBarButtonView>>processShortcutKeyEventAsMenuItemAccessor:
	outerContext = nil
	copiedValues = an Array[2]
Arguments:
	aBlock = BlockClosure [] in [] in MenuBarButtonView>>processShortcutKeyEventAsMenuItemAccessor:
Temporaries:
	result = nil
Context PC = 4

----------------------------------------------------------------------
optimized [] in MenuBarButtonView>>processShortcutKeyEventAsMenuItemAccessor:
Receiver:
	an UndefinedObject
Temporaries:
	.self = a WinXPMenuBarButtonView
	.theValue = #smalltalkPrintIt
Context PC = 14

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
	a BlockClosure
Instance Variables:
	method = CompiledBlock [] in MenuBarButtonView>>processShortcutKeyEventAsMenuItemAccessor:
	outerContext = nil
	copiedValues = an Array[2]
Arguments:
	anExceptionSelector = VetoAction
	handlerBlock = BlockClosure [] in MenuBarButtonView>>processShortcutKeyEventAsMenuItemAccessor:
Context PC = 18

----------------------------------------------------------------------
WinXPMenuBarButtonView(MenuBarButtonView)>>processShortcutKeyEventAsMenuItemAccessor:
Receiver:
	a WinXPMenuBarButtonView
Instance Variables:
	container = a BoundedWrapper on: a WinXPMenuBarButtonView
	eventHandlers = nil
	properties = nil
	model = nil
	controller = a WinXPMenuBarButtonController
	state = a WidgetState
	isInTransition = true
	latestValue = nil
	referenceValue = true
	label = Label for 'Smalltalk'
	textStyle = a VariableSizeTextAttributes
	menuHolder = a Menu
	menuBar = a WinXPMenuBar
	accessChar = 1
	flyingOver = false
Arguments:
	aKeyboardEvent = a PrefocusKeypressEvent
Temporaries:
	theMenu = a Menu
	matchingMenuItem = a MenuItem 'Print it'
	theValue = #smalltalkPrintIt
	selector = nil
Context PC = 55

----------------------------------------------------------------------
[] in WinXPMenuBar(MenuBar)>>prefocusKeypressEvent:
Receiver:
	a WinXPMenuBar
Instance Variables:
	container = a MenuBarWrapper on: a WinXPMenuBar
	eventHandlers = nil
	properties = nil
	components = an OrderedCollection[5]
	preferredBounds = 0 @ 0 corner: 201 @ 20
	leftSpace = 0
	spaceBetweenItems = 0
	extraSpaceTop = 0
	extraSpaceBottom = 0
	extraSpaceBetweenLines = 0
	menuChannel = a ValueHolder on: a Menu
	performer = a Workbook
	menuButtons = an OrderedCollection[5]
	nextMenuButton = nil
	lastMousePosition = nil
Arguments:
	each = a WinXPMenuBarButtonView
Temporaries:
	.aKeypressEvent = a PrefocusKeypressEvent
Context PC = 10

----------------------------------------------------------------------
OrderedCollection>>do:
Receiver:
	an OrderedCollection
Instance Variables:
	firstIndex = 1
	lastIndex = 5
Arguments:
	aBlock = BlockClosure [] in MenuBar>>prefocusKeypressEvent:
Temporaries:
	index = 3
Context PC = 17

----------------------------------------------------------------------
WinXPMenuBar(MenuBar)>>prefocusKeypressEvent:
Receiver:
	a WinXPMenuBar
Instance Variables:
	container = a MenuBarWrapper on: a WinXPMenuBar
	eventHandlers = nil
	properties = nil
	components = an OrderedCollection[5]
	preferredBounds = 0 @ 0 corner: 201 @ 20
	leftSpace = 0
	spaceBetweenItems = 0
	extraSpaceTop = 0
	extraSpaceBottom = 0
	extraSpaceBetweenLines = 0
	menuChannel = a ValueHolder on: a Menu
	performer = a Workbook
	menuButtons = an OrderedCollection[5]
	nextMenuButton = nil
	lastMousePosition = nil
Arguments:
	aKeypressEvent = a PrefocusKeypressEvent
Context PC = 44

----------------------------------------------------------------------
PrefocusKeypressEvent>>dispatchTo:
Receiver:
	a PrefocusKeypressEvent
Instance Variables:
	time = nil
	initiator = an EventDispatcher
	window = a ScheduledWindow 1207
	state = nil
	keyCharacter = $ "16r0010"
	metaState = 2
	alternativeKeyCharacter = nil
	wasHandled = nil
Arguments:
	anObject = a WinXPMenuBar
Context PC = 4

----------------------------------------------------------------------
KeyboardProcessor>>broadcastPrefocusKeyboardEvent:
Receiver:
	a KeyboardProcessor
Instance Variables:
	keyboardHook = nil
	focusIsShifting = false
	acceptOnControlChange = false
	menuBar = a WinXPMenuBar
	parentVisual = a ScheduledWindow 1207
	focusedView = a TextEditorView
Arguments:
	aKeyEvent = a KeyPressedEvent
Temporaries:
	prefocus = a PrefocusKeypressEvent
Context PC = 17

----------------------------------------------------------------------
KeyboardProcessor>>processKeyboardEvent:
Receiver:
	a KeyboardProcessor
Instance Variables:
	keyboardHook = nil
	focusIsShifting = false
	acceptOnControlChange = false
	menuBar = a WinXPMenuBar
	parentVisual = a ScheduledWindow 1207
	focusedView = a TextEditorView
Arguments:
	aKeyboardEvent = a KeyPressedEvent
Context PC = 5

----------------------------------------------------------------------
KeyboardProcessor>>processKeyboardEvent:for:
Receiver:
	a KeyboardProcessor
Instance Variables:
	keyboardHook = nil
	focusIsShifting = false
	acceptOnControlChange = false
	menuBar = a WinXPMenuBar
	parentVisual = a ScheduledWindow 1207
	focusedView = a TextEditorView
Arguments:
	keyboardEvent = a KeyPressedEvent
	aController = an ApplicationStandardSystemController
Temporaries:
	ev = a KeyPressedEvent
Context PC = 26

----------------------------------------------------------------------
EventDispatcher>>dispatchEvent:
Receiver:
	an EventDispatcher
Instance Variables:
	windowController = an ApplicationStandardSystemController
	currentMouseConsumer = nil
	grabbingMouse = false
	lastControlObject = nil
	trapList = nil
	state = nil
	repairDamageWhenDebugging = true
	flushQueueAfterError = true
	distributeEventsWhenDebugging = true
	dragDropInProgress = false
	dragDropTracker = nil
	dispatchUnknownEvents = false
Arguments:
	event = a KeyPressedEvent
Temporaries:
	objectWantingControl = nil
	targetKeyboardProcessor = a KeyboardProcessor
Context PC = 99

----------------------------------------------------------------------
KeyPressedEvent(Event)>>dispatch
Receiver:
	a KeyPressedEvent
Instance Variables:
	time = nil
	initiator = an EventDispatcher
	window = a ScheduledWindow 1207
	state = nil
	keyCharacter = $ "16r0010"
	metaState = 2
	alternativeKeyCharacter = nil
Context PC = 16

----------------------------------------------------------------------
KeyPressedEvent(Event)>>dispatchForWindowManager:
Receiver:
	a KeyPressedEvent
Instance Variables:
	time = nil
	initiator = an EventDispatcher
	window = a ScheduledWindow 1207
	state = nil
	keyCharacter = $ "16r0010"
	metaState = 2
	alternativeKeyCharacter = nil
Arguments:
	aWinMgr = a WindowManager
Context PC = 4

----------------------------------------------------------------------
optimized [] in WindowManager>>safelyDispatchForWindowManager:
Receiver:
	an UndefinedObject
Temporaries:
	.event = a KeyPressedEvent
	.self = a WindowManager
Context PC = 6

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
	a BlockClosure
Instance Variables:
	method = CompiledBlock [] in WindowManager>>safelyDispatchForWindowManager:
	outerContext = nil
	copiedValues = an Array[2]
Arguments:
	anExceptionSelector = BadControllerError
	handlerBlock = BlockClosure [] in WindowManager>>safelyDispatchForWindowManager:
Context PC = 18

----------------------------------------------------------------------
WindowManager>>safelyDispatchForWindowManager:
Receiver:
	a WindowManager
Instance Variables:
	windows = an OrderedCollection[1]
	activeController = nil
	interruptLock = false
	outstandingMetaOrDamage = false
	openInProgress = false
	eventQueue = an EventQueue
	baseProcess = a Process in Semaphore>>waitIfCurtailedSignal
	dontFilterEvents = false
Arguments:
	event = a KeyPressedEvent
Context PC = 13

----------------------------------------------------------------------
WindowManager>>processNextEvent
Receiver:
	a WindowManager
Instance Variables:
	windows = an OrderedCollection[1]
	activeController = nil
	interruptLock = false
	outstandingMetaOrDamage = false
	openInProgress = false
	eventQueue = an EventQueue
	baseProcess = a Process in Semaphore>>waitIfCurtailedSignal
	dontFilterEvents = false
Temporaries:
	event = a KeyPressedEvent
Context PC = 9

----------------------------------------------------------------------
optimized [] in [] in WindowManager>>newProcess
Receiver:
	an UndefinedObject
Temporaries:
	.self = a WindowManager
Context PC = 13

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
	a BlockClosure
Instance Variables:
	method = CompiledBlock [] in [] in WindowManager>>newProcess
	outerContext = nil
	copiedValues = a WindowManager
Arguments:
	anExceptionSelector = TerminateException
	handlerBlock = BlockClosure [] in [] in WindowManager>>newProcess
Context PC = 18

----------------------------------------------------------------------
optimized [] in WindowManager>>newProcess
Receiver:
	an UndefinedObject
Temporaries:
	.self = a WindowManager
Context PC = 15

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
	a BlockClosure
Instance Variables:
	method = CompiledBlock [] in WindowManager>>newProcess
	outerContext = nil
	copiedValues = a WindowManager
Arguments:
	anExceptionSelector = TerminateException
	handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority:
Context PC = 18

----------------------------------------------------------------------
optimized [] in Process class>>forBlock:priority:
Receiver:
	an UndefinedObject
Temporaries:
	.aBlock = BlockClosure [] in WindowManager>>newProcess
Context PC = 9
Reply | Threaded
Open this post in threaded view
|

Re: DotNet-Connect cannot load an assembly

Ralf Propach
Hi Dimitri,

in the class definition for ActiveX_3DPlayBrowserExternalInterface,
what is the value for libraryDirectories? Is it the directory where your
DLL is located?
With your Visual Studio installation comes a program dumpbin.exe. Run
dumpbin /headers <your dll>. What is the output?

Regards,
Ralf

Am 01.07.2013 14:21, schrieb Dimitri Gheysels:

> Finally, I'm able to generate the stubs for my 64bit DLL.  But when I try to
> create an new object from a class which is defined in the DLL, I get this
> exception:
>
> "Unhandled exception: External object not found".
>
> What could be the reason for this exception ?  Below, I copy-paste the
> stacktrace.
> The 'anExternal' variable has a reference to 1 library, my DLL file.  My DLL
> file is registered (regasm.exe) and also resides in my GAC
> (windows/Microsoft.NET/assembly).
>
> I needed to do some minor changes:
>   - dotnet-connect still referred to 'windows/assembly', while since .NET
> 4.0, it should be 'windows/Microsoft.NET/assembly'
>   - the batch file to compile the sources still tried to compile against a 32
> bit platform
>
>
>
>
>
> --
> View this message in context: http://forum.world.st/DotNet-Connect-cannot-load-an-assembly-tp4696023p4696570.html
> Sent from the VisualWorks mailing list archive at Nabble.com.
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: DotNet-Connect cannot load an assembly

Dimitri Gheysels
Hi Ralf,

The libraryDirectories for ActiveX_3DPlayBrowserExternalInterface is empty.  In the libraryFiles, however, there is 1 libraryholder with a library named: 'ActiveX_3DPlayBrowserProxy.dll', the 'directoríes' collection for this library is empty.

The dumpbin of my DLL file gives me this:

Microsoft (R) COFF/PE Dumper Version 11.00.50727.1
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file c:\orad\3DPlay64_5_0\Browser\ActiveX_3DPlayBrowser.dll

PE signature found

File Type: DLL

FILE HEADER VALUES
            8664 machine (x64)
               2 number of sections
        517F6C1F time date stamp Tue Apr 30 09:00:47 2013
               0 file pointer to symbol table
               0 number of symbols
              F0 size of optional header
            2022 characteristics
                   Executable
                   Application can handle large (>2GB) addresses
                   DLL

OPTIONAL HEADER VALUES
             20B magic # (PE32+)
            8.00 linker version
            8200 size of code
            4000 size of initialized data
               0 size of uninitialized data
               0 entry point
            2000 base of code
          400000 image base (0000000000400000 to 000000000040FFFF)
            2000 section alignment
             200 file alignment
            4.00 operating system version
            0.00 image version
            4.00 subsystem version
               0 Win32 version
           10000 size of image
             200 size of headers
            D6D2 checksum
               3 subsystem (Windows CUI)
            8540 DLL characteristics
                   Dynamic base
                   NX compatible
                   No structured exception handler
                   Terminal Server Aware
          400000 size of stack reserve
            4000 size of stack commit
          100000 size of heap reserve
            2000 size of heap commit
               0 loader flags
              10 number of directories
               0 [       0] RVA [size] of Export Directory
               0 [       0] RVA [size] of Import Directory
            C000 [    3F98] RVA [size] of Resource Directory
               0 [       0] RVA [size] of Exception Directory
               0 [       0] RVA [size] of Certificates Directory
               0 [       0] RVA [size] of Base Relocation Directory
            A110 [      1C] RVA [size] of Debug Directory
               0 [       0] RVA [size] of Architecture Directory
               0 [       0] RVA [size] of Global Pointer Directory
               0 [       0] RVA [size] of Thread Storage Directory
               0 [       0] RVA [size] of Load Configuration Directory
               0 [       0] RVA [size] of Bound Import Directory
               0 [       0] RVA [size] of Import Address Table Directory
               0 [       0] RVA [size] of Delay Import Directory
            2000 [      48] RVA [size] of COM Descriptor Directory
               0 [       0] RVA [size] of Reserved Directory


SECTION HEADER #1
   .text name
    81BA virtual size
    2000 virtual address (0000000000402000 to 000000000040A1B9)
    8200 size of raw data
     200 file pointer to raw data (00000200 to 000083FF)
       0 file pointer to relocation table
       0 file pointer to line numbers
       0 number of relocations
       0 number of line numbers
60000020 flags
         Code
         Execute Read

  Debug Directories

        Time Type       Size      RVA  Pointer
    -------- ------ -------- -------- --------
    517F6C1F cv           8E 0000A12C     832C    Format: RSDS, {C8F55BD5-AB07-4F07-A831-4FE98FECF6EC}, 1, d:\SandboxPool\s_3DPlay_5_0_x64\src\Client\3DPlayBrowser\PlayBrowserActiveX\obj\x64\Release\ActiveX_3DPlayBrowser.pdb

SECTION HEADER #2
   .rsrc name
    3F98 virtual size
    C000 virtual address (000000000040C000 to 000000000040FF97)
    4000 size of raw data
    8400 file pointer to raw data (00008400 to 0000C3FF)
       0 file pointer to relocation table
       0 file pointer to line numbers
       0 number of relocations
       0 number of line numbers
40000040 flags
         Initialized Data
         Read Only

  Summary

        4000 .rsrc
        A000 .text