Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Versteh die Fehlermeldung nicht

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 07.11.2022, 11:03    Titel: Versteh die Fehlermeldung nicht Antworten mit Zitat

Hallo,
nach langer Zeit habe ich wieder ein Problem: ich bekomme eine Fehlermeldung in einer SUB, die ich hier aus dem Forum kopiert habe und die seit damals (das ist jetzt ein paar Monate und ca.40 Programme her).
Diese SUB verwende ich in jedem Programm zum Einstellen der Schriftgröße und -art in der Console. Sie wird von einer SUB aufgerufen mit der ich die Größe der Console und ihre Position einstelle.

Die Fehlermeldung des Compilers lautet:

""F:\FreeBASIC\./fbc" "F:\SVS\Programtst\m03Wartung.bas" "

Build-Fehler:
F:\SVS\Programtst\sippadmin.bi(134) error 14: Expected identifier, found 'CONSOLE_FONT_INFOEX' in 'Dim As CONSOLE_FONT_INFOEX info'

F:\SVS\Programtst\sippadmin.bi(135) error 41: Variable not declared, info in 'With info'
F:\SVS\Programtst\sippadmin.bi(136) error 264: Symbol not a CLASS, ENUM, TYPE or UNION type, before 'cbSize' in '.cbSize = Sizeof(info)'
F:\SVS\Programtst\sippadmin.bi(137) error 264: Symbol not a CLASS, ENUM, TYPE or UNION type, before 'dwFontSize' in '.dwFontSize.X = w'
F:\SVS\Programtst\sippadmin.bi(138) error 264: Symbol not a CLASS, ENUM, TYPE or UNION type, before 'dwFontSize' in '.dwFontSize.Y = h'
F:\SVS\Programtst\sippadmin.bi(139) error 264: Symbol not a CLASS, ENUM, TYPE or UNION type, before 'FaceName' in '.FaceName = ftype'
F:\SVS\Programtst\sippadmin.bi(141) error 41: Variable not declared, SetCurrentConsoleFontEx in 'SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), NULL, @info)'

Ich verstehe einfach nicht was diese Meldung aussagt. Hier ist auch die SUB:

Code:
' Schriftart und Größe
'   w ... Breite / h ... Höhe / ftype ... Schriftart
'   (für Rasterschriftart w und h nötig, sonst nur h, w=0)
SetWindowPos(GetConsoleWindow, HWND_TOP, 20, 20, 500, 300, 0)
'
Sub changefontsize(w As Long, h As Long, ftype As String = "")
   Dim As CONSOLE_FONT_INFOEX info
   With info
      .cbSize = Sizeof(info)
      .dwFontSize.X = w
      .dwFontSize.Y = h
      .FaceName = ftype
   End With
   SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), NULL, @info)
End SUB


Dazu muss ich ergänzen, dass ich an dieser Sache rein gar nichts verändert habe. Der Fehler muss also von wo anders her kommen. Ich habe aber keine Idee wo ich suchen soll.
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1207
Wohnort: Ruhrpott

BeitragVerfasst am: 07.11.2022, 15:58    Titel: Antworten mit Zitat

Die Fehlermeldung bedeutet, daß CONSOLE_FONT_INFOEX nicht definiert wurde. Vermutlich hast du irgendwo vorher im Programm (versehentlich) eine #Include oder #Declare - Anweisung auskommentiert oder gelöscht.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 07.11.2022, 16:05    Titel: Antworten mit Zitat

Das hatte ich mir schon angesehen. Diese SUB steht in einer *.bi und dort steht als erste Zeilen:
Zitat:

#PRAGMA ONCE 'veranlasst die Quelldatei, in der das Pragma verwendet wird, sich
' SO ZU VERHALTEN, ALS OB SIE MIT #INCLUDE ONCE EINGEBUNDEN WURDE.
'
#INCLUDE ONCE "vbcompat.bi" ' Datumsfunktionen
#INCLUDE ONCE "windows.bi" ' Programmierschnittstelle für Windows-Anwendungen
#INCLUDE ONCE "file.bi" ' Die Dateifunktionen aktivieren[/code]

Wenn ich mich recht erinnere muss dafür windows.bi inkludiert werden und bei "ONCE" muss das in den Programmen nict nochmals stehen.

EDIT: eine Ergänzung: die exe-Dateien funktionieren! Ich schreibe das weil ich dachte, dass die bi-Datei beschädigt sein könnte aber da würden die exe-Programme auch nicht laufen.

EDIT2: hatte den Hinweis auf die DECLARE-Anweisung übersehen. Dieses steht auch in der bi-Datei ganz oben:
Code:

DECLARE sub changefontsize(w As Long, h As Long, ftype As String = "")

_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 07.11.2022, 20:11    Titel: Antworten mit Zitat

Ich glaube ich habe das Problem behoben! Ich habe einfach die Zip-Datei, die ich noch vom Download von FreeBasic und Compiler hatte über das installierte FreeBasic expandiert und jetzt ließen sich die ersten Programme wieder kompilieren.
Daher nehme ich an, dass doch eine Datei zerstört oder beschädigt war. Ich werde ja sehen wie es weiter geht.
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 09.11.2022, 19:09    Titel: Antworten mit Zitat

Leider ist der Fehler nicht behoben bzw. gibt es noch einen anderen:
1) die obige Fehlermeldung kommt beim Kompilieren nicht mehr
2) habe an einem Programm einige Änderungen gemacht und Fehler beseitigt. Im Compiler wird es anscheinend richtig kompiliert, es gibt keine Fehlermeldung mehr. Aber das Programm öffnet gerade die Console und schwirrt dann ab, die Console schließt sich wieder.

Die Meldung im Compiler ist nach dem Kompilieren:

""F:\FreeBASIC\./fbc" "F:\SVS\Programtst\5AnwesenhtTST.bas" -s console"
Compilation ausgeführt
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 10.11.2022, 11:32    Titel: Antworten mit Zitat

ich weiß nicht mehr was ich machen soll.
ich habe FreeBasic komplett entfernt und neu Installiert. Alte Programme, die ich in letzter Zeit nicht ändern wollte funktionieren, hier sind die exe-Dateien in Ordnung.
Wenn ich aber ein BAS-Programm neu kompilieren will (egal ob mit Änderung oder ohne) das funktioniert es nicht mehr.
Der Compiler zeigt, dass richtig compiliert wurde und es öffnet sich die richtige Console abder diese schließt sich sofort wieder. Es läuft nichts.
Ich dachte ob der Fehler (durch was weiß ich nicht) in der BI-Datei meines Projekts liegen könnte und habe eine alte Version recovered aber auch das brachte nichts.
Wenn ich leine Lösung finde ist FreeBasic für mich leider tot! Dann iist aber leider mein Projekt wahrscheinlich auch gestorben denn ich weiß nicht ob ich es mit einer anderen Sprache neu probiere. Allerdings hat mich Python neugierig gemacht denn da könnte ich gleich unter Windows programmieren.
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1207
Wohnort: Ruhrpott

BeitragVerfasst am: 11.11.2022, 11:33    Titel: Antworten mit Zitat

Ohne deinen Quellcode kann ich da leider nicht viel zu sagen.

Welchen Editor benutzt du? Deiner Beschreibung nach könnte der Fehler auch in dessen Konfiguration liegen. Versuch mal, diesen kleinen Zweizeiler zu kompilieren und laufen zu lassen:
Code:
Print "Hallo Welt"
Sleep


Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 11.11.2022, 12:55    Titel: Antworten mit Zitat

dieser Code ließ sich kompilieren und aufrufen.

Die aktuelle Situation sieht so aus:
- ich habe die Verzeichnisse \freebasic und \mein projekt vom Laptop (auf dem der Fehler auftrat) und vom Desktop (auf dem ich vor 2 Wochen problemlos gearbeitet habe) auf USB-Stick kopiert
- die Verzeichnisse \freebasic und \mein projekt vom Laptop Laptop gelöscht und die Kopien vom Desktop auf den Laptop kopiert.
- Programme, die ich vorher auf dem Laptop mit dem Compiler nicht neu zu kompilieren versuchte scheinen zu laufen (scheinen weil ich nur einzelne probiert habe). Programme die ich kompilieren wollte, die aber dann bei Aufrufen nach dem Öffnen der Console sofort abstürzten stürzen weiterhin ab.
- aufgefallen ist mir, dass ein Programm das am Desktop schon fertig lief auf den Laptop kopiert genau so abstürzt wie die anderen.

Ich habe es mit den Einstellungen der originalen Datei wxFBE.xmi (vom Desktop) und mit anderen Einstellungen die ich am Laptop gespeichert habe probiert.

So wie es aussieht muss ich jetzt alle Programme die ich geschrieben habe durchtest und schauen ob sie laufen oder nicht. Nur was ich mit den Programmen machen die jetzt nicht mehr laufen obwohl sie bereits sehr gut liefen weiß ich nicht.

Ich muss sagen, dass meine Stimmung FreeBasic betreffend ziemlich am Tiefstpunkt ist. Denn so wie es vor ein paar Monaten war als ein ähnlicher Fehler wahrscheinlich wegen eines Fehlers in einer speziellen Datei auftrat ist es diesmal nicht weil die betroffenen Programmen mit unterschiedlichen Dateien arbeiten die auch in anderen Programmen nicht zu Fehlern führen.
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1207
Wohnort: Ruhrpott

BeitragVerfasst am: 11.11.2022, 18:41    Titel: Antworten mit Zitat

Dann solltest du dir jetzt eins der abstürzenden Programme vornehmen und -von vorne nach hinten- durch Einfügen von SLEEP - Befehlen versuchen, die Stelle zu finden, an der das Programm abstürzt. Diese Methode führt meistens recht schnell zum Ziel.

Außerdem solltest du einmal versuchen, das Programm mit "fbc -s console -exx -w pedantic" zu kompilieren, eventuell spuckt der Compiler dann einige zusätzliche aufschlußreiche Meldungen aus.

Wenn dein Programm keine Geheimnisse enthält, könntest du mir den Quelltext auch posten (an meine eMail-Adresse als Dateianhang), dann würde ich es mir einmal ansehen. Zumindest könnte man dann feststellen, ob der Fehler im Programm selber liegt oder in der Rechnerkofiguration zu suchen ist. Ich hatte sowas ähnliches schon einmal durch einen defekten Grafiktreiber.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 11.11.2022, 20:44    Titel: Antworten mit Zitat

Nur einmal so ein anderer Gedanke: Passen die verwendeten Programmteile mit der Compiler-Plattform (32bit vs. 64bit) zusammen? Wenn sich ein Programm früher fehlerfrei compilieren und ausführen ließ und es jetzt beim Ausführen zu Abbrüchen kommt, könnte das auch mit falsch verwendeten INTEGER-Variablen zusammenhängen - die sind auf beiden Plattformen unterschiedlich groß.

Ich würde auch auf jeden Fall mal versuchen, das mit "fbc -s console -exx -w pedantic" compilierte Programm direkt aus der Eingabeaufforderung heraus aufzurufen, damit gegebenenfalls auftretende Runtime-Fehler angezeigt werden.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 11.11.2022, 20:45    Titel: Antworten mit Zitat

ich habe das Problem gelöst! Es sind 2 Programme die nicht mehr funktionierten. Das eine war - bis auf weitere Tests fertig und beim zweiten war ich gerade dabei Änderungen vorzunehmen. Warum dann auch die zuvor funktionierende Version keine Probleme machte aber dann schon weiß ich nicht. Auf jeden Fall habe ich diesen Programm schrittweise neu geschrieben aber viele alte Teile kopiert. Das funktioniert jetzt - wenn es auch noch nicht ganz macht was ich will aber das ist nur eine Fehler im Code den ich noch finden werde. Dann werde ich mir das andere Programm noch ansehen. Aber ich glaube nicht, dass es gröbere Probleme damit geben wird.

Im Grunde ist mir jetzt leichter weil die viele Arbeit die doch in diesem Projekt steckt nicht umsonst war.

Was da eigentlich passiert ist kann ich mir nicht vorstellen. Nachdem aber die gröbsten Probleme beseitigt waren nachdem ich das ganze Projekt vom Desktop auf den Laptop kopiert habe muss etwas in Dateien von Freebasic bzw. dem Kompiler zerstört gewesen sein. Dieser Fehler hat dann wahrscheinlich beim Kompilieren zumindest dieses eine Programm irgendwie beschädigt. Denn andere Programme die ich am Laptop gegenüber dem Desktop geändert hatte konnte ich in der Version vom Laptop übernehmen.

Auf jeden Fall Danke, dass du dran geblieben bist und versucht hast eine Lösung zu finden!
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 11.11.2022, 21:07    Titel: Antworten mit Zitat

@nemored,
ich kann das leider nicht mehr testen weil ich das kritische Programm umgeschrieben habe (es hatte einen groben Fehler und außerdem hab ich die Bedienung verbessert). Jetzt läuft es, auch wenn es noch nicht ganz das macht was es soll, aber das ist nur ein normaler Fehler im Code. Den werde ich morgen sicher schnell finden, heute bin ich zu müde dafür.
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 12.11.2022, 15:28    Titel: Antworten mit Zitat

Heute früh hatte ich noch eine Idee was die Ursache für mein Problem gewesen sein könnte: ich hatte etwa zur gleichen Zeit, eigentlich schon etwas früher, Probleme mit dem Windows-Explorer, der beim Kopieren, verschieben und umbenennen von Dateien von Zeit zu Zeit aber immer wieder das Fenster schloss und weg war.
Ich habe dann sfc /scannow gefahren und dabei wurden defekte Dateien festgestellt und korrigiert. Es könnte doch sein, dass das Auswirkung auf den Compiler gehabt haben könnte.
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz