visual-studio flexera installshield - Der Prozedureintrittspunkt _except_handler4_common konnte nicht in der dynamischen Verknüpfungsbibliothek msvcrt.dll gefunden werden




4 Answers

Willkommen in der Welt der DLL-Höllen- und Anwendungsabhängigkeitsanalyse.

Ich habe diese DLL auf meinem Win8-Rechner im Ordner SYSWOW64 (32bit System32) mit der Version 7.0.9200.16384 gefunden. Wenn ich es mit Dependency Walker betrachte, kann ich sehen, dass es tatsächlich die Funktion exportiert, die Sie suchen.

Ich sehe auch auf meinem InstallShield-Rechner ein Mergemodul namens MSVCRT.MSM, das die Version 6.00.8797.0 dieser Datei neu verteilt. Wenn ich es jedoch mit Dependency Walker betrachte, sehe ich, dass es die exportierten Funktionen _except_handler2 und _except_handler_3, aber nicht _except_handler_4_common hat.

Also brauchen Sie eine neuere DLL und das Merge-Modul wird Ihnen nicht helfen. Microsoft hatte diese coole Website, die DLL-Hilfedatenbank, die Ihnen alle Versionen einer Datei und deren Versand mitteilte, aber leider haben sie sie getötet.

BTW, kann ich auch sehen, dass diese DLL mit Windows in diesen Tagen installiert ist. Windows XP? Ich bin mir nicht so sicher, wie ich eine VM starten und schauen müsste.

Ein paar mögliche Lösungen:

  1. Finden Sie heraus, was SP oder Hotfix von Windows behebt und machen Sie eine Abhängigkeit von Ihrem MSI.

  2. Greifen Sie die DLL von einem Win 8-Rechner und fügen Sie sie Ihrem INSTALLDIR hinzu und stellen Sie sie privat bereit.

Eine letzte Anmerkung. Dies wird entweder dadurch verursacht, dass die Version von Windows XP mit einer alten Version der DLL geliefert wird (ein zugehöriger KB-Artikel besagt, dass dies der Fall ist) oder dass eine Anwendung eines Drittanbieters die DLL beschädigt hat, die das Problem verursacht hat. Etwas mehr Studium ist hier erforderlich.

windows installer

Ich verwende "Microsoft Visual Studio", um mit einer "MFC-Anwendung" zu arbeiten.

Ich verwende "Installshield", um die Setup-Datei für diese Anwendung zu erstellen.

Ich bekomme eine "setup.exe" -Datei.

Wenn ich dieses Setup auf einem "Windows XP 32 Bit" -Maschine ausführen, wird die Installation ordnungsgemäß beendet.

Wenn ich versuche, das installierte Programm zu starten, erhalte ich folgende Meldung:

"The procedure entry point _except_handler4_common could not be located in the dynamic link library msvcrt.dll."

Im Debug-Modus kann ich den Moment, in dem der Fehler auftritt, nicht finden, denn unabhängig davon, welchen Breakpoint ich in den Code einfüge, erscheint die Nachricht vor dem Erreichen des Breakpoints, ich vermute gleich zu Beginn der Programmausführung ...

Hinweis: Es funktioniert für Vista 32 Bit und Seven 64 Bit.

Es scheint, dass viele Leute das gleiche Problem haben, aber ich konnte keine Lösung für mich finden.

Kannst du helfen? Vielen Dank.




Dieser Beitrag ist alt, aber ich wollte meine Lösung verlassen, da dieses Problem die Hölle für mich war. Meine Python-App funktionierte für Linux, Win7, 8 und 10, aber WinXP weigerte sich, mit dieser Nachricht zu arbeiten.

Ich habe py2exe verwendet, um eine ausführbare Datei zu erhalten, und es werden einige DLLs mit der exe-Datei zusammengefügt.

Das Löschen einiger DLLs aus dem EXE-Verzeichnis war die einzige Sache, die die App in XP funktionieren ließ und in den anderen Systemen weiter funktionierte:

["POWRPROF.dll", "IPHLPAPI.DLL", "USP10.DLL", "DNSAPI.DLL"]

Außerdem wird das Verzeichnis "Microsoft.VC90.CRT" zusammen mit der exe-Datei mit den Manifest- und DLL-Dateien verteilt.

Ich hoffe, dass dies für jemanden nützlich sein wird, da ich Wochen gebraucht habe, um es herauszufinden.

(Ich weiß, das OP funktionierte nicht mit Python, aber der Fehler ist genau der gleiche)




Das Problem lag wahrscheinlich daran, dass Sie möglicherweise eine beschädigte DirectX-Version auf Ihrem Windows XP-Computer verwendet haben. Es ist mir auch passiert, weil ich zufällig ein DirectX-Setup heruntergeladen habe, das beschädigt war und diese verursacht hat. Die Lösung, die ich gemacht habe, ist, dass ich alle Dateien gelöscht habe, die mit directX von C: Windows / System32 zu tun haben, deleteX aus dem add / remove-Programm gelöscht habe und den gesamten Registrierungsschlüssel vollständig aus regedit entfernt habe. Local_machine/software/microsoft/DirectX... Was ich dann gemacht habe, wurde eine originale Werte und Schlüssel für DirectX 9 im Netz gefunden und einen neuen Registrierungsschlüssel erstellt.

Der DirectX-Ordner war einmal vollständig und ursprünglich wieder auf regedit und es zeigte in dxdiag, dass das DirectX installiert ist.

Falls Sie Abstürze im Spiel bemerken, schlage ich vor, dass Sie .NET Framework 3.5 Service Pack 1 herunterladen und dann eine Sicherungskopie auf Ihrem PC erstellen (wenn Sie keine nVIDIA-Grafikkarten wie ich verwenden, verwende ich ATI Radeon) und lade sie herunter nVIDIA PhysX Systemsoftware Treiber und sehen, ob es funktioniert. (Sie benötigen nVIDIA phydX Treiber, um dieses Spiel ohne Abstürze zu starten, nur wenn Sie Win XP verwenden, sollte das Problem auf Win 7 nicht auftreten) Falls die Treiber Ihren PC (den nVIDIA PhysX one) beschädigen, können Sie Ihren alten PC wiederherstellen Funktion vor diesen Treibern (Wenn Sie eine Sicherungskopie von Ihrem PC erstellt haben, schlage ich vor, Acronis Boot für Backups zu verwenden), bedeutet das, dass Sie kein Glück haben, wenn Sie das nVIDIA PhysX nicht zum Beispiel mit ATI-Grafiken erhalten Windows XP, denn ohne Nvidia Physx, auf Win XP, Metro wird nicht ausgeführt, während auf Win 7 / Vista / 8 sollte es.




Dieses Problem besteht für jede Software oder jedes Spiel, das Windows 7 oder 8 oder Vista benötigt, aber in Windows XP ausgeführt wird. Also, wenn Sie Ihr Programm fortsetzen oder starten möchten, müssen Sie Ihre Windows 7 oder 8 oder Vista gemäß den Systemanforderungen des Programms aktualisieren. HOFFNUNG ES WAR HILFES DANKES




Related