Zum Inhalt springen

Empfohlene Beiträge

Geschrieben
ich habe keine Ahnung wirklich.ich mache so was zum ersten mal deswegen frage ich viel

Etwas übernommen würd ich sagen...

Grundlagen anschauen. g.gif

  • Antworten 51
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

Geschrieben (bearbeitet)

es ist ein problem aufgetreten und zwar die Netbios funktion ist nicht fuer Windows CE.Net 4.2 gedacht.

das problem bleibt wie kann ich die MAC Adresse eines Web server auslesen mit hilfe eine X funktion.

die frage lautet wie lautet diese funktion

Bearbeitet von karim-wiesbaden
Geschrieben
es ist ein problem aufgetreten und zwar die Netbios funktion ist nicht fuer Windows CE.Net 4.2 gedacht.
Na dann hast du ja doppelt Glück. Erstens entwickelst du ja für XP, und zweitens hat die Funktion, die ich dir genannt habe, nichts mit Netbios zu tun. :rolleyes:

das problem bleibt wie kann ich die MAC Adresse eines Web server auslesen mit hilfe eine X funktion.
Wenn das Programm auf demselben Rechner laufen soll wie der Webserver, dann ist es völlig egal, dass das ein Webserver ist. Damit stiftest du nur Verwirrung.

die frage lautet wie lautet diese funktion
Für CE? GetAdaptersInfo.
Geschrieben

ok danke

das funktioniert trotzdem nicht auch wenn ich die andere dateinein abgebe wie ;Header Iphlpapi.h

Library Iphlpapi.lib

und den folgenden code eingebe:

CodeGuru: Three ways to get your MAC address.

// Fetches the MAC address and prints it

static void GetMACaddress(void)

{

IP_ADAPTER_INFO AdapterInfo[16];

DWORD dwBufLen = sizeof(AdapterInfo);

DWORD dwStatus = GetAdaptersInfo(

AdapterInfo,

&dwBufLen);

assert(dwStatus == ERROR_SUCCESS);

PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;

do {

PrintMACaddress(pAdapterInfo->Address);

pAdapterInfo = pAdapterInfo->Next;

}

while(pAdapterInfo);

}

zeigt mir mehrer fehlern zum Beispiel:

error C2267: 'GetMACaddress': Statische Funktionen mit Blockgültigkeit sind unzulässig

error C2601: 'GetMACaddress': Lokale Funktionsdefinitionen sind unzulässig

error C3861: "assert": Bezeichner wurde nicht gefunden

error C3861: "PrintMACaddress": Bezeichner wurde nicht gefunden.

Geschrieben
ich verstehe deine frage nicht

Die Fehlermeldung lässt darauf schließen, dass die Funktion GetMACaddress, die du da gezeigt hast, innerhalb einer anderen Funktion steht. Das ist nicht erlaubt.

Geschrieben

ich weiss es nicht

ich habe nur die oben genannte code in einem Case hinzugefügt mehr nicht ::

const HtmxProcessor::TAGDEF HtmxProcessor::TAGDEF_TABLE[] =

{ "MAC1", TAG_MAC1 },

case TAG_MAC1:

static void GetMACaddress(void)

{

IP_ADAPTER_INFO AdapterInfo[16];

DWORD dwBufLen = sizeof(AdapterInfo);

DWORD dwStatus = GetAdaptersInfo( AdapterInfo,&dwBufLen);

assert(dwStatus == ERROR_SUCCESS);

PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;

do {

PrintMACaddress(pAdapterInfo->Address);

pAdapterInfo = pAdapterInfo->Next;

}

while(pAdapterInfo);

}

return true;

Geschrieben
und wo soll ich was korigieren

Da, wo jetzt die Definition der Funktion GetMACaddress steht, gehört ein Aufruf hin:

GetMACaddress();

Die Definition musst du auf die globale Ebene verschieben, also außerhalb von anderen Funktionen, nicht mitten im Code.

Geschrieben (bearbeitet)

wie kann ich diese Aufrufe hinzufügen.

und wie kann ich dei Definition auf die globalen Ebene verschieben, wenn es geht in dem Programm was korigieren.

denk daran dass ich zum ertsen mal damit beschäftige und muss noch viel kennen .

danke im voraus

Bearbeitet von karim-wiesbaden
Geschrieben
wie kann ich diese Aufrufe hinzufügen.
Wie der Aufruf aussieht, habe ich doch geschrieben. Soll ich dir erklären, wie du einen Editor bedienen sollst?

und wie kann ich dei Definition auf die globalen Ebene verschieben,
Ich weiß nicht, wie ich es noch erklären soll, damit du es verstehst.

denk daran dass ich zum ertsen mal damit beschäftige und muss noch viel kennen .
Du musst dir vor allem eine Aufgabe suchen, die deinen Fähigkeiten entspricht. Mit dieser bist du IMHO völlig überfordert, und wirst daraus auch nichts lernen.

Arbeite bitte ein Anfängertutorial oder -buch durch. Dir scheinen die elementarsten Grundlagen zu fehlen.

Geschrieben (bearbeitet)

guten morgen du meinnst damit

case TAG_MAC1:

static void GetMACaddress()

{

IP_ADAPTER_INFO AdapterInfo[16];

DWORD dwBufLen = sizeof(AdapterInfo);

DWORD dwStatus = GetAdaptersInfo( AdapterInfo, &dwBufLen);

assert(dwStatus == ERROR_SUCCESS);

PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;

do {

PrintMACaddress();

pAdapterInfo = pAdapterInfo->Next;

}

while(pAdapterInfo);

}

return true;

ich kann alle annehmen was du sagst

ich mach das zum ersten mal und dauer es bis ich die sachen kapiert habe

Bearbeitet von karim-wiesbaden
Geschrieben

Du hast:


void foo()
{
// bla

static void GetMACaddress()
{
// blubb
}

// blabla
}[/code] Du brauchst:
[code]
static void GetMACaddress()
{
// blubb
}

void foo()
{
// bla

GetMACaddress();

// blabla
}

Geschrieben
kannst du mir bitte das code in mein programm hinzufuegen.
Nein, kann ich nicht. Du hast den Code der äußeren Funktion (die ich in meinem Beispiel "foo" genannt habe) nicht vollständig gezeigt.

und ich frage auch ,ob ich auf den case verzicht.

Das kann dir niemand beantworten, weil niemand außer dem Autor des Codes wissen kann, welchen Zweck diese case-Anweisung hat.

Geschrieben (bearbeitet)

Mit IP adresse hat es gut funktioniert mit Anwendung der case Anweissung.

#include "Winsock2.h"

const HtmxProcessor::TAGDEF HtmxProcessor::TAGDEF_TABLE[] =

{ "IP1", TAG_IP1 },

case TAG_IP1:

{

WORD wVersionRequested;

WSADATA wsaData;

char name[255];

PHOSTENT hostinfo;

wVersionRequested = MAKEWORD( 2, 0 );

if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )

{

if( gethostname ( name, sizeof(name)) == 0)

{

if((hostinfo = gethostbyname(name)) != NULL)

{

char* ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);

strncpy(procTag, ip, sizeProcTag);

return true;

}

}

WSACleanup( );

}

strncpy(procTag, "", sizeProcTag);

} return true;

default:

return false;

Bearbeitet von karim-wiesbaden
Geschrieben

Mit IP adresse hat es gut funktioniert mit Anwendung der case Anweissung.

#include "Winsock2.h"

const HtmxProcessor::TAGDEF HtmxProcessor::TAGDEF_TABLE[] =

{ "IP1", TAG_IP1 },

case TAG_IP1:

{

WORD wVersionRequested;

WSADATA wsaData;

char name[255];

PHOSTENT hostinfo;

wVersionRequested = MAKEWORD( 2, 0 );

if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )

{

if( gethostname ( name, sizeof(name)) == 0)

{

if((hostinfo = gethostbyname(name)) != NULL)

{

char* ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);

strncpy(procTag, ip, sizeProcTag);

return true;

}

}

WSACleanup( );

}

strncpy(procTag, "", sizeProcTag);

} return true;

default:

return false;

Geschrieben
Mit IP adresse hat es gut funktioniert mit Anwendung der case Anweissung.
Ja, das gleiche hast du gestern schon geschrieben. Bitte kein Threadpushing, siehe Boardregeln.

Mir ist nicht klar, was du damit sagen willst.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...