AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DLL mehrere Strings auslesen

Ein Thema von S4SH1981 · begonnen am 15. Mär 2009 · letzter Beitrag vom 25. Mär 2009
Antwort Antwort
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: DLL mehrere Strings auslesen

  Alt 20. Mär 2009, 13:58
Mein Vorschlag wäre ja das ganze aufzusplitten:

in der DLL zwei Funktionen:

Delphi-Quellcode:
function GetNetworkAdapterCount: integer;

function GetNetworkAdapter(index: integer; buffer: PChar; size: integer): integer;
Der Aufruf müsste dann nach folgendem Schema erfolgen (Pseudocode):

Code:
ac = GetNetworkAdapterCount;
for i = 0 to ac - 1
begin
  size = GetNetworkAdapter(i, nil, 0);
  -> erstelle einen Buffer mit der Länge size
  GetNetworkAdapter(i, buffer, size);
  -> verwende Buffer weiter.. z.B. als String
     in eine Stringlist oder in ein Array
end;
GetNetworkAdapter wird also 2 mal pro Wert aufgerufen.

Im ersten Aufruf weiss die DLL durch buffer = nil dass sie die Länge des Strings zurückgeben muss.

Beim zweiten Aufruf kopiert sie den String aus der DLL in den Buffer der ja in der Anwendung selbst definiert ist. Wichtig ist das kopieren, denn wenn der Buffer in der DLL freigegeben wird, ist nicht sicher ob da wirklich noch daten drin sind.

Alternativ kannst du wie oben schon erwähnt auch callbacks einsetzen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:30 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