Zum Inhalt springen

Globalevariabelen einlesen


Eisenhorn

Empfohlene Beiträge

Hallo

Zuerst einmal ich bin Anfänger und weiß auch nciht ob ich im richtigen Forum bin.

Also für ein Schulprojekt muss ich eine Globalvariable aus lesen mit c++.

Natürlich habe ich es schon mit GetEnvoirmentVariable versucht , und auch mit der Kurzform.

Das Funktioniert so weit auch, aber das ganze muss laufend Eingelesen werden.

Ich habe nun das problem das wenn ich das Kompelierte Programm starte wird der richtige Wert eingelesen , danach aber nicht mehr verändert wird.

Wenn ich morgen in der Schule bin kann ich noch den Qullecode posten.

Ich hoffe es wurde klar was ich meine.

Über antworten würde ich mich Freuen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Arrg Anfänger fehler:rolleyes:

aber Danke für die schnelle Antwort.

Mit getenv habe ich es auch schon probiert (mir war nur der befehl entfallen)

Das ist ja relativ leicht Raus zufinden.

Das Problem ist nur das sich dort bei mir der Wert auch bei mehrmaligen einlesen nicht ändert nach dem Programm start, auch wenn sich die Umgebungsvariable ändert.

Ich muss über diesen Weg laufend Daten eines Sensor einlesen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja wie versprochen der Quellcode:

#include <iostream>

#include <fstream>

#include <istream>

#include <cstdlib>

#include <stdio.h>

#include <windows.h>

#include <conio.h>


using namespace std;


int main () {



	ofstream outDatei ("c:\\Dokumente und Einstellungen\\Administrator\\Desktop\\Herbstakademi 2009\\schreiben\\in.dat");

	char winkel[256]="34.3";


	GetEnvironmentVariable("winkel", winkel, 255);

	cout << "Winkel in Zentigrad = " << winkel << ".\n";



	//cin >> winkle;



	outDatei << winkel << endl;


		return 0;

}

Wenn ich das ganze in der Schleife Ausgebe wird immer der Gleiche wert ausgegeben auch wenn sich die systemvariable verändert hat.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der ändert sich bei jeden Start des Programmes, wie er es soll, aber im lauf des Programms ändert sich der Rückgabe wert nicht
Der Rückgabewert, nicht der Wert der Umgebungsvariablen. GetEnvironmentVariable gibt ein DWORD zurück. Aber daran liegt es anscheinend sowieso nicht.

Ich vermute einfach mal, dass der Mechanismus für das Setzen der Umgebungsvariablen sich nicht auf dein Programm auswirkt. Jeder Prozess hat nämlich seinen eigenen Satz an Umgebungsvariablen. Dein Programm bekommt beim Start eine Kopie, und danach ändert sich nichts mehr.

Wie genau setzt denn dieses "andere Programm" die Variable?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jeder Prozess hat nämlich seinen eigenen Satz an Umgebungsvariablen. Dein Programm bekommt beim Start eine Kopie, und danach ändert sich nichts mehr.

Ich ergänze hierzu einmal: Umgebungsvariable ? Wikipedia

Es ist üblich, dass die Menge der Umgebungsvariablen pro System-Prozess gespeichert werden. Änderungen, die ein Prozess am Bestand der Variablen vornimmt, sind nur für ihn selbst und für Prozesse, die von ihm gestartet wurden (Child-Prozesse), gültig.

Du wirst, so lange das Programm läuft immer wieder den gleichen Wert auslesen und niemals einen neu gesetzten Wert bekommen. Stell Dir das wie eine "Sandbox" vor, in der wenn Du das Programm startet alles "statisch" ist.

Du wirst wohl nicht drumherum kommen, eine entsprechende Library in Dein Programm aufzunehmen, das direkt mit dem Sensor kommuniziert. Ich weiß jetzt nicht, wie der Sensor an das System angeschlossen ist, aber z.B: via USB kann man sich recht leicht an die Events anhängen, wie die technischen Daten des Sensors zu verarbeiten sind, müsstest Du dann beim Hersteller erfragen bzw findest Du in TechPapers

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...