Problem bei Programmstart - (0xc000007b)
Hallo,
ich migriere gerade Programme von Delphi 10.3 auf Delphi 10.4. Ich weiss nicht, ob es wichtig ist, aber das Programm verwendet Laufzeit Packages. Jetzt zum Problem: Wenn ich das Programm starte, erhalte ich *sofort* diese Fehlermeldung: Die Anwendung konnte nicht korrekt gestartet werden (0xc000007b). Klicken SIe auf "OK" um die Anwendung zu schließen. Das Problem ist, dass das Programm noch nicht mal bei "Application.Initialize" angekommen ist. Ich habe also mit "Showmessages" etc keine Chance auch nur ansatzweise herauszufinden, an welcher Stelle es knallt. "Blöderweise" funktioniert das Programm, wenn ich es aus der IDE heraus starte. Klar, der erste Gedanke ist, da fehlt eine Datei. Da ich dieses Programm aber schon seit fast 20 Jahren weiter entwickle, kenne ich eigentlich alle Dateien, die notwendig sind. Außerdem "schreit" einen das Programm ja auch an, dass z.B. die vcl270.bpl fehlt. Mein Problem ist, wie kann ich das debuggen ? Wie finde ich heraus, was da den Fehler erzeugt. Bin für jeden Tipp dankbar. Tom |
AW: Problem bei Programmstart - (0xc000007b)
Der Fehler liegt vermutlich nicht an deiner Anwendung, sondern an Windows. Das kann von fehlenden DLLs über ein defektes .NET-Framework bis zu Inkompatibilitäten zwischen 32-Bit-Anwendungen und 64-Bit-BS gehen.
Nimm einfach mal eine Suchmaschine und wähle als Suchbegriff deine Fehlernummer. Da sollten reichlich Hinweise und Lösungsvorschläge kommen. |
AW: Problem bei Programmstart - (0xc000007b)
Ein Untersuchen mit dem Process Monitor von Sysinternals würde das betreffende Modul zumindest einkreisen.
|
AW: Problem bei Programmstart - (0xc000007b)
Ob es ein Problem mit dem Windows ist, lässt sich auch mittels Test auf einem anderen System (z.B. VM) herausfinden.
Grüße Dalai |
AW: Problem bei Programmstart - (0xc000007b)
Hallo,
Google liefert da ziemlich viel Input. z.B. https://www.youtube.com/watch?v=UgwPlX5uNfs Hier fehlten Visual-C++-Runtime-Dlls. Was passiert denn, wenn Du keine Runtime-Packages benutzt? |
AW: Problem bei Programmstart - (0xc000007b)
Hallo an alle,
danke für Eure Tipps. @Peter: Danke für die Hinweise. Bisher hat mein Programm kein .Net etc. benötigt. Ich werde aber mal die Komponentenhersteller fragen, ob sich das geändert hat. @TiGü: ich habe das gestern mit dem Process Explorer schon versucht, das hat mir nicht geholfen. Ich werde mal den Monitor veruchen. Guter Tipp, danke. @Dalai: Das läuft auf keiner anderen Maschine, außer dem Delphi Rechner. (Der ist allerdings gerade frisch aufgesetzt und sollte auf dem letzten Stand sein.) @Hoika: Ohne Runtime Packages startet das Programm einwandfrei. (Lädt nur keine PlugIns etc, da diese Runtime Packages benötigen). Danke auch für das Video. Ich denke, ich werde mal Schritt für Schritt diese Updates machen und sehen, ab wann es wieder funktioniert. Ich werde hier Rückmeldung geben, wenn sich etwas ändert. VIELEN DANK EUCH ALLEN !!! Thomas |
AW: Problem bei Programmstart - (0xc000007b)
Zitat:
Grüße Dalai |
AW: Problem bei Programmstart - (0xc000007b)
Nein, nein, damit wollte ich nur sagen, dass es auf allen anderen Maschinen zu der Fehlermeldung kommt.
|
AW: Problem bei Programmstart - (0xc000007b)
Ah, das ist schon etwas anderes. Dann halte ich es für sehr unwahrscheinlich, dass ein Problem mit Windows, .NET oder sowas in der Richtung vorliegt. Dennoch kann eine DLL falsch oder unpassend sein. Process Monitor wäre wohl sinnvoll. Oder du hängst dich nachträglich mit dem Debugger rein, oder verwendest einen anderen Debugger wie NirSoft Simple Program Debugger oder Sysinternals DebugView. Vielleicht sind die in der Lage, die Stelle der Exception mitzubekommen.
Grüße Dalai |
AW: Problem bei Programmstart - (0xc000007b)
Ist das eine 32-Bit-Anwendung auf 64-Bit-Betriebssystemen?
Es könnte immer noch ein Problem mit verwechselten DLLs (nicht zwingend die eigenen) sein. Ich hatte ein ähnliches Problem schon mit eigenen DLLs, die im falschen Verzeichnis gelandet waren. Mach mal eine 64-Bit-Anwendung daraus, wenn das geht und versuche es damit nochmal. |
AW: Problem bei Programmstart - (0xc000007b)
Es ist eine 32 Bit Anwendung, ich kann leider aufgrund einiger Komponenten keine 64Bit Anwendung daraus machen.
Ich kann das mit den Windows Komponenten auch nicht so richtig glauben - es hat ja auch vorher (Delphi 10.3) immer ohne diese (dämlichen) C++ Runtimes etc. funktioniert. Hab auch schon einige C++ Runtimes etc. installiert, das hilft alles nichts. Ich guck mal, ob ich das was debuggen kann.. :-( DANKE an ALLE !!! |
AW: Problem bei Programmstart - (0xc000007b)
@Peter: Alle DLLs und BPLs, die ich benötige, sind in dem Verzeichnis, in dem auch die EXE liegt.
|
AW: Problem bei Programmstart - (0xc000007b)
Zitat:
Allein schon eine neu erstellte leere VCL-Anwendung lädt da so einiges:
Code:
Module Load: Project1.exe. Has Debug Info. Base Address: $00400000. Process Project1.exe (9120)
Module Load: ntdll.dll. No Debug Info. Base Address: $77AC0000. Process Project1.exe (9120) Module Load: KERNEL32.dll. No Debug Info. Base Address: $75730000. Process Project1.exe (9120) Module Load: KERNELBASE.dll. No Debug Info. Base Address: $77520000. Process Project1.exe (9120) Module Load: SHELL32.dll. No Debug Info. Base Address: $76660000. Process Project1.exe (9120) Module Load: ucrtbase.dll. No Debug Info. Base Address: $754B0000. Process Project1.exe (9120) Module Load: CFGMGR32.dll. No Debug Info. Base Address: $77370000. Process Project1.exe (9120) Module Load: SHCORE.dll. No Debug Info. Base Address: $75420000. Process Project1.exe (9120) Module Load: msvcrt.dll. No Debug Info. Base Address: $77780000. Process Project1.exe (9120) Thread Start: Thread ID: 240. Process Project1.exe (9120) Module Load: RPCRT4.dll. No Debug Info. Base Address: $752C0000. Process Project1.exe (9120) Module Load: SspiCli.dll. No Debug Info. Base Address: $75290000. Process Project1.exe (9120) Module Load: CRYPTBASE.dll. No Debug Info. Base Address: $75280000. Process Project1.exe (9120) Module Load: bcryptPrimitives.dll. No Debug Info. Base Address: $77720000. Process Project1.exe (9120) Module Load: WINSPOOL.DRV. No Debug Info. Base Address: $6A8F0000. Process Project1.exe (9120) Thread Start: Thread ID: 5240. Process Project1.exe (9120) Module Load: SECHOST.dll. No Debug Info. Base Address: $762B0000. Process Project1.exe (9120) Module Load: combase.dll. No Debug Info. Base Address: $75E80000. Process Project1.exe (9120) Module Load: Windows.Storage.dll. No Debug Info. Base Address: $76DA0000. Process Project1.exe (9120) Module Load: AppCore.dll. No Debug Info. Base Address: $76570000. Process Project1.exe (9120) Module Load: COMCTL32.dll. No Debug Info. Base Address: $68B50000. Process Project1.exe (9120) Module Load: bcrypt.dll. No Debug Info. Base Address: $764B0000. Process Project1.exe (9120) Module Load: msvcp_win.dll. No Debug Info. Base Address: $76590000. Process Project1.exe (9120) Module Load: GDI32.dll. No Debug Info. Base Address: $77A70000. Process Project1.exe (9120) Module Load: win32u.dll. No Debug Info. Base Address: $764D0000. Process Project1.exe (9120) Module Load: gdi32full.dll. No Debug Info. Base Address: $77910000. Process Project1.exe (9120) Module Load: ADVAPI32.dll. No Debug Info. Base Address: $764F0000. Process Project1.exe (9120) Module Load: profapi.dll. No Debug Info. Base Address: $76BE0000. Process Project1.exe (9120) Module Load: USER32.dll. No Debug Info. Base Address: $76C00000. Process Project1.exe (9120) Module Load: POWRPROF.dll. No Debug Info. Base Address: $76330000. Process Project1.exe (9120) Module Load: UMPDC.dll. No Debug Info. Base Address: $76100000. Process Project1.exe (9120) Module Load: IPHLPAPI.DLL. No Debug Info. Base Address: $71810000. Process Project1.exe (9120) Module Load: PROPSYS.dll. No Debug Info. Base Address: $6F870000. Process Project1.exe (9120) Module Load: SHLWAPI.dll. No Debug Info. Base Address: $778C0000. Process Project1.exe (9120) Module Load: OLEAUT32.dll. No Debug Info. Base Address: $75380000. Process Project1.exe (9120) Module Load: CRYPTSP.dll. No Debug Info. Base Address: $76490000. Process Project1.exe (9120) Module Load: ole32.dll. No Debug Info. Base Address: $75810000. Process Project1.exe (9120) Module Load: NETAPI32.dll. No Debug Info. Base Address: $6C5E0000. Process Project1.exe (9120) Module Load: VERSION.dll. No Debug Info. Base Address: $75180000. Process Project1.exe (9120) Thread Start: Thread ID: 12948. Process Project1.exe (9120) Module Load: netutils.dll. No Debug Info. Base Address: $6C5D0000. Process Project1.exe (9120) Module Load: IMM32.dll. No Debug Info. Base Address: $76220000. Process Project1.exe (9120) Module Load: MSCTF.dll. No Debug Info. Base Address: $76380000. Process Project1.exe (9120) Module Load: UxTheme.dll. No Debug Info. Base Address: $6A6A0000. Process Project1.exe (9120) Module Load: WTSAPI32.dll. No Debug Info. Base Address: $6E3E0000. Process Project1.exe (9120) Module Load: WINSTA.dll. No Debug Info. Base Address: $6BF10000. Process Project1.exe (9120) Module Load: TextInputFramework.dll. No Debug Info. Base Address: $5A320000. Process Project1.exe (9120) Module Load: CoreUIComponents.dll. No Debug Info. Base Address: $5A0C0000. Process Project1.exe (9120) Module Load: CoreMessaging.dll. No Debug Info. Base Address: $5A030000. Process Project1.exe (9120) Module Load: NTMARTA.dll. No Debug Info. Base Address: $6E590000. Process Project1.exe (9120) Module Load: WinTypes.dll. No Debug Info. Base Address: $62500000. Process Project1.exe (9120) Module Load: WinTypes.dll. No Debug Info. Base Address: $03030000. Process Project1.exe (9120) Module Unload: WinTypes.dll. Process Project1.exe (9120) Module Load: iertutil.dll. No Debug Info. Base Address: $69D90000. Process Project1.exe (9120) Module Load: dwmapi.dll. No Debug Info. Base Address: $6A670000. Process Project1.exe (9120) |
AW: Problem bei Programmstart - (0xc000007b)
Zitat:
In deinem Fall sieht es aber mehr nach einer Verwechslung aus. Es wird also möglicherweise eine 64-Bit-DLL aufgerufen, obwohl eine 32-Bit-DLL benötigt wird. |
AW: Problem bei Programmstart - (0xc000007b)
hmm, ich hab ja auf die DLLs (wie in der Auflistung von TiGü) keinen Einfluss.
Ich kann ja nur die DLLs und BPLs beeinflussen, die"von mir" stammen. Wenn ich die aber alle in meinem Programmverzeichnis habe, müssen die ja von Windows eingelesen werden. Das aktuelle Verzeichnis hat ja die höchste Priorität, wenn ein Programm eine DLL nachlädt. Erst, wenn die DLL nicht im gleichen Verzeichnis ist, sucht Windows ja danach im Suchpfad. Das kann aber doch nichts mit dem Delphi 10.4 zu tun haben. Also der Tatsache, dass das Programm nur auf dieser VM läuft und nirgendwo anders. Also was ich meine: Compiliere ich die mit 10.3, sucht Windows die richtigen DLLs für den Start raus. Mit 10.4 sucht Windows auf einmal andere raus ? Unwahrscheinlich, oder ? Thomas |
AW: Problem bei Programmstart - (0xc000007b)
Ach ja, ich hab mal die 32 Bit Komponente aus dem Programm herausgenommen und das Programm unter 64Bit compiliert.
Jetzt kommt der Fehler auch, wenn ich auf der VM bzw. aus Delphi heraus starte. natürlich so früh, dass der Debugger noch nicht "greift". |
AW: Problem bei Programmstart - (0xc000007b)
Process Monitor an (Tutorials zum Tod schmeißen im Netz), Filter auf deinen Exe-Namen und los gehts!
|
AW: Problem bei Programmstart - (0xc000007b)
Kommen 600 Einträge, nix zu erkennen.. Keine Exception oder so...
|
AW: Problem bei Programmstart - (0xc000007b)
Also wenn ich nach dem Fehler google stosse ich sofort auf diese Info:
Zitat:
|
AW: Problem bei Programmstart - (0xc000007b)
Ich hab (bis auf meinen Versuch eben) noch keine einzige 64 Bit Anwendung erstellt.
So einen Irrtum kann ich ausschließen. (leider - wäre zu schön) 32Bit Anwendung auf 64 Bit Windows |
AW: Problem bei Programmstart - (0xc000007b)
In der VM, in der Delphi installiert ist, läuft ja auch alles...
Ich rufe die Anwendung dort aus einem Netzlaufwerk auf und alles klappt. |
AW: Problem bei Programmstart - (0xc000007b)
Zitat:
|
AW: Problem bei Programmstart - (0xc000007b)
Beim Process Monitor ist es hilfreich, die Zeilen mit Fehlern (farblich) hervorheben zu lassen. Dazu rechtsklicken auf einen Eintrag in der Spalte Result, der nicht SUCCESS sagt und dann Highlight <Result>. Außerdem ist es zu empfehlen, sich mittels der Buttons auf der Symbolleiste auf die relevanten Kategorien zu beschränken - Registry braucht man nicht, wenn man weiß, dass es um Dateien geht.
Grüße Dalai |
AW: Problem bei Programmstart - (0xc000007b)
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ist ein Screenshot von dem ProcessMonitor dabei.
Diese Meldungen bekomme ich auch, wenn das Programm ordnungsgemäß läuft... |
AW: Problem bei Programmstart - (0xc000007b)
Danke für die Tipps mit dem Filtern.
Habe alles mit Success rausgenommen. |
AW: Problem bei Programmstart - (0xc000007b)
und hier sollte das Bild jetzt erscheinen...
|
AW: Problem bei Programmstart - (0xc000007b)
Liste der Anhänge anzeigen (Anzahl: 1)
war wohl zu groß... hier nochmal...
|
AW: Problem bei Programmstart - (0xc000007b)
Und jetzt der Vergleich mit dem Komplilat aus 10.3?
|
AW: Problem bei Programmstart - (0xc000007b)
Bei der 10.3 kommen die "Name not found" Einträge nicht. Bei der 10.4er Version sieht es fast so aus, als ob
die Anwendung das Package von TMS nicht findet. (obwohl es im gleichen Verzeichnis ist, wie die Anwendung, sucht es im Suchpfad des Rechners) Aber selbst wenn ich die z.B. nach C:\Windows\ kopiere, tut sich da nix... |
AW: Problem bei Programmstart - (0xc000007b)
"Aha, oho, im Schnee eine Spur..."
Das Package von TMS ist explizit FÜR 10.4 oder versuchst du ohne weitere Anpassung ein 10.3er Projekt mit 10.4 zu öffnen, ohne zuvor sichergestellt zu haben, dass die BPLs auch geladen werden können? |
AW: Problem bei Programmstart - (0xc000007b)
Die gesamte VM habe ich speziell für 10.4 neu erstellt. Also hab ich natürlich auch bei allen Komponenten darauf geachtet,
dass sie für 10.4 freigegeben sind. Danach dann das 10.3er Projekt in einen neuen Ordner kopiert, die DCUs etc gelöscht, die BPls von 10.3 gegen die von 10.4 ersetzt. (also z.B. vcl260.* gegen vcl270.*) und die Projektdatei (.dproj) gelöscht. Danach die Projekt Optionen neu eingegeben (hauptsächlich "Runtime packages", 5 Stk. von denen wie in der 10.3) Dann das Projekt compiliert und fertig. Auf der VM läuft es 1a. Ich wüsste nicht, was ich da falsch gemacht haben sollte... :( |
AW: Problem bei Programmstart - (0xc000007b)
1. Hast du das Kompilat aus der VM mal auf dem Problemrechner getestet?
2. Hast du TMS deswegen schon kontaktiert? |
AW: Problem bei Programmstart - (0xc000007b)
Die 10.3er Version läuft überall, die 10.4er nur auf der VM. Auf anderen Maschinen tut sich nix - bis auf die Fehlermeldung.
TMS hat heute eine neue Version dieser Komponenten rausgebracht. Die installiere ich gerade... |
AW: Problem bei Programmstart - (0xc000007b)
LÄUFT !
Nach der Installation der neuesten TMS Komponenten verlangte die Anwendung noch eine weitere BPL Datei (vclsmp270.bpl) und dann funktionierte es ! HABT VIELEN DANK !!! Speziell an TiGü, Du hast echt lange durchgehalten ! 1A Leistung !!! Das soll aber auch nicht die Ideen der "anderen" hier im Forum schmälern ! OHNE EUCH hätte ich es wohl nicht auf die Kette bekommen. Also nochmals VIELEN, VIELEN DANK AN EUCH ALLE !!! |
AW: Problem bei Programmstart - (0xc000007b)
Packages haben wohl ihre Vorteile, aber ich liebe die Möglichkeit eine monolithische Anwendung ausliefern zu können, die zur Not ohne Installer "installiert" werden kann. Die IT meiner Kunden liebt es übrigens auch, nur eine EXE austauschen zu müssen.
Sherlock |
AW: Problem bei Programmstart - (0xc000007b)
Noch zwei Tips fürs nächste Mal:
Grüße Dalai |
AW: Problem bei Programmstart - (0xc000007b)
Zitat:
|
AW: Problem bei Programmstart - (0xc000007b)
@Dalai: Du hast recht, beim nächsten Mal werde ich das als Code einfügen.
@Sherlock: Das wäre auch mein Wunsch, aber da meine Anwendung PlugIns verwendet, die sich automatisch in die Anwendung einklinken, bleibt mir leider keine Wahl. (Ich verwende die HYDRA Komponenten von RemObjects, eine andere Möglichkeit kenne ich nicht) Also nochmals ein großes DANKE an alle Beteiligten hier !! Tom |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz