![]() |
Prozedureinsprungpunkt nicht gefunden
Hallo,
habe folgende Deklaration:
Delphi-Quellcode:
Bekomme aber eine Fehlermeldung, "Prozedureinsprungpunkt nicht gefunden",
procedure InitOCR; stdcall; external 'ocr.dll';
procedure UnInitOCR;stdcall; external 'ocr.dll'; die Deklaration der C++ Funktion ist
Delphi-Quellcode:
Was mache ich falsch?
void InitOCR();
Danke und Gruss lkz633 |
Re: Prozedureinsprungpunkt nicht gefunden
gibt es auch die UnInitOCR?
|
Re: Prozedureinsprungpunkt nicht gefunden
*kram* *wusel* Voila, habe da mal
![]() |
Re: Prozedureinsprungpunkt nicht gefunden
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
da bekomme ich folgenden Auszug, die Funktionen existieren also....... |
Re: Prozedureinsprungpunkt nicht gefunden
Setze mal einen Unterstrich vor deine Funktionsnamen, dann wird es funktionieren. Im dem Fall, bei dem beim statischen einbinden einer DLL weder Funktionsname noch -index angegeben werden, sucht der Compiler nach einer Funktion mit dem deklarierten Namen, der bei dir ja anders ist als in der DLL.
|
Re: Prozedureinsprungpunkt nicht gefunden
Alternativ
Delphi-Quellcode:
Nachtrag: Ich sehe gerade, daß wir es mit maskierten Namen zu tun haben. Du mußt also vermutlich auch '@0' mit angeben. Also vermutlich:
procedure Bla(); stdcall; external 'bla.dll' name 'EchterExportName';
Delphi-Quellcode:
Tip: Danach mit depends.exe mal nachschauen, ob deine Delphi-EXE die Namen korrekt importiert.
procedure InitOCR; stdcall; external 'ocr.dll' name '_InitOCR@0';
procedure UnInitOCR; stdcall; external 'ocr.dll' name '_UnInitOCR@0'; |
Re: Prozedureinsprungpunkt nicht gefunden
Zitat:
Gruss lkz633 |
Re: Prozedureinsprungpunkt nicht gefunden
Das bedeutet, daß insgesamt 0 Bytes an Parametern auf den Stack gelegt werden. Bei 4 kann es zB ein Pointer oder DWORD sein. Sobald du mit Reverse-Engineering anfängst, wirst du es genauer verstehen lernen ;)
Nachtrag: Borland's C++ verwendet einen anderen Code um die Funktionsnamen zu maskieren. Bei Watcom bin ich nicht sicher. Wenn man in C eine Funktion exportiert, und nicht explizit eine .DEF-Datei angibt, in der die Namen ohne Maskierung angegeben sind, werden sie vom Linker automatisch maskiert. Bei C++ gibt es dann noch so feine Sachen, wo sogar die Typennamen und andere interessante Dinge mit im maskierten Namen verborgen sind. Depends.exe kann die aber alle demaskieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 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