![]() |
Re: .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll
Hallo,
Zitat:
Beim Start der Exe werden auch die beiden DLL's geladen und deren Methoden-Adressen an die Ladeadressen "angepaßt". Es sein, dass beim Start der Exe über den Installer das Install-Verzeichnis also Anwendungs-Verzeichnis genommen wird. Dann findet Windows beim Start deiner Exe natürlich die Dlls nicht. Ich würde mal folgendes machen c:\temp anlegen Install nach c:\temp\ Und auch nach c:\temp installieren ! Heiko |
Re: .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll
Hi,
sag mal berens, verwendest Du EurekaLog? Sieh laut einem Deiner obigen Posts so aus (Unit ExceptionLog). Fall ja, dann ist es das: ![]() Wird im nächsten RC von EurekaLog wohl gefixt. Gruß, Assertor |
Re: .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll
Ich hatte tatsächlich EurekaLog installiert. Dieses habe ich nun komplett deinstalliert und aus allen Projekten die Verweise darauf entfernt. Danach neu kompiliert: Fehler immernoch da.
Ich habe nun mit Himatsu's Manifest-Create ein Manifest erstellt, es als Resource im selben Ordner wie das Projekt kompiliert und dann in die Projekt-Quelltext Unit eingefügt {$R w7.res}. Leider keine Besserung. Weitere Vorschläge? Das Manifest. Zu Testzwecken mit Administrator Rechten.
Delphi-Quellcode:
Das Manifest schein nicht korrekt zu funktionieren.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="0.0.0.0" processorArchitecture="X86" name="welcome-soft" type="Win32"/> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="true"/> </requestedPrivileges> </security> </trustInfo> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> </application> </compatibility> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/> </dependentAssembly> </dependency> </assembly> Wenn ich die identische .exe (mit Fehlermeldung) nach dieser Anleitung: ![]() Was mache ich falsch? Bzw.: Kann ich über ShowMessage oder so ausgeben, mit welchen Rechten das Programm jetzt tatsächlich gestartet wurde? Im Taskmanager steht die .exe immer mit dem aktuellen Benutzername drinnen. Edit: Den Post von Hoika eben erst gesehen. Hoika: Das "aktuelle" Problem dreht sich ja drum, dass der Fehler sogar bei Compilieren&Starten durch Delphi auftritt. Wenn ich das Programm über rechte Maustaste "als Admin starten" ausführe, kommt die Fehlermeldung nicht. Also ist das denke ich kein Problem mit den Pfaden. (Regulär bin ich im Moment auch Admin, btw.) Kann es sein, dass die beiden .dll's auch die .res Datei mit dem Manifest brauchen? Edit: Es scheint so als würde es nun funktionieren, nun, da die .dll Dateien auch das Manifest eingebunden haben. Da das Problem generell ja eher zufällig autritt, kann ich es aber noch nicht abschließend sagen. Wenn das Problem gelöst ist, ist nun die Frage: Funktioniert es, weil das Manifest auch in den dlls eingebunden ist (generell) oder weil das Manifest den dlls (im Moment) Admin rechte gibt. Auf Deutsch: War es nun ein Kompatibilitäts- oder ein Zugriffsrechteproblem? Ich muss es demnächst nochmal mit einem Manifest mit normalen Benuterrechten testen. Bin mal gespannt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 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