Microsoft KB Archive/195228

= BUG: TCProps.dll Fails to Register During Setup =

Article ID: 195228

Article Last Modified on 11/18/2003

-

APPLIES TO


 * Microsoft Visual C++ 6.0 Enterprise Edition
 * Microsoft Visual C++ 6.0 Professional Edition
 * Microsoft Visual C++ 6.0 Standard Edition

-



This article was previously published under Q195228



SYMPTOMS
During the "setup is updating your system" phase of installation, you might receive the following error message:

TCPROPS.DLL was unable to register itself in the system registry.



CAUSE
TCProps.dll is created using ATL. ATL registration requires 8.3 file name support. The registration fails when 8.3 file name support is turned off using the System Policy Editor.



RESOLUTION
Use one of the following to work around this problem:

Workaround A

 * 1) Uninstall Visual C++.
 * 2) Use the Policy Editor to turn on long file name support.
 * 3) Install Visual C++.

Workaround B

 * 1) Uninstall Visual C++.
 * 2) Install Visual C++ into a directory with an 8.3 name instead of the default location.

Workaround C
 Copy TCProps.dll into a directory with an 8.3 name (such as C:\Winnt). Register TCProps.dll by executing it from the command prompt as follows:

regsvr32 tcprops.dll





STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.



MORE INFORMATION
To find out if a directory has a short filename, change directories to its parent directory. The execute dir /ad /x. If the directory name is not an 8.3 name, there is no 8.3 name next to it and TCProps.dll resides in that directory or a child directory, it fails to register.

Steps to Reproduce Behavior

 * 1) Install Windows NT 4.0 Service Pack 3, and disable 8.3 FileName creation with the System Policy Editor (under Local Computer\Windows NT System\File System\Do not create 8.3 names for long file names).
 * 2) Restart. (Use "dir /x" to verify that creating long directories does not create the short paths.)
 * 3) Create an ATL DLL or load the TCPROPS Project mentioned previously.
 * 4) Create a long directory name and throw the DLL in it.
 * 5) Try to register the DLL with RegSvr32.exe.

RESULT: One of the following return codes should appear:

  0x0000007E - "The specified module could not be found" 0x80070002 - "The system cannot find the file specified."

