Ein Komponenten(COM) basierte DLL sollte immer registriert werden bevor man es benutzen kann.
Hierfür benutzt man normalerweise „regsvr32.exe COM.DLL“ von Windows. Aber Ausführen dieses Programs braucht Administrationsrechte.
Man kann erst mal versuchen den DLL unter „CURRENT_USER“ zu registrieren anstatt des „CURRENT_MACHINE“, das erreicht man im Normal fall mit:
„regsvr32.exe /i:user COM.DLL“
so ein Aufruf wird den „DllInstall“-Funktion der DLL aufrufen und der Schalter „user“ führt dazu, dass der DLL unter „CURRENT_USER“ registriert wird.
Alternative kann man bei selbst entwickelte DLLs dafür sorgen, dass der immer unter „CURRENT_USER“ registriert wird. Hierfür braucht man kurze Erweiterung in zwei Funktionen:
- DllRegisterServer
- DllUnregisterServer
In den beiden Funktionen muss man vor anderen Aufrufe folgende Funktion aufrufen :
„ATL::AtlSetPerUserRegistration(true);“
Jetzt DLL wird nur noch unter „CURRENT_USER“ registriert.