AGB  ·  Datenschutz  ·  Impressum  







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

DLL Problem mit XE7

Ein Thema von helste · begonnen am 8. Apr 2015 · letzter Beitrag vom 9. Apr 2015
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.203 Beiträge
 
Delphi 12 Athens
 
#1

AW: DLL Problem mit XE7

  Alt 8. Apr 2015, 16:58
FreeLibrary ... siehe mein Vorredner.



Versuch mal tparameter = packed record und wenn die DLL Strings rausgibt, dann hoffe ich die werden nicht bei Prozedurende freigegeben.

Die VCL in einer DLL ist aber keine sonderlich gute Idee und kann natülich auch manchmal Probleme bereiten (außer vielleicht in einem eigenem Thread laufend), denn wenn man z.B. mal in TApplication.ProcessMessage reinsieht, dann erkennt man, daß dann Einiges an Funktionalität fehlt, bzw. Schief laufen kann, wenn die Messages nicht im eigenem Modul verarbeitet werden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 8. Apr 2015 um 16:58 Uhr) Grund: *schnarch*
  Mit Zitat antworten Zitat
helste

Registriert seit: 16. Jul 2009
72 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: DLL Problem mit XE7

  Alt 8. Apr 2015, 17:13
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....
  Mit Zitat antworten Zitat
helste

Registriert seit: 16. Jul 2009
72 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: DLL Problem mit XE7

  Alt 8. Apr 2015, 17:33
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.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: DLL Problem mit XE7

  Alt 8. Apr 2015, 17:39
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
  Mit Zitat antworten Zitat
helste

Registriert seit: 16. Jul 2009
72 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: DLL Problem mit XE7

  Alt 8. Apr 2015, 18:24
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.
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#6

AW: DLL Problem mit XE7

  Alt 8. Apr 2015, 21:15
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?
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
helste

Registriert seit: 16. Jul 2009
72 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

AW: DLL Problem mit XE7

  Alt 9. Apr 2015, 06:36
Nein, diese Zeile ist es sicher nicht.
  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 15:20 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