Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: WinAPI ::  [gelöst]Fehlersuche: PIP_ADAPTER_UNICAST_ADDRESS unbekannter bezeichner     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Khalidjian
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.07.2014
Beiträge: 23
Beitrag Khalidjian Mitglied 10:15:58 15.11.2016   Titel:   [gelöst]Fehlersuche: PIP_ADAPTER_UNICAST_ADDRESS unbekannter bezeichner            Zitieren

Hallo,

eigentlich ist es mir fast peinlich euch damit zu belästigen, aber ich finde mein Problem nicht und weiß auch langsam nicht mehr, wie ich weiter vorgehen soll.

laut MSDN: https://msdn.microsoft.com/en-us/library/windows/desktop/aa366066(v=vs.85).aspx muss ich Winsock2 vor der IPhlpAPi einbinden. Das habe ich dann auch getan:

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <sstream>
#include <iomanip>
#include <stdio.h>
#include <stdint.h>
#include <math.h>
#include <string>

#include <WinSock2.h>

#include <IPHlpApi.h>
#include <ws2ipdef.h>
#include <mstcpip.h>
#include <inaddr.h>
#include <in6addr.h>
#include <windows.h>
#include <LM.h>
#include <Psapi.h>

#include "systeminformation.h"


Dennoch erhalte ich in "systeminformation.h", was der Header zu meiner Klasse ist den Compiler Fehler: "C2061: Syntaxfehler: Bezeichner 'PIP_ADAPTER_UNICAST_ADDRESS'".
Was ein nicht deklarierter Bezeichner wäre. Wenn ich in die IPHlpApi.h hinein sehe, sehe ich auch, dass dort _WINSOCK2API_ nicht definiert zu sein scheint.
Haabt ihr eine Idee woran es liegt oder wie ich bei der Fehlersuche noch vorgehen kann?

Ich benutze den msvc2013 compiler im QT Creator 4.1.

Vielen Dank für eure Hilfe.


Zuletzt bearbeitet von Khalidjian am 10:17:46 22.11.2016, insgesamt 2-mal bearbeitet
unskilled
Mitglied

Benutzerprofil
Anmeldungsdatum: 06.07.2007
Beiträge: 3892
Beitrag unskilled Mitglied 13:08:14 15.11.2016   Titel:              Zitieren

Ich hatte mal ähnliche Probleme und habe am Ende die windows.h nicht eingebunden, weil die über (iirc) winsock included wird. bei mir sieht das konkret so aus:

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 /*windows.hpp*/
#pragma once

#pragma warning( push )

#pragma warning( disable: 4091  )
#define NOMINMAX
#define UMDF_USING_NTSTATUS

#include <winsock2.h>

//hier iphlpapi.h
#include <winnt.h>
#include <ws2tcpip.h>
#include <winternl.h>
#include <Psapi.h>
#include <process.h>
#include <ntstatus.h>

#pragma warning( pop )


in jeder datei, in der ich meine, iwas von windows zu brauchen, schreib ich dann #include "windows.hpp"

_________________
Keiner kann besser nix als ich - Tagedieb mit Lächeln im Gesicht :o)
Khalidjian
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.07.2014
Beiträge: 23
Beitrag Khalidjian Mitglied 14:53:41 15.11.2016   Titel:              Zitieren

Danke dir, dafür, das hat leider nicht geholfen auch wenn du recht hast und die windows.h überflüssig geworden ist.
Mr C
Unregistrierter




Beitrag Mr C Unregistrierter 21:40:39 15.11.2016   Titel:              Zitieren

..definier in eigenen Header oder in IPHlpApi.h:
https://msdn.microsoft.com/en-us/library/ee494101(v=winembedded.70).aspx
danach muß der Fehler weg sein !
unskilled
Mitglied

Benutzerprofil
Anmeldungsdatum: 06.07.2007
Beiträge: 3892
Beitrag unskilled Mitglied 01:23:01 16.11.2016   Titel:              Zitieren

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//#include <iphlpapi.h> - nur so kommt fehler

#include <winsock.h> //stört nich

#include <windows.h> //stört nich

#include <winsock2.h>

#include <iphlpapi.h>
#include <winnt.h>
#include <ws2tcpip.h>
#include <winternl.h>
#include <Psapi.h>
#include <process.h>
#include <ntstatus.h>
 
int main()
{
    PIP_ADAPTER_UNICAST_ADDRESS asd;
}


ansonsten kann ich deinen fehler nicht nachvollziehen...

_________________
Keiner kann besser nix als ich - Tagedieb mit Lächeln im Gesicht :o)
Cooper Hawks
Unregistrierter




Beitrag Cooper Hawks Unregistrierter 06:48:24 18.11.2016   Titel:              Zitieren

Bei mir trat mal ein ähnlicher Fehler auf. Durch ändern der include Reihenfolge hatte ich das Problem dann gelöst bekomen.
Khalidjian
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.07.2014
Beiträge: 23
Beitrag Khalidjian Mitglied 13:57:31 18.11.2016   Titel:              Zitieren

Also zum einen fehlen bei Unskilled ein paar Header die ich leider zusätzlich benötige, zum anderen ist noch folgender Umstand interessant:
In der *.cpp der Klasse scheint die Struktur bekannt zu sein, da das Syntaxhighlighting vernünftig Funktioniert und ich auch von der Struktur zur Definition springen kann. Es funktioniert nicht im Headerfile der Klasse, das aber als letzter Header included wird.
Natürlich könnte ich die Klasse jetzt auch komplett in einer Datei beschreiben, das ist mir aber an der Stelle etwas zu "dreckig".
Ich werde mal weiter schauen, ob ich etwas mit Includereihenfolge bewirken kann und auch im Rest des Codes mal etwas aufräumen was die Header angeht.
Danke euch
Khalidjian
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.07.2014
Beiträge: 23
Beitrag Khalidjian Mitglied 10:20:12 22.11.2016   Titel:              Zitieren

Hi,

also ich habe mein Problem gelöst bekommen. Ihr hattet an sich recht, das sinnvollste wäre, die Windows Funktionen mit beachteter Include Reihenfolge in einen eigenen Header auszulagern und den einzubinden.
Ich habe in meinem Fall das Problem gehabt, dass ich an einigen Stellen eine Windows.h vor der WinSock2.h inkludiert hatte, was dann zu einer ganzen Reihe von Problemen führte.

Danke euch für die Unterstützung!
C++ Forum :: WinAPI ::  [gelöst]Fehlersuche: PIP_ADAPTER_UNICAST_ADDRESS unbekannter bezeichner   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.