'Getting EOleSysError Class not registered but don't know which DLL is missing - Delphi XE
Running a program on a machine that doesn't have the IDE I get this error. I understand that the problem is a missing or unregistered DLL or OCX.
Lots of postings on how to fix it, but all the answers assume that you know which DLL/OCX is missing.
Using madExcept I see that there are 76 DLL's listed as "modules".
I'm using Delphi XE for development.
Is there a way to get a list of DLL dependences for a program with the missing ones highlighted in some way.
Solution 1:[1]
My problem was indeed relating to a DLL.
I had thought that the difference between working and non working systems was the presence of the IDE, but instead it was the fact that Skype had been installed on some PC and not others.
The culprit (I think) was the Skype4COM.DLL. At some stage Skype functions had been added to the app. As we had decided to remove those functions from the app for other reasons (mainly wanting to stay independent of Skype), I removed them and the app runs OK.
Just putting that DLL onto the non-working PC did not fix the problem, but that may have been related to the old XP.
Thanks to @David Heffernan, @kobik and @Remy Lebeau for helping out.
Solution 2:[2]
I know it is old. But searching the internet for solution I found this thread. I just ran into the same issue. I deployed a Delphi app on a customer machine and got the same error.
The app was using TMediaPlayer
and I found out that the target machine was a Windows 10 N
, without Media features.
Running an elevated PowerShell
and the command
Get-WindowsCapability -online | Where-Object -Property name -like "*media*" | Add-WindowsCapability -Online
solved the issue after a Windows restart.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Jeff Cook |
Solution 2 | Mario Werner |