Einzelnen Beitrag anzeigen

Ex0rzist

Registriert seit: 17. Aug 2002
Ort: Rostock
5 Beiträge
 
Delphi 6 Professional
 
#7
  Alt 18. Aug 2002, 15:35
Hi,

ich hab nochmal ´ne Frage:
Wie geht das mit mehrdimensionalen dynamischen Arrays?

Ich poste hier mal meinen Code:

Für die Exe:
Code:
unit Projekt1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  ZweiDim = Array of Array of Integer;
  PZweiDim = ^ZweiDim;
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen}
  public
    { Public-Deklarationen}
  end;

var
  Form1: TForm1;
  aZweiDim: ZweiDim;
Procedure Modifiziere(p: PZweiDim); external 'matrix.dll';

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
 SetLength(aZweiDim,2,2);
 aZweiDim[0][0] := 1;
 aZweiDim[0][1] := 1;
 aZweiDim[1][0] := 1;
 aZweiDim[1][1] := 1;
 Modifiziere(@aZweiDim);
end;

end.
Für die DLL:
Code:
library matrix;

uses
  SysUtils,
  Classes;

type
  ZweiDim = Array of Array of Integer;
  PZweiDim = ^ZweiDim;

procedure Modifiziere(p: PZweiDim); stdcall;
var i,k : integer;
begin
  For i := 0 to high(p) do
   begin
    For k := 0 to high(p) do
     begin
      p^[i][k] := 17;
     end;
   end;
end;

exports Modifiziere;

begin
end.
Kann mir einer von Euch sagen, was daran falsch ist?
Ich sehe vor lauter Pointern und Dimensionen schon gar nicht mehr durch.
So, wie ich das mitbekommen habe, liegt der Fehler in der DLL (von den Fehlermeldungen her).

__________

Ex0rzist
  Mit Zitat antworten Zitat