Visual cplusplus systembefehle i kann syntaktisch nicht an dieser Stelle nicht verarbeitet werden
Hallo,
ich habe mal wieder ein Problem und zwar wollte ich ein Programm mit eier Oberfläche in Visual Studio 2010 schreiben, welches die aktuelle IP Adresse sowie das Standartgateway und das subnetz in ein label text schreibt nur leider funktioniert das nicht so ganz. Bisher habe ich den Code geschrieben:
was passiert. Es wid 3 mal die Windwos eingabeaufforderung aufgerufen was irgenwie unpraktisch ist, aber erst mal egal, desweiteren bekomme ich immer den fehler i kann syntaktisch an deiser Stelle nicht verarbeitet werden und ich weiß nicht wieso und ich denke das deswegen im label text auch nur eine 1 geschrieben wird.
LG
THomas
ich habe mal wieder ein Problem und zwar wollte ich ein Programm mit eier Oberfläche in Visual Studio 2010 schreiben, welches die aktuelle IP Adresse sowie das Standartgateway und das subnetz in ein label text schreibt nur leider funktioniert das nicht so ganz. Bisher habe ich den Code geschrieben:
int ip, gate, subnet;
ip=(system("for /f \"tokens2 delims=:\" %%i in ('ipconfig ^| findstr /i \"IPv4-Adresse\"') do echo %%i"));
lip->Text=Convert::ToString(ip);
subnet=(system("for /f \"tokens2 delims=:\" %%i in ('ipconfig ^| findstr /i \"Subnetzmaske\"') do echo %%i"));
lsm->Text=Convert::ToString(subnet);
gate=(system("for /f \"tokens2 delims=:\" %%i in ('ipconfig ^| findstr /i \"Standardgateway\"') do echo %%i"));
lgate->Text=Convert::ToString(gate);
was passiert. Es wid 3 mal die Windwos eingabeaufforderung aufgerufen was irgenwie unpraktisch ist, aber erst mal egal, desweiteren bekomme ich immer den fehler i kann syntaktisch an deiser Stelle nicht verarbeitet werden und ich weiß nicht wieso und ich denke das deswegen im label text auch nur eine 1 geschrieben wird.
LG
THomas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 181055
Url: https://administrator.de/contentid/181055
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo Thomas0204.
Die Fehlermeldung ist eben nicht dass i syntaktisch nicht verarbeitet werden kann, sondern dass %%i syntaktisch nicht verarbeitet werden kann. Der Grund ist simpel. Die Zeile wird im Kommandozeilenkontext ausgeführt, somit nur ein Prozentzeichen und nicht zwei. Außerdem ist
Und nun zu deinen eigentlichen Fehlern.
1. Du benutzt die system() Funktion
2. Du glaubst dass der Rückgabewert diese Funktion irgendetwas damit zu tun hat, was innerhalb der Kommandozeile per
Da liegst du meilenweit daneben.
Grüße
rubberman
Die Fehlermeldung ist eben nicht dass i syntaktisch nicht verarbeitet werden kann, sondern dass %%i syntaktisch nicht verarbeitet werden kann. Der Grund ist simpel. Die Zeile wird im Kommandozeilenkontext ausgeführt, somit nur ein Prozentzeichen und nicht zwei. Außerdem ist
tokens2
natürlich auch nicht richtig, da fehlt das =.Und nun zu deinen eigentlichen Fehlern.
1. Du benutzt die system() Funktion
2. Du glaubst dass der Rückgabewert diese Funktion irgendetwas damit zu tun hat, was innerhalb der Kommandozeile per
echo
ausgegeben wird.Da liegst du meilenweit daneben.
Grüße
rubberman
Hallo Thomas0204.
Vergiss diesen Unsinn ganz schnell. Lerne C++ und beschäftige dich mit Sockets, dann klappt das auch.
Beispiel findest du zB. hier.
Für VS vergiss die dort angegebenen Header und leite so ein, um das Ding erst mal zum Fliegen zu bringen:
Wie gesagt, das ist nur ein Beispiel und hilft dir garnichts, wenn du es nicht verstehst.
Grüße
rubberman
Vergiss diesen Unsinn ganz schnell. Lerne C++ und beschäftige dich mit Sockets, dann klappt das auch.
Beispiel findest du zB. hier.
Für VS vergiss die dort angegebenen Header und leite so ein, um das Ding erst mal zum Fliegen zu bringen:
#include <iostream>
#include <winsock.h>
#pragma comment(linker, "/defaultlib:wsock32.lib")
using namespace std;
Wie gesagt, das ist nur ein Beispiel und hilft dir garnichts, wenn du es nicht verstehst.
Grüße
rubberman