Microsoft recommends that these DLL files are to be installed into the WINDOWS\SYSTEM directory. However, due to some indifferent practices by software vendors, in some cases the DLL files were installed into the WINDOWS directory instead of WINDOWS\SYSTEM directory - leaving two copies/versions of DLL files in both the WINDOWS and WINDOWS\SYSTEM directories. Creative adopts Microsoft recommendation, therefore the CTL3D.DLL/BWCC.DLL files are always installed into the WINDOWS\SYSTEM directory.
Windows' search sequences for the DLL files are as follows:
1. It will check for the required DLL file in the WINDOWS directory, if found
it will attempt to load that DLL file, if not found it proceeds to step 2.
2. If the DLL file is not found in the WINDOWS directory, it will search the
SYSTEM directory, if found it will attempt to load that DLL file, if not
found it proceeds to step 3.
3. If the DLL file is not found in the WINDOWS\SYSTEM directory, it will
search the execution directory (the directory that the program was
executed), if found it will attempt to load that DLL file, if not found,
it will give you error message "Cannot find CTL3D.DLL" or "Cannot find
BWCC.DLL".
In the case of (1), if an earlier version of CTL3D.DLL/BWCC.DLL was found, and that particular software that you are executing requires a later version of CTL3D.DLL/BWCC.DLL, then the error message "Call to Undefined Dynalink" will occur. Later versions of CTL3D.DLL/BWCC.DLL, however, are downward compatible and therefore should not generate the error message "Call to Undefined Dynalink" when executing with software that uses an earlier version.
When trouble-shooting the error message "Call to Undefined Dynalink", you should check and make sure that there is no CTL3D.DLL/BWCC.DLL existing in the WINDOWS directory. You are advised to remove/rename them if these DLL files are found in the WINDOWS directory. This will force Windows to search the WINDOWS\SYSTEM directory and therefore load the right copy of CTL3D.DLL/BWCC.DLL.