Archive: installer crash during regsvr32


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


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.


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 ??


I'll have a look.

Please attach large files next time.


the error message


Crash log says the DLL caused the crash, before control is returned to NSIS. Try making sure all dependencies are presnt when calling RegDLL.


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.


I added the filter for you.

the May 28th 2004 Gabest Universal Open Source MPEG Splitter (Windows XP/2000/2003):

multipart rar file.


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.


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


You forgot to attach the file.


part 1


part2


part 3


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()"

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


I have made a change to RegDLL that should fix this. Can you please try it? I have uploaded a compiled version.


sorry worked around the problem so I have no way of testing this version