Abgeteilt von Adobe Reader ActiveX ohne Interop-Verweis versionsunabhängig in Windows.Forms hosten
Ich weiß es, das Thema ist alt. Dennoch habe ich eine Frage dazu: Bisher verwendete ich Visual Studio 2010 und alles lief OK – egal ob das Zielsystem 32 oder 64 Bit war. Gleiches während der Entwicklung (bisher Windows 7 32 und 64 Bit). Eingestellte Plattform ist x86
Nun habe ich Visual Studio 2013 auf einem PC mit Windows 8.1 Prof 64 Bit und das Beispiel läuft nicht mehr. Nach der Anweisung
_adobeReader.Show();
kehrt die Anwendung zum Main() zurück unnd zeigt folgende Fehlermeldung an:
Fehlermeldung:
System.Runtime.InteropServices.COMException wurde nicht behandelt.
Message=Klasse nicht registriert (Ausnahme von HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
Source=System.Windows.Forms
ErrorCode=-2147221164
StackTrace:
bei System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
bei System.Windows.Forms.AxHost.CreateWithoutLicense(Guid clsid)
bei System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)
bei System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
bei System.Windows.Forms.AxHost.CreateInstance()
bei System.Windows.Forms.AxHost.GetOcxCreate()
bei System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)
bei System.Windows.Forms.AxHost.CreateHandle()
bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
bei System.Windows.Forms.Control.CreateControl()
bei System.Windows.Forms.Control.WmShowWindow(Message& m)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
InnerException:
Klasse nicht registriert? Ich kann mich nicht erinnern, früher irgendwas registriert zu haben. Woran kann der Fehler liegen?
René
Hallo pollito,
Ich kann mich nicht erinnern, früher irgendwas registriert zu haben.
das Control wird automatisch mit dem kostenfreien Adobe Reader installiert.
aber anscheinend hat das mit der 64bit-Version des ComControls nicht geklappt. Installiere erstmal den Reader neu bzw. führe eine Reparaturinstallation durch, falls es sowas gibt.
herbivore
Schönen Dank!
Ich habe den Reader repariert und auch deinstalliert und wieder installiert – leider alles ohne Erfolg.
Ich habe einem Kollegen gebeten, das Projekt bei sich zu testen. Der Kollege hat denselben Rechner als ich (Notebook Lenovo E540). Das Betriebssystem ist ebenfalls dasselbe, so wie auch Visual Studio und sonstige Software wie z. B. der Reader. Das Projekt samt Einstellungen hat er von mir bekommen. Und bei ihm läuft es!
Ich stehe komplett auf dem Schlauch und weiß nicht wirklich weiter.
Woran könnte das Problem liegen? Hat irgendjemand eine Idee oder kennt zumindest das Problem?
Nochmals vielen Dank!
René
Diesen Fehler bekomme ich jetzt:
Fehlermeldung:
Beim Aufruf einer COM-Komponente wurde ein HRESULT E_FAIL-Fehler zurückgegeben
Ich weiß nicht mehr, seit wann ich ihn bekomme. Der von mir eingangs beschriebene Fehler taucht nicht mehr auf. Nur dieser hier.
Ich habe gestern einfach zu lange gemacht und zu viel herum experimentiert. Hätte nicht machen dürfen.
Nun wird die Komponente gefunden, aber sie kann nicht verwendet werden. Auf dem PC von meinem Kollegen (gleiche Hardware, gleiche Software) arbeitet die Komponente jedoch einwandfrei.
Keine Ahnung, wo ansetzen. Bin auf eure Hilfe angewiesen.
Hier die gesamte Fehlermeldung:
Fehlermeldung:
Message:
Beim Aufruf einer COM-Komponente wurde ein HRESULT E_FAIL-Fehler zurückgegeben.Source:
System.Windows.FormsInnerException:
TargetSite:
System.Object CoCreateInstance(System.Guid ByRef, System.Object, Int32, System.Guid ByRef)HelpLink:
StackTrace:
bei System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
bei System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)
bei System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
bei System.Windows.Forms.AxHost.CreateInstance()
bei System.Windows.Forms.AxHost.GetOcxCreate()
bei System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)
bei System.Windows.Forms.AxHost.CreateHandle()
bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
bei System.Windows.Forms.Control.CreateControl()
bei System.Windows.Forms.Control.ControlCollection.Add(Control value)
bei System.Windows.Forms.Form.ControlCollection.Add(Control value)
bei System.Windows.Forms.Control.set_ParentInternal(Control value)
bei System.Windows.Forms.Control.set_Parent(Control value)
bei ise.frmPDFViewer.frmPDFViewer_Shown(Object sender, EventArgs e) in c:\Daten\Visual Studio 2013\Projects\ISEprint\ISEprint\frmPDFViewer.cs:Zeile 486.
René
Durch die Untersuchungen, wo Adobe in der neuen Version XI welche Werte in der Registry speichert, löste sich das Problem quasi von alleine! – Ich bin mir relativ sicher, dass der Reader zumindest einmal etwas aus dem Konfigurationsmenü heraus speichern musste, was wahrscheinlich die Heilung brachte.
In der Kategorie „Internet“ habe ich die drei gesetzten Haken zunächst weggemacht, dann gespeichert, anschließend wieder entfernt und erneut gespeichert. Ich sah auch in der Registry, wie er für jeden Haken einen Eintrag machte und diese wieder entfernte, als ich sie wieder setzte. Wahrscheinlich hat er in anderen Zweigen auch was geschrieben oder gelöscht, was zur Heilung beitrug. Seitdem funktioniert es.
Leider bin ich nicht auf die Idee gekommen, die Registry-Zweige zu speichern, um sie danach mit den geänderten zu vergleichen. Somit habe ich mir die Möglichkeit genommen, den oder die verursachenden Einträge zu ermitteln.
Nichtsdestotrotz bin ich glücklich, dass es jetzt funktioniert.
Einen schönen Dank und frohe Ostern!
René
Diesen Fehler bekomme ich jetzt:
Fehlermeldung:
Beim Aufruf einer COM-Komponente wurde ein HRESULT E_FAIL-Fehler zurückgegeben
Das Problem hatte ich (in leicht abgewandelter Form) auch schon - bei mir lag's schlicht und ergreifend daran, dass der Adobe Reader erst einmal "manuell" gestartet werden musste, damit man die EULA abnickt - erst danach ist das COM Objekt nutzbar...
Bart Simpson
Praxis ist wenn alles funktioniert und keiner weiss warum.
Theorie ist wenn man alles weiss, aber nichts funktioniert.
Bei uns wird Theorie und Praxis vereint: Nichts funktioniert und keiner weiss warum...
Danke! Das kenne ich. Hatte auch gehabt. Diesmal aber blieb der Fehler solange bestehen, bis ich die beschriebenen Aktionen durchgeführt habe. Ich möchte erst gar nicht daran denken, wie viel Zeit ich damit zerstört habe.
Nochmals vielen Dank!
René