[cvsnt] Problem with a DLL which is part of your package
tony.hoyle at march-hare.com
Fri Feb 22 10:00:02 GMT 2008
Oliver Schneider wrote:
> The setup package of CVSNT apparently ships with the file
> "u3dapi10.dll". This file has apparently to do with the U3 system
> available for some USB memory sticks. Since CVSNT is registered with
> the PATH environment variable, it becomes part of the DLL search path
> as well.
There is only one version of this DLL, and its version number is in its
name so if they ever produce a 2.0 version for example it would be
called something different (it's unlikely there will be another version
though, U3 never took off).
> Is it necessary to put this DLL into the DLL search path by default?
This file is *not* in the PATH. It's in a march hare specific directory
on Common Files. There is in fact very little placed directly in the
path on CVSNT (and even that is only for running from the command line -
tortoiecvs doesn't need it, since it can use the simcvs stub).
The list is presently: cvsapi.dll mdnsclient.dll cvstools.dll cvs.exe
cvsdiag.exe extnt.exe cvslock.exe cvsagent.exe
In addition cvsnt places itself last in the search path to avoid
accidentally interfering with any installed applications.
> after checking static dependencies and it just works fine. Only the
> combination of PATH with this DLL makes it a problem in the first
> place, basically creating the infamous "DLL hell".
No application should be relying on PATH for its dependent DLLs. Some
do, but in practice most of those can be modified so they don't need it,
since simply placing its DLLs in the same directory as the EXE is enough
for most - the EXE directory is always first in the search path.
DLL hell in modern setups is caused by applications using System32
rather than their own directories.. we've had awful trouble with
iconv.dll being dumped there by some applications for example which
breaks the control panel. That's why CVSNT avoids using System32 even
for system files like the C library - not worth the pain it causes.
More information about the cvsnt