>I know how, but ....
>
>When I register a .DLL, do I have to reregister it everytime my app starts? Everytime I reboot?
>
No, whenever the information about the .DLL's location or version is altered, assuming that the .DLL requires self-registration (ie it's an in-process COM object or ActiveX control, or the registry is used to hold some reference data for it.) If you're registering an ActiveX control or in-proc COM server that is not on a local system because you don't want to put it on each user's system, you're just being suicidal and deserve to have things break...and the most likely brain-dead cause is installation slop and failure to follow a simple maxim unless you have a really good reason not to do so, meaning that you would not be asking this question:
Install the ActiveX control or COM server locally on each systemIf this is the problem, fix your install and get it right quickly. You'll really get badly nailed by pending changes to how apps find things like controls/COM servers that are version-sensitive in Win2K.
>Is there a danger in registering more than once? Do they stack up in memory or are they only registered again if they don't currently exist?
>
Only one set of references is active in the registry with a given registry key is active at any given time. Last guy standing wins. If you have two files competing for the same registry key that are not identical, someone is not going to be happy about the registyr war.
>I'm having a problem with a .DLL getting unregistered sometimes and am wondering how best to handle it.
>
You're probably looking at versioning issues, or something monkeying unintelligently in the registry, or, in the case of NT or Win2K, an environment where some hives of the registry have been secured from having changes retained (or even allowed) if made by an unprivileged user. Or the impending messy death of a system registry. If it's happening frequently you need to figure out why unless you like watching the app or the user's system play Crash Test Dummy at the least opportune possible moment.