Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Dynamisches Array in DLL kann nicht erweitert werden (https://www.delphipraxis.net/191814-dynamisches-array-dll-kann-nicht-erweitert-werden.html)

Fritzew 7. Mär 2017 12:51

AW: Dynamisches Array in DLL kann nicht erweitert werden
 
Da hat Blup eindeutig recht.
Zitat:

Zitat von Blup (Beitrag 1363372)
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.


DevidEspenschied 7. Mär 2017 18:27

AW: Dynamisches Array in DLL kann nicht erweitert werden
 
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?

himitsu 7. Mär 2017 21:54

AW: Dynamisches Array in DLL kann nicht erweitert werden
 
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)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:54 Uhr.
Seite 2 von 2     12   

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