Danke schonmal für die schnelle Antwort
Zitat:
dann kannst du nicht einfach im haputprogramm const, statt var schreiben, wenn du var in der
dll definiert hast:
das weis ich auch das das nicht geht, es wäre nett wenn Ihr den Code passend vervolständigen könnt, wie muss den die Funktion in der
DLL aussehen
DLL
Delphi-Quellcode:
..
procedure test(i:integer; var ???? TREC oder adresse );
begin
..
in der Hostanwendung
Delphi-Quellcode:
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;
Zitat:
evtl. solltest du noch genauer erklären, was du machen willst, denn du kannst z.b. statt dem übergeben des pointers auch einfach eine funktion mit result definieren..
in der
DLL wird das Array mit Adressen gefüllt, diese werden dann nach später in der Hostanwendung weiter verarbeitet.
Zitat:
ps: was macht der "parameter" unsafe?
So wird bei .Net in
DLL's unsicherer Code gekennzeichnet, z.B. wenn Pointer im spiel sind.
Zitat:
.NET-Dlls haben einen komplett anderen Aufbau als
Win32-Dlls, du kannst von einem
Win32-Programm keine Funktionen einer .NET-
Dll aufrufen (vice versa geht es per P/Invoke).
ich habe schon eine
DLL erstellt aus der ich aus einer
win32 Anwendung eine .NET
DLL aufrufe, und .Net Funktionen ausführe, klappt hervoragend.
Gregor