Jump to content
SneakyPeaky99

class EOleSysError with message 'Class not registered'

Recommended Posts

Hello, i am trying to run a program and this type of error is displayed. Can anyone tell me what can i do fix it? I tried:

- Process Explorer to find if any dlls are missing (compared to working app installer of this project which is very old) - all good but i dont this program shows all of the dll used by this process.

- Dependency Walker - same thing

- Looking for this entry in win registry - nothing found

- Searching internet - nothing related

Below i pasted information where exception is thrown, and some information regarding this problem.

 

image.thumb.png.da824342192f583ab9d396a5ee44af55.png

image.thumb.png.02ee4690d7da8f98201158098760fb6f.png

image.thumb.png.daa839f29b157cfb61eaa5aa49b2e223.png

image.thumb.png.923e8b6d926bfc3d2e16decc636c87c6.png

 

Thank you.

Share this post


Link to post
12 minutes ago, SneakyPeaky99 said:

Can anyone tell me what can i do fix it?

Did you register that DLL with that specific class ?

You listed what you did but did not mention if it is registered for fact, loading a DLL doesn't mean the COM component is registered or known for the system.

 

as for search the internet, you should search for the error message first then try the GUID for that specific class, try "windows register com dll class" or something else and find how hard complex it is to register one.

Share this post


Link to post
1 minute ago, SneakyPeaky99 said:

The problem is that i dont know what is the name of that DLL.

Then try to register them all, no harm from that.

Share this post


Link to post

I run this program on working version of this application, than I have installed all of those dll mentioned in imports section, but the problem didnt disappear.

Can you tell me what am i doing wrong? Im not really an expert in this kind of stuff.
image.thumb.png.2d4515ec7a8feb5950451509934b440b.png

Share this post


Link to post

Isn't there a comment in the unit that names the type library the unit was created from?

 

A in-process COM server is implemented in a DLL, but that DLL is not explicitely imported by the application using the COM server, so you will not find it listed in the EXE's import section. Since the error message states that the server is not found the DLL may actually not be present on your development machine. Do you have access to a PC where the program you are working on is still running? You should be able to find the DLL there. 

Edited by PeterBelow

Share this post


Link to post

I managed to track down what could possibly be those missing .dlls names. Unfortunately I couldn't find them on any machine that this project was running on or was developed or on the internet... I will keep digging to find them. Thank you all for your replies, i will keep you informed with progress.

Share this post


Link to post

On a machine where the application is working, run regedit and look for an entry at one of these locations:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{AB885FB5-0A94-11DC-9263-0002B34C1718}
HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\{AB885FB5-0A94-11DC-9263-0002B34C1718}

 

If you find an entry at either location, look for a key named LocalServer or InProcServer32. The default value should be the full path of the file that contains the COM class.

 

  • Like 1

Share this post


Link to post
3 hours ago, SneakyPeaky99 said:

image.thumb.png.2d4515ec7a8feb5950451509934b440b.png

Drop the DLLs one by one in EXE Explorer, then in Resource tab check the Registry also you might find the TypeLib there,

image.thumb.png.eb9582fa0f0021e110cd26a3644349dc.png

 

And because you have a working version use Jon method above is more concise for finding the working DLL than searching the DLLs for the needed class.

Share this post


Link to post

Try this: go to the "mehtcommserverLib_tlb.pas" file (which is already open in the IDE), go to the beginning of the file and in one of the lines you will see where it was derived from, i.e. the DLL to register.
Example:

 

image.thumb.png.2034f004fb94105fc0a7efe98d816846.png

 

You must find a DLL with the name very similar to that (your name of course)


After found the DLL, run from command prompt (AS ADMIN):

regsvr32 nameofdll.dll

 

where nameofdll.dll is the dll that is named in the file.

I hope it is useful to you.

 

EDIT: the extension may be also OCX, EXE, ...

Edited by DelphiUdIT

Share this post


Link to post

Thank you all for your advice. I managed to find the necessary files, after proper registration, the appropriate entries appeared in the registry, and the program started working. Thank you all again for your time, you've been a big help. 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×