![]() |
Arraywerte aus DLL holen
Hallo!!
ICh habe ein Programm mit einer Dll, in der ein Array mit Werten gefüllt wird, wie kann ich der Werte aus der Dll holen? Quelltext der dll ist:
Delphi-Quellcode:
Wie übergebe ich die Werte aus Ducker so, das ich sie in meinem Programm erhalte?
function getprinter(pliste: array of string): string; export;
var i : integer; type TPrinter = record drucker: string; end; var druck : array of TPrinter; begin for i := 0 to Pred(Printer.Printers.Count) do setlength(druck, length(druck)+1); with druck[high(druck)] do begin drucker:= Printer.Printers[i] end; end; exports getprinter name 'getprinter'; begin end. Master |
Re: Arraywerte aus DLL holen
Strings in DLL's sind ganz schlecht, ansonsten übergib einen Pointer auf den Array!
|
Re: Arraywerte aus DLL holen
Hallo!!
wo finde ich was über Pointer, da habe ich nämlich keine Ahnung Master |
Re: Arraywerte aus DLL holen
![]() |
Re: Arraywerte aus DLL holen
Es ist überaus sinnvoll aus DLLs nur primitive Daten, wie Integer und Char zu exportieren. Ansonsten ist es ratsam Zeiger auf kompliziertere Strukturen wie Arrays, Strings (in diesem fall PChar) und Klassen bzw. Objekte zurückzugeben.
Die WinAPI arbeitet ja auch mit Vorliebe mit Objekten. |
Re: Arraywerte aus DLL holen
Möglich ist es aber dennoch, man benötigt einfach nur einen MemmoryManager, der Prozessübergreifend arbeitet.
Der DelphiMM verwaltet ja jeden Prozess (DLL/EXE...) einzeln und daher ist es nicht so leicht einen in einem Prozess erstellten Speicherbereich in einem anderem Prozess zu verwenden -.-'' |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz