How to solve TYPE_E_ELEMENTNOTFOUND (0x8002802B) error loading old DLL?

1

I am trying to use old VB6-made DLLs in a VS2017 solution, but one of them started to fail last week.

I have registered them (regsvr32), added the references in the solution, and tried using the methods inside them.

Everything was going OK when I closed my VS2017 for lunch break on Friday, and when I tried resuming my work one of the DLLs started misbehaving.

The mentioned DLL throws a TYPE_E_ELEMENTNOTFOUND error like it is not even there and, obviously, I can't access the methods inside its class.

Location is not an issue here (tried using it from System32 and SysWOW64 with no luck), and it is still showing the

Could not determine the dependencies of the COM reference "prjPermisos". Element not found. (Exception from HRESULT: 0x8002802B (TYPE_E_ELEMENTNOTFOUND))

warning (not even an Error, but the IDE is still not letting me use the DLL.)

My code is as simple as can be:

prjPermisos.clsCarPermisos carPermisos = new prjPermisos.clsCarPermisos();
carPermisos.CargaPermisos(ref oUsuario, ref sError);   //<--"are you missing a using directive or an assembly reference?" error

Cleaned (both with the IDE and manually) the solution, Rebuilt, Built the solution and still nothing.

I am positive I am missing something here, I just don't know what.

Any help or guidance to the right direction is greatly appreciated.

c#
dll
vb6-migration
regsvr32
asked on Stack Overflow Feb 12, 2019 by Toño Pérez • edited Feb 12, 2019 by Toño Pérez

1 Answer

-1

SOLVED. Let's thank Murray Foxcroft for the idea.

Ran and recompiled the DLL project, replaced the faulting dll and everything was working again. -_-

answered on Stack Overflow Feb 12, 2019 by Toño Pérez

User contributions licensed under CC BY-SA 3.0