-1

I have an old site that I was tasked with fixing after it broke. We are getting the following error:

ActiveX component can't create object for aBRR.Generato`r

The code on that line is:

set taMaker = createObject("aBRR.Generator")

I found the DLL aBRR.dll on an old machine. I believe it needs to go in:

e$\components\COM+\theAppName\
  1. To install it in the COM+ folder do I just drop it in there? Is there anything else?
  2. Do I just add the IUSR with what permissions to the DLL?

I think that was done but it's still giving the error.

cdub
  • 24,555
  • 57
  • 174
  • 303
  • Possible duplicate of [Error ASP 0177: 8007007e Server.CreateObject fails for COM DLL](https://stackoverflow.com/questions/35976543/error-asp-0177-8007007e-server-createobject-fails-for-com-dll) – user692942 Aug 09 '18 at 01:37
  • 1
    This might be another Windows Update KB4340558 issue. Here's a recent question is a must read for anyone who uses third party components with Classic ASP. https://stackoverflow.com/questions/51289285/how-do-i-properly-instantiate-32-bit-com-objects-in-classic-asp-after-installing – John Aug 12 '18 at 17:26

1 Answers1

0

If it's a classic COM DLL, you simply need to register it with regsvr32.

However, if the library depends on COM+, you need to place it inside a COM+ application. That way, any call to createObject() gets intercepted by the COM+ catalog manager, which ensures that that the object receives additional services.

See this link for further details.

Aurora
  • 1,334
  • 8
  • 21
  • Nothing is simple when dealing with 32 / 64 bit COM. It’s important to remember that there are two copies of `regsvr32.exe` depending on where you are registering the COM DLL Library (64 / 32 bit Windows subsystems). – user692942 Aug 09 '18 at 01:40
  • regsvr32 is able deduce the bitness of the COM DLL and spawn another process, if necessary. See [this](https://stackoverflow.com/questions/18935163/registering-a-32-bit-dll-with-64-bit-regsvr32) post. – Aurora Aug 09 '18 at 09:30
  • That might be a feature *(not sure, first time I have heard of it)* but in the years I’ve used `regsvr32.exe` to register 32 bit COM it has never worked using the incorrect version. You can test it yourself and locate the entries in the 32/64 bit registries respectively. – user692942 Aug 09 '18 at 09:37
  • That's odd, since regsvr32 is supposed to detect bitness mismatch. I can confirm that it also works the other way around, i.e. using `SysWOW64\regsvr32` to register a 64-bit COM DLL. This spawns `System32\regsvr32`, which writes the entries to the correct registry hive. – Aurora Aug 09 '18 at 10:51
  • It would appear that this is now a feature, but it hasn't always been. It will entirely depend on what version of Windows you are running, safer to just understand how to use them in the first place and where they go when registered. – user692942 Aug 09 '18 at 20:08