Frage

Wir haben eine WinForms-Anwendung in C # geschrieben, die die AxAcroPDFLib.AxAcroPDF Komponente eine PDF-Datei zu laden und ausdrucken verwendet. Wurde in Windows XP ohne Probleme arbeiten. Ich habe meine Entwicklungsumgebung Vista 64 Bit verschoben und jetzt wird die Anwendung nicht ausgeführt (auf Vista 64), es sei denn ich die AxAcroPDF Komponente entfernen. Ich erhalte die folgende Fehlermeldung, wenn die Anwendung ausgeführt wird:

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

Ich habe auf dem Adobe Forum hingewiesen worden, dass der Grund für den Fehler ist, dass sie nicht über eine 64-Bit-Version des AxAcroPDF ActiveX-Steuerelement haben.

Gibt es eine Möglichkeit, um dieses Problem? Zum Beispiel kann ich konvertiere das 32-Bit-ActiveX-Steuerelement zu einem 64-Bit selbst kontrollieren?

War es hilfreich?

Lösung

Sie können nicht konvertieren Adobe ActiveX-Steuerelement selbst 64bit, aber Sie können Ihre Anwendung erzwingen, indem Sie die Plattform Ziel x86 in 32-Bit-Modus ausgeführt werden.

Für Anweisungen für Ihre Version von Visual Studio finden Sie in Abschnitt 1.44 von Problemen bei der Benutzung von Microsoft Visual Studio 2005

Andere Tipps

Das Framework .NET 1.1 zielt immer 32 Bit CPUs während .NET Framework 2.0 und höher als 32 Bit oder 64 Bit Ziel kann entsprechend der processor Eigenschaft des Programms Manifest geändert durch die ‚Plattform Target‘ Option des Visual Studio IDE . Mit der Standardoption ‚Any CPU‘ wird der IL-Code kompiliert nach der Plattform, sondern natürlich auch den COM-Aufruf an die AxAcroPDF 32 Bit Komponente ausfällt, wenn die Plattform 64 Bits. Wiederaufbau einfach die EXE nur 32-Bit-Plattform zielen. Dies funktioniert gut mit dem WOW64-Emulator in Vista 64 Bit.

Verwenden DLL Isolation, funktioniert mit jedem 32-Bit-COM + -Anwendung. Mehr unter: http://support.microsoft.com/kb/281335

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

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top