Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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.

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.

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.

Nein Nein das wird schon überschrieben.

DerDie variable setzt ein anderes Programm, das einen Sensor ausliest.(Ich weiß sehr aufwendig hat aber einen anderen Hintergrund)

Meinten sie den Rüchgabe wert des Programms?

Der ist -1073741510

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 ä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?

:upps:upps

Das weiß ich nicht.

Das Programm habe wir von der Firma des Sensors bekommen da sie noch keine c++ unterstützung hatten.

Ja habe ich natürlich, habe auch schonn einfch 5 mal hintereinander GetEnvironmentVariable mit jeweils einer Ausgabe probiert.

Das Problem trat aucg in einer Schleife auf

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.