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
 
S4SH1981

Registriert seit: 13. Jul 2007
59 Beiträge
 
#1

DLL mehrere Strings auslesen

  Alt 15. Mär 2009, 16:54
Hallo zusammen,

habe mal wieder ein Problem mit meiner DLL Datei.
Meine DLL soll mir die Netzwerkadapter auslesen.
Das tut sie soweit auch.
Nur das Problem ist, dass ich 4 Netzwerkadapter in meinem Rechner habe:
W-LAN
LAN
Bluetooth
FireWire

Meine DLL sieht so aus:
Delphi-Quellcode:
library GetNetworkAdapters;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muss sich in der
  ersten Unit der unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
  Quelltext anzeigen), falls die DLL Prozeduren oder Funktionen exportiert, die
  Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
  Strings, die von oder an die DLL übergeben werden -- sogar für diejenigen, die
  sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-Unit zur
  Verwaltungs-DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
  Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
  Informationen als PChar- oder ShortString-Parameter übergeben. }

  

uses
  sharemem,
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  ExtCtrls,
  StdCtrls,
  Winsock,
  IpRtrMib,
  IpHlpApi,
  IpTypes,
  IpIfConst;

{$R *.res}

function GetNetworkAdapter: string;
var
  MibRow: TMibIfRow;
  IntfTable: PMibIfTable;
  Size: DWORD;
  I: Integer;
begin
  Size := 0;
  If GetIfTable(nil, Size, True) <> ERROR_INSUFFICIENT_BUFFER then Exit;
  IntfTable := AllocMem(Size);
  Try
    If GetIfTable(IntfTable, Size, True) = NO_ERROR then
      For I := 0 to IntfTable^.dwNumEntries -1 do
        begin
          {$R-}
          MibRow := IntfTable.Table[I];
          result := (PChar(@MibRow.bDescr[0]) + ' @ ' + InttoStr(MibRow.dwSpeed div 1000000)+ ' MBit/s'
            );
          {$R+}
        end;
  Finally
    FreeMem(IntfTable);
  end;
end;

exports
   GetNetworkAdapter;

begin
end.
Wie bekomme ich nun in meinem Programm alle Adapter in einer z.B. Combobox angezeigt?
Bisher nutze ich ComboBox1.Items.Add(getnetworkadapter); und es wird mir nur ein beliebiger Adapter gezeigt.
  Mit Zitat antworten Zitat
 


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 03:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz