AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi IP Helper Functions (IpHlpApi) für Vista?
Thema durchsuchen
Ansicht
Themen-Optionen

IP Helper Functions (IpHlpApi) für Vista?

Offene Frage von "CodeX"
Ein Thema von CodeX · begonnen am 20. Mär 2009 · letzter Beitrag vom 21. Mär 2009
Antwort Antwort
CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#1

IP Helper Functions (IpHlpApi) für Vista?

  Alt 20. Mär 2009, 00:46
Ich benötige einige IPv6 Funktionen, die mit Vista neu hinzugekommen sind und in der IpHlpApi vorhanden sind.
Leider scheint bei den Jedis noch die alte Version der JwaIpHlpApi.pas zu bestehen, wo die neuen Funktionen und Datentypen fehlen.

Also konkret geht es beispielsweise um folgende Funktionen:
CreateAnycastIpAddressEntry
CreateUnicastIpAddressEntry
DeleteAnycastIpAddressEntry
DeleteUnicastIpAddressEntry
GetAnycastIpAddressEntry
GetAnycastIpAddressTable
GetMulticastIpAddressEntry
GetMulticastIpAddressTable
GetUnicastIpAddressEntry
GetUnicastIpAddressTable
InitializeUnicastIpAddressEntry
NotifyStableUnicastIpAddressTable
SetUnicastIpAddressEntry

siehe MSDN IP Helper Functions


Ich habe auch versucht, die Sachen selber zu übersetzen, scheitere aber aufgrund mangelnder Erfahrung darin.

Also irgendwie so in der Art nehme ich an:
Code:
NETIOAPI_API CreateUnicastIpAddressEntry(
  __in const MIB_UNICASTIPADDRESS_ROW *Row
);
Delphi-Quellcode:
function CreateUnicastIpAddressEntry(const Row: MIB_UNICASTIPADDRESS_ROW): NETIOAPI_API; stdcall;
{$EXTERNALSYM CreateUnicastIpAddressEntry}
Wobei ich weder weiß, was ich mit dem *Row machen soll, noch wo ich die Datentypen hernehmen soll.

Daher meine Fragen:
1. Gibt es irgendwo eine aktuelle (Jwa)IpHlpApi.pas, wo diese Funktionen und Datentypen enthalten sind? Oder hat sich jemand schon mal die Mühe gemacht und diese Sachen übersetzt?
2. Falls nicht, kann mir jemand beim Übersetzen von ein paar der Funktionen helfen?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: IP Helper Functions (IpHlpApi) für Vista?

  Alt 20. Mär 2009, 01:09
Die Datentypen musst du natürlich ebenfalls übersetzen. Das * steht für einen Pointer auf den Datentyp. In Delphi also:
Delphi-Quellcode:
PMIB_UNICASTIPADDRESS_ROW = ^MIB_UNICASTIPADDRESS_ROW;

function CreateUnicastIpAddressEntry(const Row: PMIB_UNICASTIPADDRESS_ROW): NETIOAPI_API; stdcall;
Gab es da nicht auch ein automatisches Übersetzungstool, in das du nur die Headerdatei aus dem SDK füttern musst? Danach sind dann zwar immer noch Feinheiten zu erledigen, aber vieles macht das Tool.
Ich schau mal, ob ich das finde, was ich meine.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#3

Re: IP Helper Functions (IpHlpApi) für Vista?

  Alt 20. Mär 2009, 01:47
Das wäre natürlich schön, wenns automatisch gehen würde. Denn mit den Datentypen wird das ja noch verworrener. SOCKADDR_INET, NET_LUID, NL_PREFIX_ORIGIN, ...? Ach herrje...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: IP Helper Functions (IpHlpApi) für Vista?

  Alt 20. Mär 2009, 01:55
Als Vorlage benutzt du doch hoffentlich die SDK-Header und nicht die Dokumentation? Denn da hast du ja direkt alles aus einen Blick.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#5

Re: IP Helper Functions (IpHlpApi) für Vista?

  Alt 20. Mär 2009, 02:48
Das SDK (6.1.6000.16384.10) habe ich sogar installiert, aber habe keinen Mehrwert gesehen, das dort nachzuschauen statt bei MSDN. Hm, ist mir dadurch jetzt viel entgangen?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: IP Helper Functions (IpHlpApi) für Vista?

  Alt 20. Mär 2009, 03:53
Entgangen nicht, aber da hast du alles auf einen Blick. Möglich ist natürlich auch die Dokumentation als Quelle, aber ich finde das ist sehr viel umständlicher als das einfach aus der Datei zu kopieren und zu übersetzen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#7

Re: IP Helper Functions (IpHlpApi) für Vista?

  Alt 20. Mär 2009, 04:07
Hey, Kopieren krieg ich hin! Am Übersetzen scheiterts...

Jetzt wollte ich das auch im SDK anchauen, finde aber die Datei Netioapi.h nicht und in der Iphlpapi.h stehen die nicht. Fehlt mir was oder habe ich doch nicht das aktuellste SDK? Die .NET Docu habe ich nicht mitinstalliert, aber das wird ja hoffentlich nicht der Grund sein...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: IP Helper Functions (IpHlpApi) für Vista?

  Alt 20. Mär 2009, 04:42
Dann hast du nicht die Version für Windows Vista. Diese bekommst du hier (Windows SDK for Windows Server 2008 and .NET Framework 3.5, ca. 1,3 GiB):
http://www.microsoft.com/downloads/d...displaylang=en

// EDIT:
Informationen zur Übersetzung findest du hier, zusammen mit dem entsprechenden Tool (ganz unten auf der Seite):
http://www.delphi-jedi.org/api-howto.html
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#9

Re: IP Helper Functions (IpHlpApi) für Vista?

  Alt 20. Mär 2009, 23:24
Also ich komme leider nicht weiter. Das Tool zum Headerübersetzen tuts irgendwie nicht so wirklich. Habe mal versucht netioapi.h damit zu übersetzen. Im Ergebnis sind die ersten paar Zeilen vorhanden, dann ungefähr 90% leere Zeilen und dann am Schluss noch die implementation mit der procedure LoadDLL;. Kannst Du das bestätigen?

Manuell komme ich auch nach langem Suchen und Probieren nicht weiter.

Delphi-Quellcode:
type
  PMIB_UNICASTIPADDRESS_ROW = ^MIB_UNICASTIPADDRESS_ROW;
  MIB_UNICASTIPADDRESS_ROW = record
  Address : SOCKADDR_INET;
  InterfaceLuid : NET_LUID;
  InterfaceIndex : NET_IFINDEX;
  PrefixOrigin : NL_PREFIX_ORIGIN;
  SuffixOrigin : NL_SUFFIX_ORIGIN;
  ValidLifetime : ULONG;
  PreferredLifetime : ULONG;
  OnLinkPrefixLength : UINT8;
  SkipAsSource : BOOLEAN;
  DadState : NL_DAD_STATE;
  ScopeId : array [0..MAX_SCOPE_ID_LEN + 3] of Char; // SCOPE_ID;
  CreationTimeStamp : LARGE_INTEGER;
  end;

function CreateUnicastIpAddressEntry(const Row: PMIB_UNICASTIPADDRESS_ROW): NETIOAPI_API; stdcall;
Was ist denn nun NETIOAPI_API? Und was SOCKADDR_INET, NET_LUID, NET_IFINDEX, NL_PREFIX_ORIGIN, NL_SUFFIX_ORIGIN, NL_DAD_STATE?
Ich habe keine Ahnung, wo ich diese Deklarationen herzaubern soll. Hilfe...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: IP Helper Functions (IpHlpApi) für Vista?

  Alt 21. Mär 2009, 01:32
Schau einfach oben nach welche Headerdateien eingebunden wurden, in einer davon steht das dann. Mit einer C++-IDE lässt sich das auch direkt verfolgen.
Du kannst auch einfach mit Notepad++ z.B. in allen Dateien im Include Verzeichnis nach einer Definition suchen.

SOCKADDR_INET ist z.B. in ws2ipdef.h definiert.
Sebastian Jänicke
AppCentral
  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 03:23 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