Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   DLL Problem mit XE7 (https://www.delphipraxis.net/184595-dll-problem-mit-xe7.html)

helste 8. Apr 2015 17:13

AW: DLL Problem mit XE7
 
Ja, freelibrary war ein Copy and paste Fehler.

In meiner realen Anwendung verwende ich das gar nicht, weil ich da die DLL statisch eingebunden habe. Hat einfach weniger Probleme geliefert.

In meinem Beispielprogramm habe ich nun freelibrary korrigiert. Merkwürdigerweise liefert nun auch Button1 in der Maske der dll DAS Problem. Also sobald eine Datenbankfunktion ausgeführt wird, bekomme ich Probleme beim Freigeben der DLL.
Das Programm hängt dann einfach beim Betätigen von Button3 im rufenden Programm.

Was VCL anbelangt, so muss ich das leider machen. Ich bin gerade dabei ein Programm mit hundertausenden Programmzeilen umzubauen. Da wird eine Maske nach der anderen und ein Modul nach dem anderen auf die neue Benutzeroberfläche gebracht. Das geht leider nur über die DLL.

Hat bisher auch noch kein Problem gegeben, bis ich jetzt auf XE 7 umgestiegen bin.

Ich habe jetzt aber einen anderen Verdacht. Nachdem das immer im Zusammenhang mit den IBDAC Komponenten auftritt, kann da natürlich auch die Ursache liegen. Ich musste da auf die neueste Version updaten, um sie für XE7 nutzen zu können.
In delphi XE5 habe ich noch die alte Version der IBDAC. Ob da nicht auch mit Delphi XE5 das Problem auftritt. Ich trau mich aber nicht da ein Update zu machen, weil ich sonst keine Chance mehr habe die DLL neu zu kompilieren, wenn das Problem da auch auftritt.

Werde aber mal mit Devart Kontakt aufnehmen. Mal sehen, ob die eine Erklährung haben.

Vorher versuche ich noch eine Routine zu erstellen, wo keine VCL benutzt wird, sondern nur ein reiner Datenbankaufruf geschieht. Mal sehen, ob da das Problem auch auftritt.

Echt doof so was. Da macht man nur ein Update auf die aktuellsten Versionen und schon sitzt man in der Sch....

helste 8. Apr 2015 17:33

AW: DLL Problem mit XE7
 
Hab's gerade mal ausprobiert. Liegt irgendwo bei IBDAC.
Habe eine Procedure geschrieben, die eine Datenbankverbindung erstellt, einen Datenbankaufruf macht und den Inhalt eines Feldwertes in eine Stringliste stellt und diese dann in eine Textdatei schreibt. Läuft alles planmäßig ab, aber beim Freigeben der DLL hängt die Anwendung dann.
Ob das nun an Delphi XE7 hängt oder an der aktuellsten Version von IBDAC weiß ich aber nicht. Eventuell mach ich noch mal Delphi XE5 mit neuester IBDAC auf einen Testrechner drauf.

Werde jetzt mal bei Devart nachfragen, möchte mich aber bei allen bedanken, die sich hier eingebracht haben. Danke Jungs.

EWeiss 8. Apr 2015 17:39

AW: DLL Problem mit XE7
 
Irgendwie eine Verbindung zum ComObjekt ?
Hatte auch letztlich ein Problem mit dem freigeben einer DLL die meine Anwendung zum hängen brachte.
Wenn ich CoUninitialize aufgerufen habe bevor die DLL freigegeben wurde hat sich mein Programm aufgehängt.

CoUninitialize nach dem freigeben der DLL hat das Problem beseitigt.

Kann nicht sehen ob deine Datenbank irgendeine Anbindung zu Com hat.
Wenn nicht dann vergess meinen Beitrag einfach.

gruss

helste 8. Apr 2015 18:24

AW: DLL Problem mit XE7
 
Hat damit nichts zu tun. Aber trotzdem Danke.

Habe mal ein kleines Testprogramm an Devart geschickt. Lässt sich zum Glück jetzt wunderbar reproduzieren.
Hoffentlich antworten die rasch.

BadenPower 8. Apr 2015 21:15

AW: DLL Problem mit XE7
 
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject); // DLL freigeben
begin
  FreeLibrary(LHnd);
  edit_test := nil; // diese Zeile
end;
Ist es möglich, dass die markierte Zeile eventuell den Fehler auslöst?

helste 9. Apr 2015 06:36

AW: DLL Problem mit XE7
 
Nein, diese Zeile ist es sicher nicht.

helste 9. Apr 2015 06:52

AW: DLL Problem mit XE7
 
Ich habe gerade mal eben bei meinem einfachen Beispiel die DLL mit Delphi2007 kompiliert. Da habe ich ebenfalls die aktuellste Version von IBDAC in Verwendung. Ist also alles komplett gleich, mit Ausnahme der Delphi Version (und damit verbunden möglicherweise irgendeiner Einstellung bei den Optionen).
Mit dieser DLL funktioniert es sowohl wenn ich das Hauptprogramm mit Delphi 2007, als auch wenn ich es mit Delphi XE7 kompiliere.

Es ist also definitv so, das Delphi XE7 meine DLL irgendwie "verhunzt".

Werde mal den Support von Embarcadero bemühen.

helste 9. Apr 2015 09:27

AW: DLL Problem mit XE7
 
Heute kam Antwort von Devart. Sie haben das in der aktuellen Version (4 Tage, nachdem ich die aktuellste Version installiert hatte) behoben.
Ich bin sehr froh, dass ich mir nun ersparen kann wieder auf eine ältere Delphi Version zu gehen oder alle Datenbankroutinen umzuprogrammieren.

uligerhardt 9. Apr 2015 09:37

AW: DLL Problem mit XE7
 
Zitat:

Zitat von helste (Beitrag 1296865)
Heute kam Antwort von Devart. Sie haben das in der aktuellen Version (4 Tage, nachdem ich die aktuellste Version installiert hatte) behoben.

Und was musst du für den Hotfix zahlen? <gd&r>

helste 9. Apr 2015 10:35

AW: DLL Problem mit XE7
 
Kostet nichts. Ich habe ja erst unlängst ein Update gekauft und da habe ich dann für die nächsten Updates nichts zu zahlen. Ich weiß nicht sicher, aber das geht wohl ein Jahr bzw. einen bestimmten Versionssprung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 Uhr.
Seite 2 von 3     12 3      

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