can not register a dll with regsvr32 in xp

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

can not register a dll with regsvr32 in xp

Martin Rubi
Hello everybody.
I'm making my firt dll deployments using Dolphin 5. I'm deploying from Win
2k, and when I test the component in a win2k, it all goes well. But when I
try to run regsvr32 with the dll in a Win XP, a crash occurs and the
registration fails. Any ideas what am I missing (I don't usually use XP, so
I can be missing some very basic things)?

The dll uses shells and dialogs, so I'm using this modified SessionManager:

-------------
"Filed out from Dolphin Smalltalk XP"!

GUISessionManager subclass: #AXDllGUISessionManager
 instanceVariableNames: ''
 classVariableNames: ''
 poolDictionaries: ''
 classInstanceVariableNames: ''!
AXDllGUISessionManager guid: (GUID fromString:
'{26EA10D0-AC6B-438E-B012-B2942FD3F062}')!
AXDllGUISessionManager comment: ''!
!AXDllGUISessionManager categoriesForClass!System-Support! !
!AXDllGUISessionManager methodsFor!

basicTertiaryStartup
 "Perform fundamental tertiary system startup operations."

 self embeddedStartup!

isDLL
 "Private - Answer whether the receiver is a shared library, as opposed to
an application."

 ^true!

keepAlive
 "We stay alive until the host process unloads us."

 ^self!

logError: anException
 "Append details about the unhandled exception, anException, to the session
error log.
 Ignored for runtime systems, but it is suggested that subclasses perform
some appropriate
 form of error logging. Here we are using the VM's dump facility to append a
short
 but informative log each time an error occurs, to <exe name>.ERRORS."

 VMLibrary default dump: anException description path: nil stackDepth: 60
walkbackDepth: 50!

openConsoleStreams
 "Private - Open the standard console I/O streams."

 "Do nothing - when running as a DLL we cannot assume we have access to the
console"

 !

unhandledException: anException
 "Private - The unhandled Exception, anException, occurred in the active
Process.
 Depending on the user response and the resumability of the exception,
either
 resume or terminate the process.
 Note: The exception response protocol (#resume, #pass, #outer, #exit, etc)
 can only be sent to an Exception inside a handler block (i.e. the second
 argument to BlockClosure>>on:do:)."

 self logError: anException.
 anException isResumable ifFalse: [
  "Note that unlike a GUI session (which is event driven), we kill the
entire session in the event
    of an unhandled unresumable error. If you are writing a multi-threaded
server then you may
   want to override this behaviour to just kill the faulting <Process>."
  self quit: -1].
 "Resume execution"
 ^anException! !
!AXDllGUISessionManager categoriesFor:
#basicTertiaryStartup!operations-startup!public! !
!AXDllGUISessionManager categoriesFor: #isDLL!private!testing! !
!AXDllGUISessionManager categoriesFor: #keepAlive!idling!public! !
!AXDllGUISessionManager categoriesFor: #logError:!operations-logging!public!
!
!AXDllGUISessionManager categoriesFor:
#openConsoleStreams!operations!private! !
!AXDllGUISessionManager categoriesFor:
#unhandledException:!exceptions!private! !

!AXDllGUISessionManager class methodsFor!

icon
 "Answers an Icon that can be used to represent this class"

 ^Icon fromId: 154 in: ShellLibrary default
!

imageExtension
 "Answer the suffix for an executable image file"

 ^'dll'!

isRuntime
 "Answer whether the sessions managed by instances of the receiver are for a
run-time applications
 (as opposed to development, or abstract)."

 ^true! !
!AXDllGUISessionManager class categoriesFor:
#icon!constants!development!must strip!public! !
!AXDllGUISessionManager class categoriesFor:
#imageExtension!constants!public! !
!AXDllGUISessionManager class categoriesFor: #isRuntime!public!testing! !


-------------

And running regsvr32 creates 2 crash dumps:

-------------

************************** Dolphin Virtual Machine Dump Report
***************************

14:36:32, 09/02/2006: UndefinedObject does not understand #value

*----> VM Context <----*
Process: {00F00004:size 249 words, suspended frame 00F003F1, priority 8,
callbacks 0
last failure 0:nil, FPE mask 3, thread nil}
Active Method: AXDllGUISessionManager>>logError:
IP: 00EC30E7 (15)
SP: 00F00494
BP: 00F0046C (266)
ActiveFrame: {00F00470: cf 00F00455, sp 00F00484, bp 00F0046C, ip 5,
AXDllGUISessionManager>>logError:}
 receiver: a AXDllGUISessionManager
 arg[0]: a MessageNotUnderstood


New Method: VMLibrary>>dump:path:stackDepth:walkbackDepth:
Message Selector: #dump:path:stackDepth:walkbackDepth:

*----> Stack <----*
[00F00494: 276]-->50
[00F00490: 275]-->60
[00F0048C: 274]-->nil
[00F00488: 273]-->'UndefinedObject does not understand #value'
[00F00484: 272]-->a VMLibrary
[00F00480: 271]-->7864886
[00F0047C: 270]-->AXDllGUISessionManager>>logError:
[00F00478: 269]-->7864898
[00F00474: 268]-->8
[00F00470: 267]-->7864874
[00F0046C: 266]-->a MessageNotUnderstood
[00F00468: 265]-->a AXDllGUISessionManager
[00F00464: 264]-->7864872
[00F00460: 263]-->AXDllGUISessionManager>>unhandledException:
[00F0045C: 262]-->7864882
[00F00458: 261]-->7
[00F00454: 260]-->7864860
[00F00450: 259]-->a MessageNotUnderstood
[00F0044C: 258]-->a AXDllGUISessionManager
[00F00448: 257]-->7864858
[00F00444: 256]-->SessionManager>>onUnhandledError:
[00F00440: 255]-->7864868
[00F0043C: 254]-->3
[00F00438: 253]-->7864846
[00F00434: 252]-->a MessageNotUnderstood
[00F00430: 251]-->a AXDllGUISessionManager
[00F0042C: 250]-->7864846
[00F00428: 249]-->Error>>defaultAction
[00F00424: 248]-->7864854
[00F00420: 247]-->8
...
<215 slots omitted>
...
[00F000C0: 31]-->a MethodContext for: BlockClosure>>ifCurtailed: frame:
f000b1 receiver: [] @ 808006 in nil
[00F000BC: 30]-->BlockClosure>>ifCurtailed:
[00F000B8: 29]-->7864420
[00F000B4: 28]-->20
[00F000B0: 27]-->7864398
[00F000AC: 26]-->7864394
[00F000A8: 25]-->BlockClosure>>ensure:
[00F000A4: 24]-->7864406
[00F000A0: 23]-->7
[00F0009C: 22]-->7864382
[00F00098: 21]-->nil
[00F00094: 20]-->[] @ 34 in ExceptionHandlerAbstract>>try:
[00F00090: 19]-->[] @ 15 in ExceptionHandlerAbstract>>try:
[00F0008C: 18]-->a MethodContext for: ExceptionHandlerAbstract>>try: frame:
f0007d receiver: a ExceptionHandler
[00F00088: 17]-->ExceptionHandlerAbstract>>try:
[00F00084: 16]-->7864390
[00F00080: 15]-->42
[00F0007C: 14]-->7864372
[00F00078: 13]-->7864368
[00F00074: 12]-->BlockClosure>>on:do:
[00F00070: 11]-->7864380
[00F0006C: 10]-->10
[00F00068: 9]-->7864356
[00F00064: 8]-->[] @ 12 in BlockClosure>>newProcess
[00F00060: 7]-->ProcessTermination
[00F0005C: 6]-->[] @ 8 in InputState>>forkMain
[00F00058: 5]-->[] @ 6 in BlockClosure>>newProcess
[00F00054: 4]-->BlockClosure>>newProcess
[00F00050: 3]-->7864364
[00F0004C: 2]-->20
[00F00048: 1]-->0
<Bottom of stack>

*----> Stack Back Trace <----*
{00F00470: cf 00F00455, sp 00F00484, bp 00F0046C, ip 5,
AXDllGUISessionManager>>logError:}
 receiver: a AXDllGUISessionManager
 arg[0]: a MessageNotUnderstood

{00F00454: cf 00F00439, sp 00F00464, bp 00F00450, ip 4,
AXDllGUISessionManager>>unhandledException:}
 receiver: a AXDllGUISessionManager
 arg[0]: a MessageNotUnderstood

{00F00438: cf 00F0041D, sp 00F00448, bp 00F00434, ip 4,
AXDllGUISessionManager(SessionManager)>>onUnhandledError:}
 receiver: a AXDllGUISessionManager
 arg[0]: a MessageNotUnderstood

{00F0041C: cf 00F00405, sp 00F0042C, bp 00F0041C, ip 5,
MessageNotUnderstood(Error)>>defaultAction}
 receiver: a MessageNotUnderstood

{00F00404: cf 00F003F1, sp 00F00414, bp 00EBFAC8, ip 57,
MessageNotUnderstood(Exception)>>_propagateFrom:}
 receiver: a MessageNotUnderstood
 arg[0]: a ExceptionHandler
 temp[0]: nil
 temp[1]: a ExceptionHandler
 temp[2]: nil
 temp[3]: a Process('Main' base 00F00000 [ACTIVE] in
AXDllGUISessionManager>>logError: sp=00000000 ip=8 list=nil)
 temp[4]: nil

{00F003F0: cf 00F003D5, sp 00F00400, bp 00F003EC, ip 6,
MessageNotUnderstood(Exception)>>_propagate}
 receiver: a MessageNotUnderstood
 temp[0]: nil

{00F003D4: cf 00F003BD, sp 00F003E4, bp 00F003D4, ip 12,
MessageNotUnderstood(Exception)>>signal}
 receiver: a MessageNotUnderstood

{00F003BC: cf 00F0039D, sp 00F003CC, bp 00F003B4, ip 13,
MessageNotUnderstood class>>receiver:message:}
 receiver: MessageNotUnderstood
 arg[0]: nil
 arg[1]: Message selector: #value arguments: a Array

{00F0039C: cf 00F00381, sp 00F003AC, bp 00F00398, ip 5,
UndefinedObject(Object)>>doesNotUnderstand:}
 receiver: nil
 arg[0]: Message selector: #value arguments: a Array

{00F00380: cf 00F00365, sp 00F00390, bp 00EBFA58, ip 25, [] in
AXDllGUISessionManager(SessionManager)>>argv}
 receiver: a AXDllGUISessionManager
 temp[0]: a CRTLibrary
 temp[1]: nil

{00F00364: cf 00F00349, sp 00F0037C, bp 00EBFA90, ip 18, [] in
StructureArray(ExternalArray)>>collect:}
 receiver: a StructureArray
 arg[0]: [] @ 22 in SessionManager>>argv
 temp[0]: a Array
 temp[1]: 1
 temp[2]: nil

{00F00348: cf 00F00321, sp 00F00360, bp 00F00338, ip 16,
StructureArray(ExternalArray)>>uncheckedFrom:to:keysAndValuesDo:}
 receiver: a StructureArray
 arg[0]: 1
 arg[1]: 2
 arg[2]: [] @ 11 in ExternalArray>>collect:
 temp[0]: 1

{00F00320: cf 00F002FD, sp 00F00330, bp 00F00314, ip 24,
StructureArray(ExternalArray)>>from:to:keysAndValuesDo:}
 receiver: a StructureArray
 arg[0]: 1
 arg[1]: 2
 arg[2]: [] @ 11 in ExternalArray>>collect:

{00F002FC: cf 00F002E1, sp 00F0030C, bp 00F002F8, ip 8,
StructureArray(ExternalArray)>>keysAndValuesDo:}
 receiver: a StructureArray
 arg[0]: [] @ 11 in ExternalArray>>collect:

{00F002E0: cf 00F002CD, sp 00F002F0, bp 00EBFA90, ip 21,
StructureArray(ExternalArray)>>collect:}
 receiver: a StructureArray
 arg[0]: [] @ 22 in SessionManager>>argv
 temp[0]: a Array
 temp[1]: 1
 temp[2]: nil

{00F002CC: cf 00F002B9, sp 00F002DC, bp 00EBFA58, ip 27,
AXDllGUISessionManager(SessionManager)>>argv}
 receiver: a AXDllGUISessionManager
 temp[0]: a CRTLibrary
 temp[1]: nil

{00F002B8: cf 00F002A5, sp 00F002C8, bp 00EBF978, ip 9,
AXDllGUISessionManager(SessionManager)>>cmdLineFlags}
 receiver: a AXDllGUISessionManager
 temp[0]: nil

{00F002A4: cf 00F00289, sp 00F002B4, bp 00F002A0, ip 3,
AXDllGUISessionManager(GUISessionManager)>>tertiaryStartup}
 receiver: a AXDllGUISessionManager
 temp[0]: nil

{00F00288: cf 00F00275, sp 00F00298, bp 00EBFA20, ip 65, [] in
AXDllGUISessionManager(SessionManager)>>onStartup:}
 receiver: a AXDllGUISessionManager
 arg[0]: a Array

{00F00274: cf 00F00255, sp 00F00284, bp 00F0026C, ip 7,
BlockClosure>>ensure:}
 receiver: [] @ 55 in SessionManager>>onStartup:
 arg[0]: [] @ 63 in SessionManager>>onStartup:
 temp[0]: SizeGrabber

{00F00254: cf 00F00239, sp 00F00264, bp 00EBFA20, ip 67, [] in
AXDllGUISessionManager(SessionManager)>>onStartup:}
 receiver: a AXDllGUISessionManager
 arg[0]: a Array

{00F00238: cf 00F00225, sp 00F00250, bp 00EBF780, ip 17,
BlockClosure>>ifCurtailed:}
 receiver: [] @ 8421382 in nil
 arg[0]: [] @ 77 in SessionManager>>onStartup:
 temp[0]: nil
 temp[1]: nil
 temp[2]: nil

{00F00224: cf 00F00205, sp 00F00234, bp 00F0021C, ip 4,
BlockClosure>>ensure:}
 receiver: [] @ 35 in SessionManager>>onStartup:
 arg[0]: [] @ 77 in SessionManager>>onStartup:
 temp[0]: nil

{00F00204: cf 00F001F1, sp 00F00214, bp 00EBFA20, ip 86,
AXDllGUISessionManager(SessionManager)>>onStartup:}
 receiver: a AXDllGUISessionManager
 arg[0]: a Array

{00F001F0: cf 00F001D5, sp 00F00200, bp 00F001EC, ip 11,
ProcessorScheduler>>onStartup:}
 receiver: a ProcessorScheduler
 arg[0]: a Array

{00F001D4: cf 00F001B9, sp 00F001E4, bp 00EBF9B0, ip 11, [] in
ProcessorScheduler>>vmi:list:no:with:}
 receiver: a ProcessorScheduler
 arg[0]: 380
 arg[1]: nil
 arg[2]: 8
 arg[3]: a Array

{00F001B8: cf 00F001A5, sp 00F001D0, bp 00EBF9E8, ip 17,
BlockClosure>>ifCurtailed:}
 receiver: [] @ 8421382 in nil
 arg[0]: [] @ 16 in ProcessorScheduler>>vmi:list:no:with:
 temp[0]: nil
 temp[1]: nil
 temp[2]: nil

{00F001A4: cf 00F00181, sp 00F001B4, bp 00EBF9B0, ip 20,
ProcessorScheduler>>vmi:list:no:with:}
 receiver: a ProcessorScheduler
 arg[0]: 380
 arg[1]: nil
 arg[2]: 8
 arg[3]: a Array

{00F00180: cf 00F0015D, sp 00F001A0, bp 00F00174, ip 47,
AXDllImageStripper(ImageStripper)>>snapshot:}
 receiver: a AXDllImageStripper
 arg[0]: 'E:\home\xv-tech\binaries\release\overlayGraphicsAX.tmp'
 temp[0]: a AXDllGUISessionManager
 temp[1]: 6

{00F0015C: cf 00F00149, sp 00F0016C, bp 00EC81A0, ip 15,
AXDllImageStripper(ImageStripper)>>saveExecutable:}
 receiver: a AXDllImageStripper
 arg[0]: 'E:\home\xv-tech\binaries\release\overlayGraphicsAX.dll'
 temp[0]: 'E:\home\xv-tech\binaries\release\overlayGraphicsAX.tmp'
 temp[1]: nil
 temp[2]: true
 temp[3]: nil
 temp[4]: nil

{00F00148: cf 00F00131, sp 00F00158, bp 00F00148, ip 6,
MessageSend(MessageSendAbstract)>>value}
 receiver: a MessageSend

{00F00130: cf 00F00109, sp 00F00140, bp 00F00120, ip 44,
InputState>>loopWhile:}
 receiver: a InputState
 arg[0]: [] @ 6 in InputState>>mainLoop
 temp[0]: a MSG
 temp[1]: true
 temp[2]: a MessageSend

{00F00108: cf 00F000F5, sp 00F00118, bp 00EC65C0, ip 12,
InputState>>mainLoop}
 receiver: a InputState

{00F000F4: cf 00F000E1, sp 00F00104, bp 00EC65E0, ip 13, [] in
InputState>>forkMain}
 receiver: a InputState

{00F000E0: cf 00F000CD, sp 00F000F0, bp 00EC7778, ip 11,
ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry}
 receiver: a ExceptionHandler
 temp[0]: nil

{00F000CC: cf 00F000B1, sp 00F000DC, bp 00EC5810, ip 21, [] in
ExceptionHandler(ExceptionHandlerAbstract)>>try:}
 receiver: a ExceptionHandler
 arg[0]: [] @ 8 in InputState>>forkMain
 temp[0]: nil
 temp[1]: nil
 temp[2]: a Process('Main' base 00F00000 [ACTIVE] in
AXDllGUISessionManager>>logError: sp=00000000 ip=8 list=nil)

{00F000B0: cf 00F0009D, sp 00F000C8, bp 00EC57F0, ip 17,
BlockClosure>>ifCurtailed:}
 receiver: [] @ 8421382 in nil
 arg[0]: [] @ 34 in ExceptionHandlerAbstract>>try:
 temp[0]: nil
 temp[1]: nil
 temp[2]: nil

{00F0009C: cf 00F0007D, sp 00F000AC, bp 00F00094, ip 4,
BlockClosure>>ensure:}
 receiver: [] @ 15 in ExceptionHandlerAbstract>>try:
 arg[0]: [] @ 34 in ExceptionHandlerAbstract>>try:
 temp[0]: nil

{00F0007C: cf 00F00069, sp 00F0008C, bp 00EC5810, ip 39,
ExceptionHandler(ExceptionHandlerAbstract)>>try:}
 receiver: a ExceptionHandler
 arg[0]: [] @ 8 in InputState>>forkMain
 temp[0]: nil
 temp[1]: nil
 temp[2]: a Process('Main' base 00F00000 [ACTIVE] in
AXDllGUISessionManager>>logError: sp=00000000 ip=8 list=nil)

{00F00068: cf 00F00049, sp 00F00078, bp 00F00060, ip 7,
BlockClosure>>on:do:}
 receiver: [] @ 8 in InputState>>forkMain
 arg[0]: ProcessTermination
 arg[1]: [] @ 12 in BlockClosure>>newProcess

{00F00048: cf 00000001, sp 00F00058, bp 00EC77C0, ip 17, [] in
BlockClosure>>newProcess}
 receiver: [] @ 8 in InputState>>forkMain
 temp[0]: nil

<Bottom of stack>

***** End of dump *****


************************** Dolphin Virtual Machine Dump Report
***************************

14:36:32, 09/02/2006: Invalid access to memory location. Reading 0x4, IP
0x1001D555 (C:\Archivos de programa\XV-Tech\Squid\bin\overlayGraphicsAX.dll)

*----> VM Context <----*
Process: {00F00004:size 306 words, suspended frame 00F00401, priority 8,
callbacks 0
last failure 2:nil, FPE mask 3, thread nil}
Active Method: AXDllGUISessionManager>>logError:
IP: 00EC30E7 (15)
SP: 00F00578
BP: 00F00550 (323)
ActiveFrame: {00F00554: cf 00F00539, sp 00F00568, bp 00F00550, ip 5,
AXDllGUISessionManager>>logError:}
 receiver: a AXDllGUISessionManager
 arg[0]: a GPFault


New Method: VMLibrary>>dump:path:stackDepth:walkbackDepth:
Message Selector: #dump:path:stackDepth:walkbackDepth:

*----> Stack <----*
[00F00578: 333]-->50
[00F00574: 332]-->60
[00F00570: 331]-->nil
[00F0056C: 330]-->'Invalid access to memory location. Reading 0x4, IP
0x1001D555 (C:\Archivos de
programa\XV-Tech\Squid\bin\overlayGraphicsAX.dll)'
[00F00568: 329]-->a VMLibrary
[00F00564: 328]-->7865000
[00F00560: 327]-->AXDllGUISessionManager>>logError:
[00F0055C: 326]-->7865012
[00F00558: 325]-->8
[00F00554: 324]-->7864988
[00F00550: 323]-->a GPFault
[00F0054C: 322]-->a AXDllGUISessionManager
[00F00548: 321]-->7864986
[00F00544: 320]-->AXDllGUISessionManager>>unhandledException:
[00F00540: 319]-->7864996
[00F0053C: 318]-->7
[00F00538: 317]-->7864974
[00F00534: 316]-->a GPFault
[00F00530: 315]-->a AXDllGUISessionManager
[00F0052C: 314]-->7864972
[00F00528: 313]-->SessionManager>>onUnhandledError:
[00F00524: 312]-->7864982
[00F00520: 311]-->3
[00F0051C: 310]-->7864960
[00F00518: 309]-->a GPFault
[00F00514: 308]-->a AXDllGUISessionManager
[00F00510: 307]-->7864960
[00F0050C: 306]-->Error>>defaultAction
[00F00508: 305]-->7864968
[00F00504: 304]-->8
...
<272 slots omitted>
...
[00F000C0: 31]-->a MethodContext for: BlockClosure>>ifCurtailed: frame:
f000b1 receiver: [] @ 808006 in nil
[00F000BC: 30]-->BlockClosure>>ifCurtailed:
[00F000B8: 29]-->7864420
[00F000B4: 28]-->20
[00F000B0: 27]-->7864398
[00F000AC: 26]-->7864394
[00F000A8: 25]-->BlockClosure>>ensure:
[00F000A4: 24]-->7864406
[00F000A0: 23]-->7
[00F0009C: 22]-->7864382
[00F00098: 21]-->nil
[00F00094: 20]-->[] @ 34 in ExceptionHandlerAbstract>>try:
[00F00090: 19]-->[] @ 15 in ExceptionHandlerAbstract>>try:
[00F0008C: 18]-->a MethodContext for: ExceptionHandlerAbstract>>try: frame:
f0007d receiver: a ExceptionHandler
[00F00088: 17]-->ExceptionHandlerAbstract>>try:
[00F00084: 16]-->7864390
[00F00080: 15]-->42
[00F0007C: 14]-->7864372
[00F00078: 13]-->7864368
[00F00074: 12]-->BlockClosure>>on:do:
[00F00070: 11]-->7864380
[00F0006C: 10]-->10
[00F00068: 9]-->7864356
[00F00064: 8]-->[] @ 12 in BlockClosure>>newProcess
[00F00060: 7]-->ProcessTermination
[00F0005C: 6]-->[] @ 8 in InputState>>forkMain
[00F00058: 5]-->[] @ 6 in BlockClosure>>newProcess
[00F00054: 4]-->BlockClosure>>newProcess
[00F00050: 3]-->7864364
[00F0004C: 2]-->20
[00F00048: 1]-->0
<Bottom of stack>

*----> Stack Back Trace <----*
{00F00554: cf 00F00539, sp 00F00568, bp 00F00550, ip 5,
AXDllGUISessionManager>>logError:}
 receiver: a AXDllGUISessionManager
 arg[0]: a GPFault

{00F00538: cf 00F0051D, sp 00F00548, bp 00F00534, ip 4,
AXDllGUISessionManager>>unhandledException:}
 receiver: a AXDllGUISessionManager
 arg[0]: a GPFault

{00F0051C: cf 00F00501, sp 00F0052C, bp 00F00518, ip 4,
AXDllGUISessionManager(SessionManager)>>onUnhandledError:}
 receiver: a AXDllGUISessionManager
 arg[0]: a GPFault

{00F00500: cf 00F004E9, sp 00F00510, bp 00F00500, ip 5,
GPFault(Error)>>defaultAction}
 receiver: a GPFault

{00F004E8: cf 00F004D5, sp 00F004F8, bp 00EBFBE0, ip 57,
GPFault(Exception)>>_propagateFrom:}
 receiver: a GPFault
 arg[0]: a ExceptionHandler
 temp[0]: nil
 temp[1]: a ExceptionHandler
 temp[2]: nil
 temp[3]: a Process('Main' base 00F00000 [ACTIVE] in
AXDllGUISessionManager>>logError: sp=00000000 ip=8 list=nil)
 temp[4]: nil

{00F004D4: cf 00F004B9, sp 00F004E4, bp 00F004D0, ip 6,
GPFault(Exception)>>_propagate}
 receiver: a GPFault
 temp[0]: nil

{00F004B8: cf 00F004A1, sp 00F004C8, bp 00F004B8, ip 12,
GPFault(Exception)>>signal}
 receiver: a GPFault

{00F004A0: cf 00F00481, sp 00F004B0, bp 00F00498, ip 8, GPFault
class(Win32Fault class)>>signal:with:}
 receiver: GPFault
 arg[0]: nil
 arg[1]: a EXCEPTION_RECORD

{00F00480: cf 00F00465, sp 00F00490, bp 00F0047C, ip 5, GPFault
class(Exception class)>>signalWith:}
 receiver: GPFault
 arg[0]: a EXCEPTION_RECORD

{00F00464: cf 00F00445, sp 00F00474, bp 00F0045C, ip 11,
ProcessorScheduler>>gpFault:}
 receiver: a ProcessorScheduler
 arg[0]: a ByteArray
 temp[0]: a EXCEPTION_RECORD

{00F00444: cf 00F00429, sp 00F00454, bp 00EBFB00, ip 11, [] in
ProcessorScheduler>>vmi:list:no:with:}
 receiver: a ProcessorScheduler
 arg[0]: 1020
 arg[1]: nil
 arg[2]: 5
 arg[3]: a ByteArray

{00F00428: cf 00F00415, sp 00F00440, bp 00EBFB38, ip 17,
BlockClosure>>ifCurtailed:}
 receiver: [] @ 8421382 in nil
 arg[0]: [] @ 16 in ProcessorScheduler>>vmi:list:no:with:
 temp[0]: nil
 temp[1]: nil
 temp[2]: nil

{00F00414: cf 00F00401, sp 00F00424, bp 00EBFB00, ip 20,
ProcessorScheduler>>vmi:list:no:with:}
 receiver: a ProcessorScheduler
 arg[0]: 1020
 arg[1]: nil
 arg[2]: 5
 arg[3]: a ByteArray

{00F00400: cf 00F003D5, sp 00F00410, bp 00F003FC, ip 1,
ExternalAddress(Object)>>doesNotUnderstand:}
 receiver: a ExternalAddress
 arg[0]: Message selector: #+ arguments: a Array

{00F003D4: cf 00F003B5, sp 00F003F4, bp 00F003C8, ip 21,
SmallInteger(ExternalAddress)>>dwordAtOffset:}
 receiver: 7864794
 arg[0]: a ExternalAddress
 temp[0]: 0
 temp[1]: 3

{00F003B4: cf 00F00399, sp 00F003C0, bp 00F003B4, ip 4,
LPSTR(LPVOID)>>value}
 receiver: a LPSTR

{00F00398: cf 00F00381, sp 00F003AC, bp 00F00398, ip 5, LPSTR>>value}
 receiver: a LPSTR

{00F00380: cf 00F00365, sp 00F00390, bp 00EBFA58, ip 25, [] in
AXDllGUISessionManager(SessionManager)>>argv}
 receiver: a AXDllGUISessionManager
 temp[0]: a CRTLibrary
 temp[1]: a LPSTR

{00F00364: cf 00F00349, sp 00F0037C, bp 00EBFA90, ip 18, [] in
StructureArray(ExternalArray)>>collect:}
 receiver: a StructureArray
 arg[0]: [] @ 22 in SessionManager>>argv
 temp[0]: a Array
 temp[1]: 2
 temp[2]: a LPSTR

{00F00348: cf 00F00321, sp 00F00360, bp 00F00338, ip 16,
StructureArray(ExternalArray)>>uncheckedFrom:to:keysAndValuesDo:}
 receiver: a StructureArray
 arg[0]: 1
 arg[1]: 2
 arg[2]: [] @ 11 in ExternalArray>>collect:
 temp[0]: 2

{00F00320: cf 00F002FD, sp 00F00330, bp 00F00314, ip 24,
StructureArray(ExternalArray)>>from:to:keysAndValuesDo:}
 receiver: a StructureArray
 arg[0]: 1
 arg[1]: 2
 arg[2]: [] @ 11 in ExternalArray>>collect:

{00F002FC: cf 00F002E1, sp 00F0030C, bp 00F002F8, ip 8,
StructureArray(ExternalArray)>>keysAndValuesDo:}
 receiver: a StructureArray
 arg[0]: [] @ 11 in ExternalArray>>collect:

{00F002E0: cf 00F002CD, sp 00F002F0, bp 00EBFA90, ip 21,
StructureArray(ExternalArray)>>collect:}
 receiver: a StructureArray
 arg[0]: [] @ 22 in SessionManager>>argv
 temp[0]: a Array
 temp[1]: 2
 temp[2]: a LPSTR

{00F002CC: cf 00F002B9, sp 00F002DC, bp 00EBFA58, ip 27,
AXDllGUISessionManager(SessionManager)>>argv}
 receiver: a AXDllGUISessionManager
 temp[0]: a CRTLibrary
 temp[1]: a LPSTR

{00F002B8: cf 00F002A5, sp 00F002C8, bp 00EBF978, ip 9,
AXDllGUISessionManager(SessionManager)>>cmdLineFlags}
 receiver: a AXDllGUISessionManager
 temp[0]: nil

{00F002A4: cf 00F00289, sp 00F002B4, bp 00F002A0, ip 3,
AXDllGUISessionManager(GUISessionManager)>>tertiaryStartup}
 receiver: a AXDllGUISessionManager
 temp[0]: nil

{00F00288: cf 00F00275, sp 00F00298, bp 00EBFA20, ip 65, [] in
AXDllGUISessionManager(SessionManager)>>onStartup:}
 receiver: a AXDllGUISessionManager
 arg[0]: a Array

{00F00274: cf 00F00255, sp 00F00284, bp 00F0026C, ip 7,
BlockClosure>>ensure:}
 receiver: [] @ 55 in SessionManager>>onStartup:
 arg[0]: [] @ 63 in SessionManager>>onStartup:
 temp[0]: SizeGrabber

{00F00254: cf 00F00239, sp 00F00264, bp 00EBFA20, ip 67, [] in
AXDllGUISessionManager(SessionManager)>>onStartup:}
 receiver: a AXDllGUISessionManager
 arg[0]: a Array

{00F00238: cf 00F00225, sp 00F00250, bp 00EBF780, ip 17,
BlockClosure>>ifCurtailed:}
 receiver: [] @ 8421382 in nil
 arg[0]: [] @ 77 in SessionManager>>onStartup:
 temp[0]: nil
 temp[1]: nil
 temp[2]: nil

{00F00224: cf 00F00205, sp 00F00234, bp 00F0021C, ip 4,
BlockClosure>>ensure:}
 receiver: [] @ 35 in SessionManager>>onStartup:
 arg[0]: [] @ 77 in SessionManager>>onStartup:
 temp[0]: nil

{00F00204: cf 00F001F1, sp 00F00214, bp 00EBFA20, ip 86,
AXDllGUISessionManager(SessionManager)>>onStartup:}
 receiver: a AXDllGUISessionManager
 arg[0]: a Array

{00F001F0: cf 00F001D5, sp 00F00200, bp 00F001EC, ip 11,
ProcessorScheduler>>onStartup:}
 receiver: a ProcessorScheduler
 arg[0]: a Array

{00F001D4: cf 00F001B9, sp 00F001E4, bp 00EBF9B0, ip 11, [] in
ProcessorScheduler>>vmi:list:no:with:}
 receiver: a ProcessorScheduler
 arg[0]: 380
 arg[1]: nil
 arg[2]: 8
 arg[3]: a Array

{00F001B8: cf 00F001A5, sp 00F001D0, bp 00EBF9E8, ip 17,
BlockClosure>>ifCurtailed:}
 receiver: [] @ 8421382 in nil
 arg[0]: [] @ 16 in ProcessorScheduler>>vmi:list:no:with:
 temp[0]: nil
 temp[1]: nil
 temp[2]: nil

{00F001A4: cf 00F00181, sp 00F001B4, bp 00EBF9B0, ip 20,
ProcessorScheduler>>vmi:list:no:with:}
 receiver: a ProcessorScheduler
 arg[0]: 380
 arg[1]: nil
 arg[2]: 8
 arg[3]: a Array

{00F00180: cf 00F0015D, sp 00F001A0, bp 00F00174, ip 47,
AXDllImageStripper(ImageStripper)>>snapshot:}
 receiver: a AXDllImageStripper
 arg[0]: 'E:\home\xv-tech\binaries\release\overlayGraphicsAX.tmp'
 temp[0]: a AXDllGUISessionManager
 temp[1]: 6

{00F0015C: cf 00F00149, sp 00F0016C, bp 00EC81A0, ip 15,
AXDllImageStripper(ImageStripper)>>saveExecutable:}
 receiver: a AXDllImageStripper
 arg[0]: 'E:\home\xv-tech\binaries\release\overlayGraphicsAX.dll'
 temp[0]: 'E:\home\xv-tech\binaries\release\overlayGraphicsAX.tmp'
 temp[1]: nil
 temp[2]: true
 temp[3]: nil
 temp[4]: nil

{00F00148: cf 00F00131, sp 00F00158, bp 00F00148, ip 6,
MessageSend(MessageSendAbstract)>>value}
 receiver: a MessageSend

{00F00130: cf 00F00109, sp 00F00140, bp 00F00120, ip 44,
InputState>>loopWhile:}
 receiver: a InputState
 arg[0]: [] @ 6 in InputState>>mainLoop
 temp[0]: a MSG
 temp[1]: true
 temp[2]: a MessageSend

{00F00108: cf 00F000F5, sp 00F00118, bp 00EC65C0, ip 12,
InputState>>mainLoop}
 receiver: a InputState

{00F000F4: cf 00F000E1, sp 00F00104, bp 00EC65E0, ip 13, [] in
InputState>>forkMain}
 receiver: a InputState

{00F000E0: cf 00F000CD, sp 00F000F0, bp 00EC7778, ip 11,
ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry}
 receiver: a ExceptionHandler
 temp[0]: nil

{00F000CC: cf 00F000B1, sp 00F000DC, bp 00EC5810, ip 21, [] in
ExceptionHandler(ExceptionHandlerAbstract)>>try:}
 receiver: a ExceptionHandler
 arg[0]: [] @ 8 in InputState>>forkMain
 temp[0]: nil
 temp[1]: nil
 temp[2]: a Process('Main' base 00F00000 [ACTIVE] in
AXDllGUISessionManager>>logError: sp=00000000 ip=8 list=nil)

{00F000B0: cf 00F0009D, sp 00F000C8, bp 00EC57F0, ip 17,
BlockClosure>>ifCurtailed:}
 receiver: [] @ 8421382 in nil
 arg[0]: [] @ 34 in ExceptionHandlerAbstract>>try:
 temp[0]: nil
 temp[1]: nil
 temp[2]: nil

{00F0009C: cf 00F0007D, sp 00F000AC, bp 00F00094, ip 4,
BlockClosure>>ensure:}
 receiver: [] @ 15 in ExceptionHandlerAbstract>>try:
 arg[0]: [] @ 34 in ExceptionHandlerAbstract>>try:
 temp[0]: nil

{00F0007C: cf 00F00069, sp 00F0008C, bp 00EC5810, ip 39,
ExceptionHandler(ExceptionHandlerAbstract)>>try:}
 receiver: a ExceptionHandler
 arg[0]: [] @ 8 in InputState>>forkMain
 temp[0]: nil
 temp[1]: nil
 temp[2]: a Process('Main' base 00F00000 [ACTIVE] in
AXDllGUISessionManager>>logError: sp=00000000 ip=8 list=nil)

{00F00068: cf 00F00049, sp 00F00078, bp 00F00060, ip 7,
BlockClosure>>on:do:}
 receiver: [] @ 8 in InputState>>forkMain
 arg[0]: ProcessTermination
 arg[1]: [] @ 12 in BlockClosure>>newProcess

{00F00048: cf 00000001, sp 00F00058, bp 00EC77C0, ip 17, [] in
BlockClosure>>newProcess}
 receiver: [] @ 8 in InputState>>forkMain
 temp[0]: nil

<Bottom of stack>

***** End of dump *****

-------------
if someone reached this point: thanks in advance !
martin


Reply | Threaded
Open this post in threaded view
|

Re: can not register a dll with regsvr32 in xp

Chris Uppal-3
Martin Rubi wrote:

> I'm making my firt dll deployments using Dolphin 5. I'm deploying from Win
> 2k, and when I test the component in a win2k, it all goes well. But when I
> try to run regsvr32 with the dll in a Win XP, a crash occurs and the
> registration fails. Any ideas what am I missing (I don't usually use XP,
> so I can be missing some very basic things)?

It looks as if the crash starts when the session manager tries to access its
own #argv.  There have been problems reported before in that situation.  I
don't think that a COM deployment /has/ an #argv and you can get crashes trying
to access it.

For a quick-and-dirty fix, it might be sufficient to override #argv in your
session manager subclass to answer #().  For all I know that might be the
"correct" fix too, if not then you may be able to find something better in the
archives.

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: can not register a dll with regsvr32 in xp

Martin Rubi
Chris, many thanks, it does fix the problem.

best regards
martin

"Chris Uppal"
> Martin Rubi wrote:
>
> > I'm making my firt dll deployments using Dolphin 5. I'm deploying from
Win
> > 2k, and when I test the component in a win2k, it all goes well. But when
I
> > try to run regsvr32 with the dll in a Win XP, a crash occurs and the
> > registration fails. Any ideas what am I missing (I don't usually use XP,
> > so I can be missing some very basic things)?
>
> It looks as if the crash starts when the session manager tries to access
its
> own #argv.  There have been problems reported before in that situation.  I
> don't think that a COM deployment /has/ an #argv and you can get crashes
trying
> to access it.
>
> For a quick-and-dirty fix, it might be sufficient to override #argv in
your
> session manager subclass to answer #().  For all I know that might be the
> "correct" fix too, if not then you may be able to find something better in
the
> archives.
>
>     -- chris
>
>


Reply | Threaded
Open this post in threaded view
|

Re: can not register a dll with regsvr32 in xp

Don Rylander-3
Martin,
"Martin Rubi" <[hidden email]> wrote in message
news:[hidden email]...
[...]

>> It looks as if the crash starts when the session manager tries to access
> its
>> own #argv.  There have been problems reported before in that situation.
>> I
>> don't think that a COM deployment /has/ an #argv and you can get crashes
> trying
>> to access it.
>>
>> For a quick-and-dirty fix, it might be sufficient to override #argv in
> your
>> session manager subclass to answer #().  For all I know that might be the
>> "correct" fix too, if not then you may be able to find something better
>> in
> the
>> archives.
Chris was right about the problem, but when I had this problem in D5, Blair
suggested overriding #tertiaryStartup instead, so that it just invokes
#basicTertiaryStartup (see
http://groups.google.com/group/comp.lang.smalltalk.dolphin/browse_thread/thread/642958cc23bc3485/e73789607ef40e71?lnk=st&q=dolphin+smalltalk+in-process+tertiaryStartup&rnum=1&hl=en#e73789607ef40e71).

Based on a quick look, the X6 methods seem pretty similar.

HTH,

Don
[...]


Reply | Threaded
Open this post in threaded view
|

Re: can not register a dll with regsvr32 in xp

Martin Rubi
Don, thanks for pointing that out.
I've fixed my AXDllGUISessionManager with both of your advices (I left
Chris's advice just in case some object attemps to read the parameters using
SessionManager current)

Thanks a lot to both of you again.
martin

"Don Rylander" escribió en el mensaje
news:[hidden email]...
> Martin,
> "Martin Rubi" wrote in message
> news:[hidden email]...
> [...]
> >> It looks as if the crash starts when the session manager tries to
access
> > its
> >> own #argv.  There have been problems reported before in that situation.
> >> I
> >> don't think that a COM deployment /has/ an #argv and you can get
crashes
> > trying
> >> to access it.
> >>
> >> For a quick-and-dirty fix, it might be sufficient to override #argv in
> > your
> >> session manager subclass to answer #().  For all I know that might be
the
> >> "correct" fix too, if not then you may be able to find something better
> >> in
> > the
> >> archives.
> Chris was right about the problem, but when I had this problem in D5,
Blair
> suggested overriding #tertiaryStartup instead, so that it just invokes
> #basicTertiaryStartup (see
>
http://groups.google.com/group/comp.lang.smalltalk.dolphin/browse_thread/thread/642958cc23bc3485/e73789607ef40e71?lnk=st&q=dolphin+smalltalk+in-process+tertiaryStartup&rnum=1&hl=en#e73789607ef40e71).
>
> Based on a quick look, the X6 methods seem pretty similar.
>
> HTH,
>
> Don
> [...]
>
>


Reply | Threaded
Open this post in threaded view
|

Re: can not register a dll with regsvr32 in xp

Don Rylander-3
Martin,
"Martin Rubi" <[hidden email]> wrote in message
news:[hidden email]...
> Don, thanks for pointing that out.
> I've fixed my AXDllGUISessionManager with both of your advices (I left
> Chris's advice just in case some object attemps to read the parameters
> using
> SessionManager current)
>
> Thanks a lot to both of you again.
> martin
[...]

One more thing: I see that I also changed the #applicationName method, which
relies on #argv.  I think if you leave things as you have them,
#applicationName will always return 'Application'.  I changed it to:

applicationName
 "Answer the application name. Use the applications executable name."

 ^File splitFilenameFrom: SessionManager current imageFileName

Hope this helps, too!

Don