![]() |
Anwendung stützt ab wenn DELPHI deinstalliert wird
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
unserer Anwendung startet nicht mehr, stattdessen bekommen wir eine AV. Solange Delphi auf dem System installiert war hatten wir keine Probleme . Welche DLL könnte es sein die jetzt der Anwendung fehlt ??? |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Ohne weitere Informationen zu der Anwendung kann man da nur raten.
Herausfinden können solltest du das recht einfach mit dem Process Monitor. |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Ihr habt aber nicht mit Laufzeitpackages kompiliert?
|
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
welcher Process Monitor ?
unsere Anwendung ist x64 und hier habe ich kein Madshi oder vergleichbar , Compiler ist eh nicht mehr installiert |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Der von
![]() |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Liste der Anhänge anzeigen (Anzahl: 1)
Oje :-( angeblich bekomme ich einen FSCTL_LMR_QUERY_DEBUG_INFO Fehler bevor meine Anwendung loslegt , warum ??
Tante google und FSCTL_LMR_QUERY_DEBUG_INFO erlaubt mir keine Rückschlüsse auf meinen code |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Zitat:
Ich denke eure Anwendung ist gegen die falsche Laufzeit gelinkt bzw. ihr gebt die nicht mit gegen die ihr linkt. Weiß nicht wie das bei Delphi derzeit lizenztechnisch ist. Übrigens: ![]() |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Das kommt aus der explorer.exe, hat also erst einmal nix mit deiner Anwendung zu tun. Als erstes setze einmal den Filter auf Process Name = Deine Exe. ;-)
Dann schaue nach Einträgen wie Debug oder Dr Watson, von unten startend. Irgendwann landest du dann bei den Daten, die vor dem Crash passieren. Ich sage nicht, dass diese Analyse einfach ist. Aber in der Regel wirksam. ;-) |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Liste der Anhänge anzeigen (Anzahl: 1)
habe mit dem process monitor jetzt auf "Mytestapp" gefiltert.
die Borland memory manger dll habe ich immer in den System Pfad kopiert und mit der Anwendung verteilt, benötigt x64 eine spezielle Borland DLL ? |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Code:
The clue is in the name :zwinker:
//
// MessageId: STATUS_INVALID_IMAGE_FORMAT // // MessageText: // // {Bad Image} // %hs is either not designed to run on Windows or it contains an error. Try installing the program again using the original installation media or contact your system administrator or the software vendor for support. // #define STATUS_INVALID_IMAGE_FORMAT ((NTSTATUS)0xC000007BL) Der Loader spuckt immer native Fehlercodes aus. Übrigens hat Sebastian vollkommen recht. Ich benutze den Process Monitor auch sehr gern für derlei Dinge. Dort sollte sich auch besagter Fehlercode finden lassen. @shmia: jupp, ist auch in meiner Tool-Schatzkiste :mrgreen: ... allerdings benutze ich den dynamischen Modus im Prinzip nie. Bei StackOverflow hättest du jetzt ein Upvote bekommen ;) |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Bei Problemen mit fehlenden DLLs hilft der
![]() Schon beim Laden einer EXE oder DLL sieht man welche DLL angefordert wird, aber nicht gefunden wird. Wenn man dann das Profiling mit F7 startet sieht man jedes dyn. Laden einer DLL und jeden Aufruf von GetProcAdress. :thumb: Fehler werden im Protokoll rot angezeigt. |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Zitat:
|
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Jonny Walker behauptet ich habe vergessen IESHIMS.DLL einzubinden ....
die stammt nicht von mir sondern vom MSoft, |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Zitat:
Das ist dein Fehlercode. Und daher weißt du jetzt was es ist. Entweder ist diese Datei selber nicht i.O., oder - was wahrscheinlicher scheint - versucht eine DLL für die falsche Architektur zu laden. |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Liste der Anhänge anzeigen (Anzahl: 1)
anbei noch der screen dump von janny walker als beleg !
|
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Zitat:
'ne 32 Bit-DLL in einer 64 Bit-Anwendung läuft nicht unbedingt so gut. |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Zitat:
... ieshims.dll und ieframe.dll sind übrigens, wie die kleine Sanduhr anzeigt, ![]() |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Zitat:
Ja, dann müssen die DLLs dazu passen, ja. |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Zitat:
Aber irgendwie scheint mir, bernhard_LA ist nicht sehr offen für unseren Input :lol: |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
ich habe eine Installation meiner Software auf meinem Entwicklungssystem (incl. Delphi in einem anderen Ordner) ,
Jonny Walker moniert auch hier das Fast MM4 debug.dll und dir Borland Memory Manger DLL in der falschen CPU version vorhanden sind ... nur läuft meine Anwendung hier ohne Probleme. Akutell versuche ich jetzt beide dlls als x64 Bit Version neu zu erstellen ( die Projekte gibt es im FASTMM4 Ordner) |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Brauchst du denn Sharemem? Und FastMM im Full Debug Mode?
Beide sind eigentlich in der Regel in der Releaseversion überflüssig (wenn man nicht Schweinereien mit Stringparametern o.ä. in DLLs macht, dann braucht man Sharemem natürlich, aber dann sollte man eher die Schnittstelle sauber machen...). |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
FastDebugModeDLL habe ich in X64 jetzt auch schon entfernt,
sharemem ist halt in vielen DLLS enthalten wegen der String Übergabe ... bin mir nicht sicher ob ich so schnell auf borland memory manger dll verzichten kann müsste die ganzen includes überarbeiten suche die schnellste Lösung für mein Problem |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
problem gelöst Anwendung spielt :
BorlandDLL aus fastMM4 Versichnis (sourge forge) im x64 Bit Mode erstellt .... dann geht jetzt |
AW: Anwendung stützt ab wenn DELPHI deinstalliert wird
Die Unit SimpleShareMem in alle DPRs der DLLs und EXE an erster Stelle eintragen.
Fertig. Die neue borlndmm.dll (die mit dem FastMM drin) ist nur ein Kompatibilitätsupgrade für alte Programme, also für den Austausch der borlndmm.dll mit dem alten BorlandMM drin. Dort werden alle Speicheranfragen immer über diese zusätzliche DLL behandelt. FastMM kann aber mehr: Man kann diesem über ![]() - also entweder er Findet einen anderen FastMM in einer anderen DLL/EXE und verbindet sich dann dort hin (innerhalb des eigenen Prozessraums) - oder er ist der Erste und bietet sich anderen FastMMs an
Delphi-Quellcode:
SimpleShareMem braucht keine DLL mehr, da hier der FastMM der ersten statisch geladene DLL verwendet wird.
{Searches the current process for a shared memory manager. If no memory has
been allocated using this memory manager it will switch to using the shared memory manager instead. Returns true if another memory manager was found and this module is now sharing it.} function AttemptToUseSharedMemoryManager: Boolean; {Makes this memory manager available for sharing to other modules in the current process. Only one memory manager may be shared per process, so this function may fail.} function ShareMemoryManager: Boolean; Oder der FastMM der EXE, wenn alle DLLs dynamisch geladen werden. Halt immer der er FastMM, welcher für das Sharing aktiviert wurde. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz