AGB  ·  Datenschutz  ·  Impressum  







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

DLL Verständnis frage...

Ein Thema von DelTurbo · begonnen am 28. Mär 2024 · letzter Beitrag vom 30. Mär 2024
Antwort Antwort
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.245 Beiträge
 
Delphi 2007 Architect
 
#1

AW: DLL Verständnis frage...

  Alt 30. Mär 2024, 09:16
Die Lösung aus dem ersten Post passt schon so. Ich würde den WideString nur als Rückgabewert nehmen. Wofür soll das ein var Parameter sein? Es sei denn der Rückgabewert soll z.B. den Erfolg signalisieren.
Danke, ja das ist eigentlich eine Function die ein True/False zurückgibt. Ich habe das ob nur so einfach wie möglich gemacht, das es nicht so viel wird.

Danke @all, ich habe es auch so am Laufen. Von Win7-11.

Frohe Ostern euch allen, auch an alle hier im Forum....
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: DLL Verständnis frage...

  Alt 30. Mär 2024, 09:58
Ich nutze mittleiweile of XEx DLL's von D2007 aus.
Dein Beispiel ist correct.

WideStrings werden "von Windows" verwaltet, daher machen die kein Problem.

Strings und AnsiString gehen nicht, weil die in unterschiedlichen Speichern verwaltet werden.

Native type wie byte, integer und gehen natürlich auch. Das gleiche gilt für interfaces.

Für Streams musst Du einen IStream verwenden.

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: DLL Verständnis frage...

  Alt 30. Mär 2024, 11:00
Nicht nur unterschiedlich verwaltet, was sich via ShareMem lösen liese.

Im Jahre 2009 wurde auch die Struktur der LongStrings geändert.
* früher gab es vor den Chars nur Felder/Variablen für Length und Referenzzähler
* jetzt gibt es zusätzlich noch Felder für die CodePage und die CharSize.

Neue Delphis auf alten Strings, würden also auf beim Kopieren des Strings auf nichtexistierende Felder zugreifen
und die Speicherverwaltung würde jeweils mit einem falschen Offset den internen Anfang des Strings falsch bestimmen.

Hier mal ein böses Beispiel, was für einen Aufwand man bekommt, wenn man dennoch Delphi-Strings zwischen DLLs/EXE übergeben möchte.
https://www.delphipraxis.net/213736-...-fuer-neu.html



ShareMem verbindet nur den SpeicherManager, aber dennoch haben DLL und EXE weiterhin jeweils eigene Funktionen für die Verwaltung des Strings.

Delphi 2 bis 2007 sind bezüglich dem AnsiString somit noch kompatibel, was die Verwaltungsfunktionen der Strings angeht (ShareMem vorausgesetzt)
oder eben alles ab 2009 bis "jetzt", wo AnsiString sowie UnicodeString kompatibel wären.

Ja, sogar AnsiString und UnicodeString/String sind per se untereinander kompatibel, ABER seitdem das StringChecking wieder deaktiviert wurde, stimmt das nur bedingt.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (30. Mär 2024 um 11:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: DLL Verständnis frage...

  Alt 30. Mär 2024, 12:17
Nicht nur unterschiedlich verwaltet, was sich via ShareMem lösen liese.
ShareMem mit D2007 und einer D11.3 DLL?

Seit wann soll das funktionieren?

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: DLL Verständnis frage...

  Alt 30. Mär 2024, 12:23
Es gibt nicht nur dieses eine SharedMemory.
Ein Therapeut entspricht 1024 Gigapeut.
  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 04:50 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