Regsvr32 weird behavior => Regsvr32 gives no success or error message

I have a directShow filter: MyFilter.ax

When I try to register MyFilter.ax with the Regsvr32 utility, it gives a NO message or any message (success or failure). But the filter is not registered.

The Regsvr32 utility works great for my other filters.

Why is Regsvr32 not reporting success or failure? . How can I debug my failure from Regsvr32? Any alternative utility for registering a directshow filter that can give a meaningful message?

Best regards

Update:

I am installing a clean win7 OS on a virtual machine. Then try registering. Come back again with no reply message from regsvr32.

But , then reinstall clean win7 OS on the virtual machine. Then do all the updates . And after I do the updates, regsvr32 worked and installed my filter .... I do not know what the cause of the regsvr32 error is and what update to fix. Or is it really an upgrade issue ...

+6
source share
4 answers

What can happen and demonstrate the mentioned behavior is that somewhere in your filter you are in a dead loop or endless wait, so the DllRegisterServer DLL never returns. In this case, you can see that every time you try to start regsvr32 Task Manager, you will see another process of regsvr32.exe working with or without processor consumption.

If this is what you have, you will need to connect using the debugger and see exactly where you have the dead loop ...

+3
source

Make sure you do not call regsvr32 with the / s option

+1
source

You can implement an application like regsvr32 yourself , you just need to load your target DLL and call the DllRegisterServer function. You can implement it in C #, for example, using the following p / invoke declaration:

[DllImport("yourdll.ax")] private static extern int DllRegisterServer(); 

You may be able to narrow down the problem this way.

Update:

I would try installing the Windows 7 Platform SDK and compiling your DirectShow filter. I saw compatibility issues before with older DirectX versions in Windows 7 (even missing DLLs), although I didn’t save the link (if someone reads this link, send it).

+1
source

I also had this problem, and here is what I did to understand what was wrong:

Install the DLL as a startup project.
Go to configuration properties -> Debugging: install the command in c:\windows\syswow64\regsvr32.exe (or the 32-bit version if you use the 32-bit system in c:\windows\system32\regsvr32.exe )
Set the command arguments to the full path to your dll
Run in debug mode, you will see a pop-up window in which your dll is correctly registered, and then the execution will hang.
Click to pause execution
Check the Threads debug window and check which threads are currently active. Check their call stacks, since most threads (in my case) hang in the ntdll.dll file

+1
source

Source: https://habr.com/ru/post/894760/


All Articles