visual-studiodllregsvr32

What does the undocumented /c option do in regsvr32


I am updating a native C++ DLL with COM components from Visual Studio 6.0 to Visual Studio 2019. The original project has a post build event to register the the DLL

regsvr32 /s /c my.dll

Looking at the help screen for regsvr32 the /c option is not listed and an online search and even Microsoft online documentation did not turn up anything on a /c option for regsvr32. I realize with VS2019 I can select the register output option under Linker Properties but I'd like to know what the reason was for the /c option in the original project.

regsvr32 help screen

The option /c does appear to be a valid since using it does not generate an error message whereas use of other invalid options does. The help screen above was generated with

regsvr32 /z my.dll

Solution

  • Prior to Windows 2000 regsvr32 /c used to send its output to the console (and VC++ 6 dates back to 1998, when NT 3.x/4.0 were still alive and well).

    enter image description here

    This was also mentioned in JSI Tip 6434 which corrects the "to the computer" typo in Q288373.

    In Windows NT 4.0 and other previous operating systems, you could use the /C switch with Regsvr32.exe to send output to the console, which allowed you to script the process and test for the result. This functionality is no longer included in Windows NT 5.0 and higher.