du hast "var reg: TRegistry; " nur lokal definiert.... deswegen kannst du es mit reg.free nicht freigeben, weil es garnicht in der prozedur existiert.
du musst es in der
DLL global definieren.
außerdem ist das was du in die
DLL auslagern willst bestimmt nocht nicht alles!? du willst du bestimmt noch nen wert zurückbekommen?
grüße, paresy