Benutzung von ini.File in eine C++ Application

Gast #4500355
Lesenswert?

Hi Zusammen,


Programmiersprache: C++ mit "QT 4.8 Plugin"
Benutzte Tools: Visual Studio 2008


Folgende Problem:

Ich habe eine Application in C++ geschrieben und daraus eine Installer 
erstellt.
In dieses Application wird eine Ini File (so zusagen Konfig 
Dateien)verwendet.
Es funktioniert fast alles richtig, wenn es nicht eine komische Effekt 
auftritt.
Dieses Effekt lässt sich leider nicht produzieren.
Es tritt plötzlich unter gewissen Umständen(Die Umstände sind auch 
unbekannt).
Wenn dieses Effekt eintritt, dann werden die Value der Konfig Datein 
alle auf 0 gesetzt.

so z.B:

--> in Normalen Fall
StromLimit = 4
JitterMax = 200
ProduktFamilie = H30658N
.....

--> nach dem Effekt
StromLimit = 0
JitterMax = 0
ProduktFamilie = 0
.....

In der SW ist bestimmt einen BUG drin aber was kann das sein?
Könnte es einen Zeiger, der einfach in der Luft liegt und nicht zerstört 
nach der Benutzung?
Gast #4500394
Lesenswert?

um mal noch was konstruktives nachzuschießen?

Tritt der Fehler auf, wenn du das in deinem VS startest?
Tritt der Fehler nur auf, wenn du das Programm installiert hattest und 
separat gestartet hast?

Wo liegt das .ini file im Vergleich zur Exe?
Wenn die .ini im gleichen Verzeichnis der exe liegt. Schreibt dein 
Programm dort was rein?

Wenn das nur in deinem installierten Programm passiert, taucht der 
FEhler auch auf, wenn du das Prog als Admin startest?


Nur ins Blaue geraten. Die .ini gehört nicht in das Verzeichnis der Exe, 
sondern nach %appdata%\unterordner
Gast #4500419
Lesenswert?

nicht"Gast" schrieb:
> um mal noch was konstruktives nachzuschießen?
>
> Tritt der Fehler auf, wenn du das in deinem VS startest?
Nein
> Tritt der Fehler nur auf, wenn du das Programm installiert hattest und
> separat gestartet hast?
ja
>
> Wo liegt das .ini file im Vergleich zur Exe?
Im gleichen Ordner wo die exe ist
> Wenn die .ini im gleichen Verzeichnis der exe liegt. Schreibt dein
> Programm dort was rein?
Ja
>
> Wenn das nur in deinem installierten Programm passiert, taucht der
> FEhler auch auf, wenn du das Prog als Admin startest?
>
Das weiss ich nicht so was habe ich nicht ausprobiert aber was für einen 
Rolle soll das spielen?

> Nur ins Blaue geraten. Die .ini gehört nicht in das Verzeichnis der Exe,
> sondern nach %appdata%\unterordner
Gast #4500536
Lesenswert?

Gerhard_Berlin schrieb:
>> Wo liegt das .ini file im Vergleich zur Exe?
> Im gleichen Ordner wo die exe ist

Das ist ausdrücklich unerwünscht und überholt, und das seit vielen 
vielen Jahren. Nebeneffekte sind unvermeidlich, besonders bei 
unterschiedlichen Benutzern.

Man kann natürlich ein INI-File erstellen, das für alle Benutzer gilt, 
aber nicht da wo die EXE steht.

Georg
Gast #4500640
Lesenswert?

Georg schrieb:
> Gerhard_Berlin schrieb:
>>> Wo liegt das .ini file im Vergleich zur Exe?
>> Im gleichen Ordner wo die exe ist
>
> Das ist ausdrücklich unerwünscht und überholt, und das seit vielen
> vielen Jahren. Nebeneffekte sind unvermeidlich, besonders bei
> unterschiedlichen Benutzern.

Das macht QSettings eigentlich nicht: Unter Windows würde es primär in 
die Registry schreiben und wenn man die Verwendung von Ini Files 
erzwingt, schreibt es je nach gesetztem scope in %APPDATA% oder 
%COMMON_APPDATA%, außer man setzt explizit einen anderen Pfad. Aber wie 
Georg es erklärt hat, ist das keine gute Idee.
#4500641
Lesenswert?

Vielleicht weil der Admin Files im Programm Verzeichnis schreiben darf? 
Alle normalen User Schreibzugriffe werden umgeleitet in das 
Behelfsverzeichnis...irgendwas mit Roaming...

Lies die Guidelines von MS, die gelten schon seit Windows 95 oder noch 
eher. So eine schlampige Programmierung mit ini Files im 
Programmverzeichnis ist schon immer verboten.
Persönliche Seite #4500668
Lesenswert?

Noch wissen wir ja gar nicht, wo die hier verwendete *.exe liegt - wenn 
sie außerhalb von "c:\programme" bzw. "c:\programme (x86)" liegt, dann 
ist das zwar auch Murks, aber sorgt dafür, daß der schreibende 
Dateizugriff an den Speicherort der *.exe-Datei funktioniert.

Was zu tun ist, habe ich weiter oben schon beschrieben.

Beitrag "Re: Benutzung von ini.File in eine C++ Application"
Gast #4500826
Lesenswert?

Danke an alle, die sich an die Diskussion kontruktiv teilgenommen haben.
Für mich bedeutet es viel Aufwand aber na ja es muss gemacht werden.
Man lernt nie aus... danke auch für die Hinweise. Sie sind echt 
Hilfsreich..

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren