2017-10-02 2 views
0

Ausführen eines Programms auf einem Computer, der nicht über die IDE Ich erhalte diesen Fehler. Ich verstehe, dass das Problem eine fehlende oder nicht registrierte DLL oder OCX ist.Getting EOleSysError Klasse nicht registriert, aber nicht wissen, welche DLL fehlt - Delphi XE

Viele Postings, wie man es beheben kann, aber alle Antworten gehen davon aus, dass Sie wissen, welche DLL/OCX fehlt.

Mit madExcept sehe ich, dass es 76 DLLs als "Module" aufgeführt sind.

Ich verwende Delphi XE für die Entwicklung.

Gibt es eine Möglichkeit, eine Liste von DLL-Abhängigkeiten für ein Programm mit den fehlenden in irgendeiner Weise hervorgehobenen zu erhalten.

+0

"Klasse nicht registriert" ist ein COM-Fehler. COM-Bibliotheken sind nicht statisch verknüpft, sie werden dynamisch von COM geladen, sodass sie nicht in traditionellen abhängigen Prüfungen angezeigt werden. Ich schlage vor, dass Sie das Programm auf einem funktionierenden Rechner ausführen und den IDE-Debugger oder SysInternals Process Explorer verwenden, um die erfolgreich geladenen Bibliotheken zur Kenntnis zu nehmen, dann das Programm auf dem nicht funktionierenden Rechner auszuführen und SysInternals Process Explorer/Monitor zu verwenden Es wird geladen, bevor der Fehler auftritt. Dann vergleichen Sie die beiden Listen und kopieren Sie + fehlende Bibliotheken registrieren, bis der Fehler verschwindet. –

+1

Oder, wenn Sie den genauen COM-Klassennamen/ID kennen, die fehlschlägt (SysInternals Process Monitor kann Ihnen den Namen/die ID anzeigen, die COM in der Registrierung sucht), können Sie online recherchieren, wenn diese Klasse zu einer bekannten Bibliothek gehört . –

+0

Probieren Sie ein Debugging aus. Welche Klasse wird erstellt, wenn der Fehler auftritt? –

Antwort

0

Mein Problem bezog sich tatsächlich auf eine DLL.

Ich hatte gedacht, dass der Unterschied zwischen funktionierenden und nicht funktionierenden Systemen das Vorhandensein der IDE war, aber stattdessen war es die Tatsache, dass Skype auf irgendeinem PC und nicht anderen installiert worden war.

Der Schuldige (glaube ich) war die Skype4COM.DLL. Irgendwann wurden Skype-Funktionen zur App hinzugefügt. Da wir beschlossen hatten, diese Funktionen aus anderen Gründen aus der App zu entfernen (hauptsächlich, um von Skype unabhängig zu bleiben), entfernte ich sie und die App lief OK.

Die DLL auf den nicht funktionierenden PC zu setzen, behob das Problem nicht, aber das könnte mit dem alten XP zusammenhängen.

Dank @David Heffernan, @kobik und @Remy Lebeau für die Hilfe.

Verwandte Themen