AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Prozedureinsprungpunkt nicht gefunden
Thema durchsuchen
Ansicht
Themen-Optionen

Prozedureinsprungpunkt nicht gefunden

Ein Thema von lkz633 · begonnen am 9. Apr 2005 · letzter Beitrag vom 9. Apr 2005
Antwort Antwort
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#1

Prozedureinsprungpunkt nicht gefunden

  Alt 9. Apr 2005, 11:34
Hallo,

habe folgende Deklaration:

Delphi-Quellcode:
procedure InitOCR; stdcall; external 'ocr.dll';
  procedure UnInitOCR;stdcall; external 'ocr.dll';
Bekomme aber eine Fehlermeldung, "Prozedureinsprungpunkt nicht gefunden",

die Deklaration der C++ Funktion ist
void InitOCR(); Was mache ich falsch?

Danke und Gruss
lkz633
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#2

Re: Prozedureinsprungpunkt nicht gefunden

  Alt 9. Apr 2005, 11:50
gibt es auch die UnInitOCR?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#3

Re: Prozedureinsprungpunkt nicht gefunden

  Alt 9. Apr 2005, 11:55
*kram* *wusel* Voila, habe da mal was aus der Zauberkiste geholt. Damit kannst du gucken, wie die Exporte der DLL wirklich heißen, oder ob es vielleicht nur Ordinals sind.
  Mit Zitat antworten Zitat
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#4

Re: Prozedureinsprungpunkt nicht gefunden

  Alt 9. Apr 2005, 12:00
Hallo,

da bekomme ich folgenden Auszug, die Funktionen existieren also.......
Miniaturansicht angehängter Grafiken
dp_133.jpg  
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#5

Re: Prozedureinsprungpunkt nicht gefunden

  Alt 9. Apr 2005, 12:06
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.
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#6

Re: Prozedureinsprungpunkt nicht gefunden

  Alt 9. Apr 2005, 12:11
Alternativ

procedure Bla(); stdcall; external 'bla.dllname 'EchterExportName'; Nachtrag: Ich sehe gerade, daß wir es mit maskierten Namen zu tun haben. Du mußt also vermutlich auch '@0' mit angeben. Also vermutlich:
Delphi-Quellcode:
procedure InitOCR; stdcall; external 'ocr.dllname '_InitOCR@0';
procedure UnInitOCR; stdcall; external 'ocr.dllname '_UnInitOCR@0';
Tip: Danach mit depends.exe mal nachschauen, ob deine Delphi-EXE die Namen korrekt importiert.
  Mit Zitat antworten Zitat
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#7

Re: Prozedureinsprungpunkt nicht gefunden

  Alt 9. Apr 2005, 12:47
Zitat von Mephistopheles:
Nachtrag: Ich sehe gerade, daß wir es mit maskierten Namen zu tun haben. Du mußt also vermutlich auch '@0' mit angeben. Also vermutlich:
Delphi-Quellcode:
procedure InitOCR; stdcall; external 'ocr.dllname '_InitOCR@0';
procedure UnInitOCR; stdcall; external 'ocr.dllname '_UnInitOCR@0';
Danke, jetzt klappts einwandfrei. Was bedeutet genau das @0 ?

Gruss
lkz633
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#8

Re: Prozedureinsprungpunkt nicht gefunden

  Alt 9. Apr 2005, 12:56
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:28 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