AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Dynamisches Array in DLL kann nicht erweitert werden
Thema durchsuchen
Ansicht
Themen-Optionen

Dynamisches Array in DLL kann nicht erweitert werden

Ein Thema von devidespe · begonnen am 22. Feb 2017 · letzter Beitrag vom 7. Mär 2017
Antwort Antwort
Seite 2 von 2     12   
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Dynamisches Array in DLL kann nicht erweitert werden

  Alt 7. Mär 2017, 12:51
Da hat Blup eindeutig recht.
Damit hast du den Fehler nicht beseitigt, nur das Symptom Zugriffsverletzung tritt zufällig an dieser Stelle nicht mehr auf. Wenn Speichermanager A Speicher freigibt, den Speichermanager B reserviert hat, wird Speichermanager B irgendwann versuchen darauf zuzugreifen. Das kann in einem völlig anderen Programmteil irgendwann wieder zur Zugriffsverletzung führen und du wirst nicht wissen warum.
Fritz Westermann
  Mit Zitat antworten Zitat
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: Dynamisches Array in DLL kann nicht erweitert werden

  Alt 7. Mär 2017, 18:27
Ja das dachte ich mir schon, und bin auch fündig geworden. Es sind die Strings im Packed-Record des offenen Arrays, die Probleme machen. Wenn ich diese entferne, kann ich das Array beliebig erweitern und es tritt keinerlei Absturz auf.

Dass man Strings nicht verwenden sollte als Austausch zwischen DLL und MainApp, habe ich schon öfter gelesen. Aber gleichzeitig las ich etwas von Ansichar.

Wäre denn folgende String-Alternative besser geeignet?

Delphi-Quellcode:
type SingleDataSet = packed record
        DataSetNr : Byte;
        DataSetName : Array [0 .. 255] of Ansichar;
        DataSetValue : Integer;
      end;
Oder wirklich komplett verzichten?
Devid
57 65 72 20 6C 65 73 65 6E 20 6B 61 6E 6E 2C 20 69 73 74 20 6B 6C 61 72 20 69 6D 20 56 6F 72 74 65 69 6C 21
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Dynamisches Array in DLL kann nicht erweitert werden

  Alt 7. Mär 2017, 21:54
ShortStrings sind auch "Records"

also ShortString oder String[1] bis String[255]


"Einziger" Nachteil ... die gibt es nur als ANSI und mit maximal 255 Zeichen (256 Byte)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 07:15 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