Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#33

AW: Array of Integer und crash

  Alt 19. Mär 2017, 23:47
Das sieht aber immer noch nicht so aus, wie ich das gezeigt hatte:

Delphi-Quellcode:
var
  p: Pointer;
//###############
// Bytearray dimensionieren
p := @PropItem;
GetMem(p, PropSize);

SetLength(Prop, (PropItem.length - 1));
CopyMemory(@Prop[0], @PropItem.value, PropItem.length);

FreeMem(p);

So sollte es auch mit dem Prop-Array gehen:

Delphi-Quellcode:
   PropSize: UINT;
   PropItem: PPropertyItem; // dynamischer Pointer auf Record, deswegen PPropertyItem und nicht TPropertyItem


  if GDIP_GetPropertyItemSize(InGifImage, PropertyTagFrameDelay, PropSize) = S_OK then
  begin
    GetMem(PropItem, PropSize); // Record in passender Größe bereitstellen
    // Daten auslesen
    if GetPropertyItem(InGifImage, PropertyTagFrameDelay, PropSize, PropItem^) = S_OK then begin
      SetLength(Prop, PropItem.length); // nix -1 !!!
      CopyMemory(@Prop[0], PropItem.value, PropItem.length);
      ...
    end;
    FreeMem(PropItem); // Delphi merkt sich die Size intern
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat