Fehler bei strcmp in c-Script

SimonGrimm

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe bei meinem WinCC (v7.0 SP2) einen Fehler und weiß nicht wirklich weiter.

Ich speichere einen Text in der SPS (Textvariable 8-Bit) den Rechnernamen wenn ich auch einen Button klicke.

Nun habe ich ein Scrpit in c gemacht, was meinen Aktuellen Rechnernamen ausließt und mit dem ver Variable vergleicht. doch irgendwie stimmt das was nicht. Wenn ich am Rechner SRV01 den Button klicke wird der Name in die Variable geschreiben. der Vergleich passt dann. schreibe ich allerdings dort SRV02 oder TEST rein, dann soll der Vergleich auch ok sein. Nur wenn die Variable leer ist klappt der vergleich.

Hier der Code für den Vergleich:
Code:
int Freigabe_2(char* FreigBereich)
{
char* cThisClient;

cThisClient = GetTagChar("@LocalMaschineName");


if(!strcmp(cThisClient, GetTagChar(FreigBereich)))
    return 0;
else
    return 1;
}

FreigBereich wird als Parameter bei start der Funktion/Mehtode übergeben, da ich verschiedene Bereiche habe, dort steht dann der PC Name dirn.(z.B. "Client_1", Client_2")

Hoffe jemand von euch erkennt den Fehler den ich hier mache.

Gruß Simon
 
Ein Stück bin ich der Lösung näher gekommen.

Wenn ich statt den Rechnernamen auszulesen feste eintrage, dann klappt es.

Achja, vielleicht noch als Tipp, ich arbeite auf den Clients mit dem Webnavigator.
 
Ich denke ich habe den Fehler gefunden.

Man sollte auch die Variable @LocalMachineName richtig schreiben.

*SchandeÜberMeinHaupt*
:cry:
 
Hallo, deine C Aktionen ist unsicher programmiert. Du solltest immer auf NULL Pointer prüfen. Der C Interpreter fängt das normalerweise ab und stürzt nicht ab.

char* cThisClient;

cThisClient = GetTagChar("@LocalMaschinName");
if (pcThisClient = NULL) return; // Nullpointerauswertung
...
Das gilt auch für den anderen GetTagChar .
 
Zurück
Oben