PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DLL Delphi C# benutzen


pajofego
2006-03-03, 20:03:57
Hallo Leute,

ich habe mich auf Grund der hier in diesem vorherigem Thread (http://www.forum-3dcenter.org/vbulletin/showthread.php?t=280605) daran gemacht, mein Delphi Code in eine DLL zu packen, um diesen in C# zu benutzen. Leider happert's von meiner Seite aus an den Grundlagen. Ich muss gestehen, dass ich das noch nie gemacht habe und prizipiell auch mir nicht sicher bin ob es so wie ich es mir vorstelle geht. Deshalb hier mein Hilferuf: :rolleyes:


library DLL_Test;

uses
SysUtils, Classes;

type
TMyValue = Double;
TMyValueArray = array of TMyValue;
TMyArrayClass = class(TObject)
public
function AddiereArrays(ArrayVal1, ArrayVal2 : TMyValueArray):TMyValueArray; stdcall;
end;

function TMyArrayClass.AddiereArrays(ArrayVal1, ArrayVal2 : TMyValueArray):TMyValueArray; stdcall;
var
i : integer;
tempArray :TMyValueArray;
begin
tempArray := nil;
if not High(ArrayVal1) = High(ArrayVal2) then
writeln('Array mit unterschiedlicher Groesse !!!')
else
begin
SetLength(tempArray, High(ArrayVal1));
for i := 0 to High(ArrayVal1) do
tempArray[i] := ArrayVal1[i] + ArrayVal2[i];
end;
AddiereArrays := tempArray;
end;

exports
TMyValueArray;
begin
end.



Dieser Delphicode soll als Beispielcode für die Struktur, die ich einsetze. Ich verwende viele Klassen sowie viele eigene komplexe Datentypen (hier z.B. TMyValueArray). Jetzt würde ich ganz gerne von C# aus Zugriff auf die unterschiedlichen Klassen und komplexen Datentypen haben. Und da fangen die Schwierigkeiten an.

1.) Ist der Code in Delphi so in Ordnung um daraus eine DLL zu machen? Was muss in den Abschnitt "exports" rein? So wie es oben steht, meckert er.

2.) Wie rufe ich und initialisiere bzw. wie kann ich diese Klasse und kompl. Datentyp in C# benutzen?

Danke für eure Hilfe,

Gruß

pajofego