T
Tony Luxton
You're welcome, Gordon - glad we sorted it out. And thanks for posting back!
Regards Tony.
Regards Tony.
Sam said:As a developer, I can understand the value of cleaning the registry. I don't
know what the value is, but it makes sense that it would be worthwhile.
Sam said:As a developer, I can understand the value of cleaning the registry. I don't
know what the value is, but it makes sense that it would be worthwhile.
One thing that might need to be cleaned up is the information about
registered DLLs. If a registered DLL is (to be) deleted, Windows will warn
us that deleting the file could make other software fail. If we delete the
file anyway then the registration information lingers in the registry and
will never be removed unless it is cleaned by something such as a registry
cleaner. The orphaned registration information will not cause a problem that
I am aware of but there might be a combination of other conditions that
could result in a problem that is very difficult to diagnose.
For example, if a client of the registerd DLL were try to use the DLL then
it would get the registration information eventhough the DLL is gone. If the
developer of the client is sloppy and does not check for errors then it
might (I don't know for sure) crash and the user might then curse at
Microsoft for being sloppy.
In that situation, the guilty would be the
person that deleted the DLL or whatever. A registry cleaner should remove
the registration information since the registration information specifies a
DLL that does not exist. Note that there are many DLLs that get registered
that do not have a dll extension.
I certainly agree that it is very possible for a registry cleaner to mess up
a system. I am not familiar with any of them except there is or was a
registry cleaner provided by Microsoft for free that is nearly certainly
safe.
I recommend being skeptical of anyone saying that all registry cleaners are
unsafe. Continue in your quest for a safe one. Do of course be careful and
be skeptical of registry cleaners that the developer/provider is not well
known.
Bruce Chambers said:I'm sorry, but the above makes no sense, whatsover. If you don't know
the value of something, how can it possibly "Make sense" to you that
it's worthwhile?
How can you conclude that Microsoft's registry cleaner is safe, if
you're unfamiliar with registry "cleaners," in general? What sort of
leap of faith is that?
And I recommend being skeptical of a so-called, self-proclaimed
"developer" who admits about his ignorance of a subject (the registry
and registry cleaning) but then recommends that people so it anyway.
What software product(s) do you "develop?" I want to be sure to avoid
using it(them).
Bruce Chambers said:The above scenario would produce a clear error message stating that the
DLL could not be found, enabling one to reinstall the application that
still needs it. No need to remove the entry entirely from the registry,
because doing so would produce a more cryptic error, lacking the path to
the missing file.
Sam said:Do you understand the difference between a regular DLL that is not
registered and a COM object or other registered DLL that requires
registration for Windows to find? How does Windows find a COM object DLL or
other registered DLL? The following page shows a "Sample of the Registry
Entries for a Simple COM Object". Note that the page is in my web site; I
wrote that page.
http://simplesamples.info/Windows/COMandActiveX/COMRegistry.php
That sample is an out-of-process (local) server, which means it is an exe
specified in the LocalServer32 key. An in-process server is implemented in a
DLL and the location of them are specified in the InprocServer32 key.
The link in that page to "COM Registry Entries" is not working; the page is
at:
http://msdn2.microsoft.com/en-us/library/ms680055.aspx
That page in the MSDN does not say much but the "See Also" links have
relevant details. Those details are incomplete so it is necessary to do a
lot of reading to get some of the details I show in my sample.
That stuff shows how registered DLLs are located. There is no direct
indication in the exe file of what DLLs are used for COM objects (and such)
so it is not possible for Windows to issue an error message in the manner
you describe about a missing DLL that is registered and the client (program)
is using the server but not using the DLL as a regular DLL.
Bruce Chambers said:Thanks for providing the links to prove my point.