![]() |
Prozedureinsprungpunkt "TraceMessage" in "ADVAPI32.dll" nicht gefunden
Ich versuche erfolglos herauszufinden, warum ein bestimmtes Projekt unter Windows2000 nicht starten möchte. Ab XP startet es problemlos, jedoch bei 2000 erscheint direkt beim Start folgende Meldung und das Programm wird gar nicht erst angezeigt.
Code:
Nun habe ich zwar schon herausgefunden, dass TraceMessage erst ab XP vorhanden ist und deshalb meckert 2000. Aber ich kann beim besten Willen nicht finden, wo TraceMessage in dem Projekt überhaupt vorkommt. Ich habe alle *.pas Dateien nach TraceMessage und ADVAPI32 durchsuchen lassen, aber nichts gefunden. Das heißt irgendetwas ruft irgendetwas auf, wo dann TraceMessage dynamisch verlinkt ist.
Der Prozedureinsprungpunkt "TraceMessage" wurde in der DLL "ADVAPI32.dll" nicht gefunden.
Nun habe ich Delphi aber nicht unter Win2000 installiert und kann das entsprechend auch nicht debuggen. Wie gehe ich am besten vor, um herauszufinden, an welcher Stelle auf TraceMessage zugegriffen wird? Oder kann ich im Projekt generell irgendwie sagen, dass diese Funktion unter 2000 nicht geladen werden soll? |
AW: Prozedureinsprungpunkt "TraceMessage" in "ADVAPI32.dll" nicht gefunden
Nutzt du irgendwas zur Fehleranalyse in deinem Programm, wie z.B. MadExcept?
Tritt der Fehler direkt beim Start auf oder erst später? (eventuell mal über F7, F8 und Co. versuchen rauszufinden, wo sich dieses versteckt) |
AW: Prozedureinsprungpunkt "TraceMessage" in "ADVAPI32.dll" nicht gefunden
Hol dir mal den
![]() |
AW: Prozedureinsprungpunkt "TraceMessage" in "ADVAPI32.dll" nicht gefunden
Zitat:
Zitat:
Zitat:
Auf jeden Fall vielen Dank für die Ideen! Habt Ihr vielleicht noch andere Ansätze? |
AW: Prozedureinsprungpunkt "TraceMessage" in "ADVAPI32.dll" nicht gefunden
Habs hinbekommen.
Habe die DLL ausfindig gemacht, die auf die Funktion aus der anderen DLL zugegriffen hat und habe die DLL jetzt anders eingebunden. Da Delphi erst ab Version 2010 Delayed DLL Loading unterstützt, habe ich mich für meine 2006er Version dieser Methode hier bedient: ![]() Für den Fall, dass es jemanden interessiert, die man DLLs nur bei Bedarf laden kann, ohne sie aufwändig explizit einbinden zu müssen. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 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