AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zwei DLLs statisch laden

Ein Thema von TSchnuckenbock · begonnen am 25. Feb 2022 · letzter Beitrag vom 4. Mär 2022
Antwort Antwort
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.691 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: Zwei DLLs statisch laden

  Alt 25. Feb 2022, 17:16
Ich tippe genau wie Uwe ganz stark darauf, dass die Deklarationen sich irgendwie geändert haben. Ob eine oder zwei DLLs ist dabei völlig egal.

Überprüfe mal anhand der C-Header:
  • Parameter-Typen
  • Parameter-Reihenfolge
  • Calling Convention

Mögliche Ursache:

In C/C++ bastlen sich die Leute bei Interface-Änderungen gerne einen "Compatibility-Layer" mit #define-Makros. Wenn man da nicht genau hinschaut, sucht man sich dumm und dusselig.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
723 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Zwei DLLs statisch laden

  Alt 25. Feb 2022, 17:56
Ist die API so extrem Geheim dass Du nichtmal die Header Dateien oder das C/C++ Beispielprojekt mit uns teilen kannst? Denn aktuell ist es nur Rätselraten.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
TSchnuckenbock

Registriert seit: 20. Jul 2017
Ort: Lüneburger Heide
74 Beiträge
 
Delphi XE5 Professional
 
#3

AW: Zwei DLLs statisch laden

  Alt 25. Feb 2022, 18:06
Ja, die ist so geheim. Das verlangt der Hersteller. Da es eine ganz kleine Nische ist, werden es auch nur ganz wenige Kunden sein (eine Hand voll?), die das SDK überhaupt bekommen. Der Hersteller läßt sich das auch üppigst bezahlen.

Wenn ich die Deklaration der Funktionen aus den C++-Headern 1:1 neu gegen alt in einem Texteditor untereinander packe, dann ist da absolut kein Unterschied.

Es ist auch so, daß alle Funktionen aus der zweiten DLL nicht gehen.

Ich werd mir morgen mal das C++-Demo-Projekt zu Gemüte führen und gucken, ob ich das zum Laufen krieg. Da sind aber meiner Erinnerung nach die *.lib eingebunden und nicht die DLLs.
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
723 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Zwei DLLs statisch laden

  Alt 25. Feb 2022, 18:18
Wenn das so teuer ist dann sollten die mal Sourcecode rausrücken der die DLLs verwendet. Der kann ja auch in C/C++ sein. Aber dann kann man sehen was zu machen ist.
Allerdings, ich habe auch schon *.lib direkt in Delphi (32 Bit) eingebunden und verwendet. Mal gucken wo das Programm ist. Ist nicht Geheim, kann ich also Posten
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
TSchnuckenbock

Registriert seit: 20. Jul 2017
Ort: Lüneburger Heide
74 Beiträge
 
Delphi XE5 Professional
 
#5

AW: Zwei DLLs statisch laden

  Alt 25. Feb 2022, 19:14
Ich habe inzwischen die Vermutung, daß der Fehler nicht beim Laden der DLLs liegt, sondern daß intern in den Funktionen ein Check gemacht wird, aus welcher API sie sind. Das geht dann an den Simulator und der sagt "Nein", will ich nicht und haut den Fehler "falsches ClientHandle" raus.
Sowas in der Art. Das würde erklären, daß mit meinem Konstrukt und Laden aller Funktion aus der alten DLL alles geht, aber wenn ich die aufgespaltenen nutze, dann gehen die Funktionen aus der Lib_A, aber die Funktionen aus Lib_B nicht, weil der Programmierer der DLLs z.B. den Fehler gemacht hat, in LIB_B den API-Versions-Code nicht richtig angepasst zu haben auf die neue API.

Ich könnte mir vorstellen, daß ich eventuell sogar der einzige bin, für den es die DLLs gibt....die anderen Nutzer/Kunden schreiben ihren Krams vermutlich auch in C++ und nutzen die *lib.

Ich werd' mich wohl mal an den Hersteller wenden und dem das Problem schildern. Mal sehen wie ich das Problem rüber kriege....english for me and the manufactura is foreign.

@Sinspin: Aber ein Beispiel-Code mit *lib fände ich trotzdem gut, falls du finden solltest.
  Mit Zitat antworten Zitat
shebang

Registriert seit: 7. Feb 2020
144 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Zwei DLLs statisch laden

  Alt 27. Feb 2022, 11:18
Hast du dir die DLLs mal mit dem Dependency Walker angeschaut? Vielleicht gibt der irgendwelche hilfreichen Hinweise auf die Ursache deines Problems.
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
723 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Zwei DLLs statisch laden

  Alt 27. Feb 2022, 18:33
Hallo,

ich finde meine alten Delphi Quelltexte nicht.
Was ich aber gefunden habe ist ein wrapper. Via MS Visual Studio habe ich mir selber eine DLL aus der .lib gemacht.

Wenn Du jetzt zwei .lib hast wäre es eventuell eine Idee die wieder in eine dll draus zu machen.

Allerdings, bei dem von dir beschriebenen Preis würde ich erstmal beim Hersteller anklopfen und fragen ob der helfen kann.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
TSchnuckenbock

Registriert seit: 20. Jul 2017
Ort: Lüneburger Heide
74 Beiträge
 
Delphi XE5 Professional
 
#8

AW: Zwei DLLs statisch laden

  Alt 27. Feb 2022, 20:23
Mit dem Dependency Walker hatte ich schon geschaut.

Ich denke, ich bau dem Hersteller morgen mal ein kleines Demonstrationsprojekt mit Lazarus (in Delphi hab' ich das ja schon).
Dann soll der sich mal äußern.

Ich vermute, der Fehler bzw. das Problem steckt in den DLLs.

Erstmal Danke.

Vielleicht führe ich mir auch mal Rudy Velthuis Seite etwas intensiver zu Gemüte:

http://rvelthuis.de/articles/articles-cobjs.html
  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 11:44 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