Thema: Prism DLL mit arry Übergabe

Einzelnen Beitrag anzeigen

ueding

Registriert seit: 21. Aug 2005
30 Beiträge
 
Delphi 10.4 Sydney
 
#1

DLL mit arry Übergabe

  Alt 9. Jan 2006, 18:25
Hallo
ich versuche mich gerade mit DLL Erstellung, komme aber nicht so Richtig weiter. Ich möchte ein Array in der DLL befüllen lassen und dann in meiner Anwendung weiter verarbeiten.
Die DLL soll eine .Net DLL werden, ich möchte die DLL Funktionen von einem Win32 Programm und einer .Net Anwendung aufrufen können. Ich habe da so meine Probleme mit dem setzten von Pointern, es wäre Nett wenn Ihr mir ein bisschen helfen könntet.

So stelle ich mit die DLL vor

DLL Programm
Delphi-Quellcode:
library dll_projekt1;

uses
  SysUtils,
  Classes;


type
    PTRec = ^TREc;
    TRec = record
    name : String;
    vorname : String;
  end;

var
adresse : array [0..99] of TREC;

{$R *.RES}

procedure test(i:integer; var ???? TREC oder adresse );
              // was muss ich hier einsetzen ??


begin
if i > 0 then
  begin
  adresse[0].nachname := '10';
  adresse[1].vorname := '20';
 end;
end;

exports test;

begin
end.
So stelle ich mit die Hostanwendung vor
Hostanwendung

Delphi-Quellcode:


unit Hostanwendung;
{$unsafecode on}
interface

uses
  System.Drawing, .......;



type
    PTRec = ^TREc;
    TRec = record
    nachname : String;
    vorname : String;
  end;

 adresse = array [1..99] of TREC;

.
.
.
.
implementation


procedure test(i:integer; ??const ff: PTREC ); stdcall; external 'dll_projekt1.dll'; unsafe;
// wie muss die Procedure deklariert werden
.
.
.


procedure TWinForm.Button1_Click(sender: ...) unsafe;


begin
// wie muss der Auruf jetzt sein
  test(???? 1,PTREC);

  textbox1.Text := adresse[1].nachname;
  textbox2.Text := adresse[1].vorname;
end;
mit einfachen Variablen hat das schonmal funktioniert aber ich hätte gerne ein Array
danke schonmal für die Nette HILFE

Gregor
  Mit Zitat antworten Zitat