7. November 200816 j ich habe keine Ahnung wirklich.ich mache so was zum ersten mal deswegen frage ich viel Etwas übernommen würd ich sagen... Grundlagen anschauen.
7. November 200816 j ok kannst du mir bitte dieses feld fuer MAC adresse nenen Kannst du dich bitte einfach mal selbst bemühen, die Dokumentation gründlich zu lesen? PhysicalAddress The Media Access Control (MAC) address for the adapter. For example, on an Ethernet network this member would specify the Ethernet hardware address. Quelle: IP_ADAPTER_ADDRESSES Structure (Windows)
11. November 200816 j 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 11. November 200816 j von karim-wiesbaden
11. November 200816 j 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. 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 funktionFür CE? GetAdaptersInfo.
11. November 200816 j 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.
11. November 200816 j error C2267: 'GetMACaddress': Statische Funktionen mit Blockgültigkeit sind unzulässigWo steht denn dieser Code? Etwa innerhalb einer anderen Funktion?
11. November 200816 j 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.
11. November 200816 j 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;
11. November 200816 j ich habe nur die oben genannte code in einem Case hinzugefügt mehr nicht :: Du hast dort, wo eigentlich ein Funktionsaufruf hingehört, die Funktionsdefinition eingefügt.
11. November 200816 j und wo soll ich was korigieren kannst du mir bitte dabei helfen ich werde dir dankbar
11. November 200816 j 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.
11. November 200816 j 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 11. November 200816 j von karim-wiesbaden
11. November 200816 j 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.
13. November 200816 j 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 13. November 200816 j von karim-wiesbaden
13. November 200816 j Du hast: void foo() { // bla static void GetMACaddress() { // blubb } // blabla }[/code] Du brauchst: [code] static void GetMACaddress() { // blubb } void foo() { // bla GetMACaddress(); // blabla }
13. November 200816 j tue mir eingefallen .du hast das code von mir.kannst du mir bitte das code in mein programm hinzufuegen. und ich frage auch ,ob ich auf den case verzicht. danke danke danke
13. November 200816 j 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.
13. November 200816 j 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 13. November 200816 j von karim-wiesbaden
14. November 200816 j 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;
14. November 200816 j 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.
14. November 200816 j es geht immer noch um auslesen ein MAC Aderesse von ei externen Board (WebServer)
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.