AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein DLL-Funktion aus einer anderen DLL aufrufen.
Thema durchsuchen
Ansicht
Themen-Optionen

DLL-Funktion aus einer anderen DLL aufrufen.

Ein Thema von DerNutzer · begonnen am 14. Sep 2017 · letzter Beitrag vom 15. Sep 2017
Antwort Antwort
DerNutzer

Registriert seit: 14. Sep 2017
7 Beiträge
 
#1

AW: DLL-Funktion aus einer anderen DLL aufrufen.

  Alt 14. Sep 2017, 18:08
Der Funktionsaufruf dient der Verbindungsaufnahme mit einem PicoScope (Oszilloskop) und funktioniert, wie schon geschrieben, in einer Exe problemlos. Die Funktion liefert dabei einen Handle auf das Gerät zurück. Beim Aufruf kann man noch eine Seriennummer übergeben um ein spezifisches Gerät anzusprechen (übergibt man dort NIL wird das Erstbeste angesprochen) und der Modus beschreibt einfach die Auflösung der Abtastung (16 bit bis 8 bit).

Und der Debugger bleibt genau bei diesem Funktionsaufruf stehen und nur ein Beenden der Anwendung löst das Problem.

Die DLLmain ist bis auf den Funktionsaufruf leer. Ich habe extra eine neue DLL für die Fehlersuche angelegt.

Und der Rest der DLL funktioniert ohne den Aufruf bestens.

Und ich verwende ein Delphi XE3 unter Windows 10.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: DLL-Funktion aus einer anderen DLL aufrufen.

  Alt 14. Sep 2017, 18:13
Wird die Treiber DLL denn von deiner DLL geladen? Statisch? Dynamisch? Guck doch mal mit dem Prozessexplorer, ob sie überhaupt gefunden und geladen wird. Ich würde es mal mit dynamischen Laden probieren, da sieht man gleich beim Aufruf von LoadLibrary, ob da schon was schief geht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: DLL-Funktion aus einer anderen DLL aufrufen.

  Alt 14. Sep 2017, 18:55
Die DLLmain ist bis auf den Funktionsaufruf leer. Ich habe extra eine neue DLL für die Fehlersuche angelegt.
Da wird das Problem liegen. In der DllMain sollte man nie komplexen Code ausführen. Dass ansonsten unerwünschtes Verhalten auftreten kann ist von MS auch dokumentiert:
https://msdn.microsoft.com/en-us/lib...best_practices
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
DerNutzer

Registriert seit: 14. Sep 2017
7 Beiträge
 
#4

AW: DLL-Funktion aus einer anderen DLL aufrufen.

  Alt 14. Sep 2017, 19:49
Zitat:
Ich würde es mal mit dynamischen Laden probieren, da sieht man gleich beim Aufruf von LoadLibrary, ob da schon was schief geht.
Auch das habe ich versucht. Das Resultat war auch da ein Hänger.

Zitat:
Da wird das Problem liegen. In der DllMain sollte man nie komplexen Code ausführen.
Sollte da die Lösung liegen? Das versuche ich morgen mal. Daran habe ich mit keiner Silbe gedacht. Vielen Dank für den Tipp.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

AW: DLL-Funktion aus einer anderen DLL aufrufen.

  Alt 14. Sep 2017, 20:21
Zitat:
Zitat:
Da wird das Problem liegen. In der DllMain sollte man nie komplexen Code ausführen.
Sollte da die Lösung liegen? Das versuche ich morgen mal. Daran habe ich mit keiner Silbe gedacht. Vielen Dank für den Tipp.
Bin mir ziemlich sicher. Lager deinen Funktionsaufruf einfach testweise mal in eine dedizierte exportierte Funktion aus, die du dann aus dem Hauptprogramm aus aufrufst.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
DerNutzer

Registriert seit: 14. Sep 2017
7 Beiträge
 
#6

AW: DLL-Funktion aus einer anderen DLL aufrufen.

  Alt 15. Sep 2017, 08:57
Zitat:
Bin mir ziemlich sicher. Lager deinen Funktionsaufruf einfach testweise mal in eine dedizierte exportierte Funktion aus, die du dann aus dem Hauptprogramm aus aufrufst.
Gemacht und es funktioniert. Ich bedanke mich herzlichst für die schnelle und zielführende Hilfe!
  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 09:24 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