AxAcroPDF - Vista64 Klasse Nicht registrierter Fehler

8

Wir haben eine in C # geschriebene WinForms-Anwendung, die die AxAcroPDFLib.AxAcroPDF-Komponente zum Laden und Drucken einer PDF-Datei verwendet. Hat in Windows XP problemlos funktioniert. Ich habe meine Entwicklungsumgebung auf Vista 64 Bit umgestellt und jetzt wird die Anwendung nicht ausgeführt (auf Vista 64), wenn ich die AxAcroPDF-Komponente nicht entferne. Ich bekomme den folgenden Fehler, wenn die Anwendung ausgeführt wird:

"System.Runtime.InteropServices.COMException: Klasse nicht registriert (Ausnahme von HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). "

Ich wurde in den Adobe-Foren darauf hingewiesen, dass der Grund für den Fehler darin liegt, dass sie keine 64-Bit-Version des AxAcroPDF-ActiveX-Steuerelements haben.

Gibt es ein Problem mit diesem Problem? Kann ich beispielsweise das 32-Bit-ActiveX-Steuerelement selbst in ein 64-Bit-Steuerelement konvertieren?

    
daveywc 15.09.2008, 21:28
quelle

3 Antworten

14

Sie können das ActiveX-Steuerelement von Adobe nicht selbst in 64-Bit konvertieren, aber Sie können Ihre Anwendung im 32-Bit-Modus ausführen, indem Sie das Plattformziel auf x86 setzen.

Anweisungen zu Ihrer Version von Visual Studio finden Sie in Abschnitt 1.44 von Probleme bei der Verwendung von Microsoft Visual Studio 2005

    
rpetrich 16.09.2008, 06:39
quelle
6

Das .Net-Framework 1.1 richtet sich immer an 32-Bit-CPUs, während .NET-Framework 2.0 und höher je nach processorArchitecture-Eigenschaft des Programmmanifests, das durch die Option "Platform Target" der Visual Studio-IDE geändert wurde, 32 Bit oder 64 Bit adressieren kann . Mit der Standardoption 'Beliebige CPU' wird der IL-Code gemäß der Plattform kompiliert, aber der COM-Aufruf an die AxAcroPDF-32-Bit-Komponente schlägt natürlich fehl, wenn die Plattform 64 Bits hat. Erstellen Sie die EXE-Datei nur für die 32-Bit-Plattform neu. Dies funktioniert gut mit dem WOW64-Emulator in Vista 64 Bit.

    
seaman 17.09.2008 17:38
quelle
0

Verwenden Sie DLL-Isolation, funktioniert mit jeder 32-Bit COM + -Anwendung. Sehen Sie mehr unter: Ссылка

Mit dieser Lösung können Sie Ihre 32-Bit-COM + -Anwendung in einem separaten 32-Bit-Prozess isolieren.

64-Bit-Anwendungen suchen installierte COM + -Objekte unter: HKLM \ Software \ Classes, aber 32-Bit-Anwendungen verwenden HKLM \ Software \ WOW6432 \ Classes

    
retk 16.09.2008 06:43
quelle

Tags und Links