Einzelnen Beitrag anzeigen

egal

Registriert seit: 14. Jul 2004
190 Beiträge
 
Delphi XE4 Professional
 
#18

Re: Pointer auf Array of record

  Alt 26. Okt 2004, 17:39
jetzt habe ich die Code bisschen geändert, aber ich kriege doch die falschen Werte und danach Zugriffsverletzung. Hier ist die Code:
Delphi-Quellcode:
type
  TValue = record
    StrValue: String[6];
    IntValue: Integer;
  end;
  TValues = array of TValue;
  PVDIINT: ^TValues;
var
  VDIINT: TValues;
  PVDIIN: PVDIINT;
  function VDIIWERT(PVDIIN: PVDIINT; Feldnummer: integer): integer; external 'VDIDLL.dll'; stdcall;

my func;
begin
SetLength(VDIINT,Length(VDIINT)+1);
VDIINT[High(VDIINT)].StrValue := 'test';
VDIINT[High(VDIINT)].IntValue := 2;
PVDIIN := @VDIINT;
cRet := IntToStr(VDIIWERT(PVDIIN, StrToInt(res1)));
end;
Und in der Dll:
Delphi-Quellcode:
type
  TValue = record
    StrValue: String[6];
    IntValue: Integer;
  end;
  TValues = array of TValue;
  PVDIINT: ^TValues;

function VDIIWERT(PVDIIN: PVDIINT; Feldnummer: integer): integer;
var
  j: Integer;
  arStri : array[1..10] of String;
  arInt : array[1..10] of Integer;
begin
  temp;
  j:= 0;
  VDIINT := @PVDIIN;
  arStri[1] := VDIINT[0].StrValue;
end;
Ich mache bestimmt was falsches, aber was? Vielleicht muss ich noch einen record machen und da mein TValues deklarieren und noch einen Pointer auf neuen record machen oder?
  Mit Zitat antworten Zitat