WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Designer Forum (http://www.wcm.at/forum/forumdisplay.php?f=61)
-   -   C Gauge: Der Zeiger des VSI will nicht!!! (http://www.wcm.at/forum/showthread.php?t=101376)

harry3 06.07.2003 20:24

natürlich
PHP-Code:

#include <stdio.h> 

mfg
harri

HansHartmann 06.07.2003 20:46

Was benutzt Du? .c oder .cpp?

harry3 06.07.2003 20:49

.c

An dem liegts ja nicht. Es hat ja alles funktioniert, bis ich jetzt mit dem File IO angefangen habe. Natürlich könnte ich es jetzt einfach rauslöschen und hätte dann ein Gauge das funktioniert. Aber wo wäre denn dann der Reiz des Gauges programmieren?


mfg
harri :cool:

HansHartmann 06.07.2003 20:54

Probier bitte mal aus, direkt FILE *f = fopen(...); zu schreiben. Aber denk dran, dass in C *alle* Variablen-Deklarationen ganz oben in der Funktion sein müssen. Eine Deklaration mittendrin geht nur bei C++.

harry3 06.07.2003 21:24

#define datei "gauge.txt" // Keine Pfadangabe = FS2002-Pfad!!!
int farbe_max=3000, farbe_min=-3000;
FILE *f = fopen(datei, "r");

if(f){
fscanf(f, "%d", &farbe_max);
farbe_min = -farbe_max;
fclose(f); // fclose() nur dann, wenn fopen() geklappt hat
}

Ich hab deinen Code jetzt auf Einlesen reduziert. Aber immer noch regt der sich auf, "initializer is not a constant" bei der FILE *f Linie!

Außerdem passt das if dem Compiler auch nicht ganz. Angäblich hat's da einen Syntax Error. Dieser Fehler hängt aber wahrscheinlich vom ersten Fehler ab, schätze ich mal...

Deklariert und initialisiert(tolle Wörter:zzz: ) wird beim File IO doch eh richtig. Und gerade hab ich nochmal ausprobiert: Wenn ich das File IO weg"kommentatiere", und mir die farbe_max und farbe_min oben definiere, funktioniert das Gauge so wie es sein sollte. Aber wie schon oben gesagt:"Wo bleibt denn da der Reiz???:D"



Viele Grüße,
Harri:cool:

bartels 06.07.2003 21:49

Irgendwie ist das ja höchst seltsam. Bei mir läuft der Code sauber, keine Fehler. File I/O ist ja keine große Kunst. Irgendwie ist Dir die FILE Definition abhanden gekommen, würde ich fast vermuten. Du kannst mal testweise "FILE" durch "struct _iobuf" ersetzen.
Ist FILE irgendwie anders besetzt? Welche include holt der sich eigentlich (Rechtsklick auf FILE, "go to definition" o.ä. )? U.U. ist FILE ein FILEHANDLE, d.h. ein Integerwert.
Arne Bartels

harry3 06.07.2003 21:55

No browse information available.

Do you want to rebuilt the project to get information...oder irgendwie so ähnlich. OK, hab's regebuiltet, und jetzt hat der in die stdio.h mir einen Eintrag gezeigt:

typedef struct _iobuf FILE;
#define _FILE_DEFINED
#endif

Ich hoffe nur, dass der zuerst auch schon da war und nicht jetzt irgendetwas da hineingeschrieben wurde durch MSVS.

Compilen geht immer noch nicht!

Das Ersetzen von FILE durch den einen Ausdruck da hat auch nichts geholfen.

mfg
harri:cool:

harry3 06.07.2003 22:19

Hallo!
 
So, hier noch die Kopie der subgauge.c Datei.

Ich muss jetzt aufhören, schließlich geht's morgen endlich ans Geldverdienen fürn Sommer!

Viele Grüße,
Harri:cool:

bartels 06.07.2003 22:22

Ich habe mal deinen Code (e_vsi.zip) genommen und in der Nähe von Zeile 36 den fraglichen Teil eingeworfen. Jede Menge Fehler und so ziemlich die beschriebenen. Der Punkt ist, dass Du Dein File IO Code innerhalb einer Funktion durchführen musst. Z.B. in der needle callback oder in der gauge callback.
Arne Bartels
P.S. dein Upload und mein Beitrag haben sich überschnitten, ich schau mir das nachher an.

bartels 06.07.2003 22:30

So zum Beispiel.
#define datei "gauge.txt" // Keine Pfadangabe = FS2002-Pfad!!!
int farbe_max=3000, farbe_min=-3000;
global weit oben deklariert.
Und das eigentliche Lesen in der gauge callback zu einem Zeitpunkt (service_id), der nur einmal aufgerufen wird, da sind einige möglich.
Das sollte es gewesen sein, ich muss schließlich Morgen auch richtig arbeiten.
Arne Bartels


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag