- NSIS Discussion
- installer crash during regsvr32
Archive: installer crash during regsvr32
Idioteque
24th July 2004 10:53 UTC
installer crash during regsvr32
Hi I have a problem I cant solve.
I build my own codecpack.
I have recently switched to a open source mpeg2 decoder and splitter.
When the installer build by nsis tries to register the OsMpegSplitter.ax filter the installer crashes. I dont know what causes this because on some computers is crashes and on others is does not.
when I manually type regsvr32 OsMpegSplitter.ax the filter is registered and works.
The question then becomes, why does the installer crash. I have build in some waits between the different filters to be registerd but that is not it.
The installer can be found at :
http://www2.vhl.tudelft.nl/~rloggen/...-codecpack.exe
thx
kichik
24th July 2004 11:00 UTC
Nothing much can be said without the crash details, but if I had to guess, I'd say some dependencies for the DLL you're trying to register are not present or are present with a mismatching version.
Idioteque
24th July 2004 11:18 UTC
Event Type: Information
Event Source: DrWatson
Event Category: None
Event ID: 4097
Date: 24-7-2004
Time: 12:11:54
User: N/A
Computer: AD21
Description:
The application, , generated an application error The error occurred on 07/24/2004 @ 12:11:54.218 The exception generated was c0000005 at address 6483731F (<nosymbols>)
sorry didnt kown how long the message was :P
Hope this helps ??
kichik
24th July 2004 11:23 UTC
I'll have a look.
Please attach large files next time.
Idioteque
24th July 2004 11:27 UTC
the error message
kichik
24th July 2004 11:48 UTC
Crash log says the DLL caused the crash, before control is returned to NSIS. Try making sure all dependencies are presnt when calling RegDLL.
Idioteque
24th July 2004 12:32 UTC
Crash log says the DLL caused the crash, before control is returned to NSIS. Try making sure all dependencies are presnt when calling RegDLL.
the weird thing is, is that there are no dependencies as far as I know.
Because if I want to reg te file manually regsvr32 osMPEGSplitter.ax it works.
Idioteque
24th July 2004 12:35 UTC
I added the filter for you.
the May 28th 2004 Gabest Universal Open Source MPEG Splitter (Windows XP/2000/2003):
multipart rar file.
kichik
24th July 2004 13:02 UTC
Indeed it has no special dependencies... But it does try to call something that's no longer there. Can you use Dependency Walker to profile the installer and attach its log of a crashed installer along with Dr. Watson's new crash log? I want to see what OsMpegSplitter.ax is looking for.
Idioteque
24th July 2004 13:34 UTC
Here the file from de Dependency walker
there are some references to files not foudn but that's because I try to unload any exiting direct show filters.
thx in anycase for all the help :D
kichik
24th July 2004 13:35 UTC
You forgot to attach the file.
Idioteque
24th July 2004 13:36 UTC
part 1
Idioteque
24th July 2004 13:39 UTC
part2
Idioteque
24th July 2004 13:41 UTC
part 3
kichik
24th July 2004 13:59 UTC
According to that log, the problem seems to be that IR41_32.AX is unregistred, reregistered, unloaded and then OsMpegSplitter.ax tries to unload it. Are you trying to replace IR41_32.AX too?
Try adding /NOUNLOAD to the RegDLL command that registers IR41_32.AX. It looks like it loads itself again and waits for someone to unload it using CoFreeUnusedLibraries and not FreeLibrary as NSIS frees it.
I think calling CoFreeUnusedLibraries after unregitering and before registering the new DLLs should help. Try:
System::Call "ole32::CoFreeUnusedLibraries()"
and/or:
System::Call "ole32::CoFreeAllLibraries()"
Idioteque
24th July 2004 14:15 UTC
ok thx for the quick replies. Ill build a new version and include the added commands. I'll post the results
thx for the help resolving the nasty problem
kichik
11th November 2004 20:37 UTC
I have made a change to RegDLL that should fix this. Can you please try it? I have uploaded a compiled version.
Idioteque
18th November 2004 00:00 UTC
sorry worked around the problem so I have no way of testing this version