Vielleicht erst mal was Grundsätzliches:
"normale" DLLs können und dürfen nicht registriert werden.
ActiveX-DLLs müssen registriert werden und verankern sich dabei in der Registry.
Man erkennt
ActiveX-DLLs daran, dass sie 1.) eine TLB als Resource in sich tragen und
2.) folgende Standard Einsprungsfunktionen haben:
Delphi-Quellcode:
function DllGetClassObject(
const CLSID, IID: TGUID;
var Obj): HResult;
stdcall;
function DllCanUnloadNow: HResult;
stdcall;
function DllRegisterServer: HResult;
stdcall;
function DllUnregisterServer: HResult;
stdcall;
Sobald man in einem Projekt die
Unit ComServ einbindet, sorgt die
VCL dafür, dass obige Funktionen vorhanden sind.
Eine "normale"
DLL, die aber
COM-Objekte benützt, braucht und darf nicht registriert werden.
(Sie hat ja auch keine TLB an bord)