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:

wxFBE kann Programm nach dem Compilieren nicht ausführen

 
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: 18.04.2022, 18:44    Titel: wxFBE kann Programm nach dem Compilieren nicht ausführen Antworten mit Zitat

Hallo,
ich habe ein ganz normales Programm geschrieben, das ist eine Datei die in jeden Record nur ein String-Feld mit 20 Byte öffnet um Werte einzugeben, die ich als Parameter in mehreren Programme benötige.
Ich kann dieses Programm mit wxFBE fehlerfrei compilieren aber dann mit der Funktion "ausführen" nicht starten. Es öffnet sich kurz die Konsole schließt sich aber sofort wieder.
Wenn ich es mit der Funktion "Schnellstart" starte funktioniert es. Dann läuft das Programm funktionsmäßig auch richtig.
Die exe-Datei kann ich auch problemlos direkt aufrufen.
Aber eines war seltsam: nach einem Lauft und normalem Abschluss meldete Windows 10, dass das Programm nicht kompatibel wäre. Ich ließ Windows dann die richtige Einstellung suchen, testete und es war in Ordnung. trotzdem hat sich am Verhalten nichts geändert auch kam irgendwann die Frage von Windows wegen der Kompatibilität auch wieder.

Es gibt nocht eine andere Besonderheit: ich habe ein Menüprogramm das alle ausführbaren Programme mit Nummern versehen listet und dann fragt welche Nummer ich ausführen möchte. Das funktioniert für alle anderen Programme nur für dieses nicht! Wenn ich die Programmnummer eingebe wird sie im IF-Staement das der entsprecheden RUN-Befehl enthält nicht erkannt und es kommt die Fehlermeldung "Falsche Eingabe".

Nun dachte ich, dass die Datei durch irgend ein Alien einen Fehler bekommen hat und begann das Programm im Editor in eine neue Datei abzuschreiben doch ich kan nicht weit. Bei der Eingabe der DIM-Befehle begannen die gleichen Schwierigkeiten wie gehabt. Nach ein paar versuchen konnte ich die Integervariablen vollständig definieren aber bei den String-Variablen war dann Schluss.
Ich hab de´ie Abschrift beigelegt:
Code:

'   SINXSETUP.BAS
'   Version 1.0.1
'   Setup-Programm zur Eingabe der Basisdaten für die
'   Konsoldimensionierung
'
#INCLUDE once "admin.bi"
#Include Once "Windows.bi"
'
Konsolentitel ("ERSTEINRICHTUNG DES SINX.DAT")
changefontsize(0, 18, "Lucida Console")
WIDTH 99,37
CLS (0)
'-----------------------------------------------------------------------------------------
'
'   Programmbeginn
'
DIM AS INTEGER iZnr, iC, iInp, iPos, I
DIM AS STRING iWeiter, sER, sMR, sTXT
PRINT "GUT"
getkey

Die Buchstaben "i" und "s" habe ich zu beginn der Variablen gestzt, um nicht immer prüfen zu müssen ob es sich um Integer, String usw. handelt (hab wo gelesen, dass das Ungarische methode oder so ähnlich heißt).

Ich hatt dieses Problem bei noch keinem anderen Programm und habe doch schon ca. 15 geschrieben.

Ich weiß nicht ob ich mich vollständig genug ausgedrückt habe.

Hab mich im Forum geirrt, bitte kann wer das in Allgemeine Fragen zu FreeBasic verschieben? Danke
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 18.04.2022, 19:34    Titel: Antworten mit Zitat

Ich schieße ein wenig ins Blaue - welche Compileroptionen hast du eingestellt?
Ansonsten ist der Inhalt der admin.bi unklar. Ändert es etwas, wenn du dieses Include auskommentierst? Oder, anders herum - funktionieren andere Programme, in denen admin.bi eingebunden ist?
_________________
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
nemored



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

BeitragVerfasst am: 18.04.2022, 19:45    Titel: Antworten mit Zitat

Und noch ein anderer Vorschlag, wenn auch ein sehr ungewöhnlicher: Versuche es mal mit anderen Variablennamen. Mein allererster Post in diesem Forum bezog sich auf einen seltsamen Assemblerfehler, der wohl mit dem Prozedurnamen zusammenhing und den mir nie jemand erklären konnte. In deinem Fall sieht es ja anders aus, weil kein Fehler geworfen wird, aber wer weiß ...
_________________
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: 18.04.2022, 20:00    Titel: Antworten mit Zitat

Die Compileroption ist bei allen Programmen: -s console

Die admin.bi verwende ich in allen Programmen und für dieses Programm gibt es keine Fuktion oder Sub die ich nicht auch in anderen Programmen verwende

Variablennamen: die meisten der verwendeten Anmen verwende ich auch in anderen Programmen. Hab es auch mit anderen Namen probiert. Das hat tlw. funktioniert und nachdem ich auf den richtigen Namen änderte funktionierte der auch. Allerdings beim letzten Namen, den ich in vielen Programmen verwende (sTXT) hatte ich keine Erfolg.
Ich werde die Variablenname alle ändern vielleicht bleibt da irgendwo was hängen wenn man immer die gleichen verwendet (???)

Oh ja, da fällt mir ein, es gab schon eine Fehlermeldung im wxFBE und zwar kommt die wenn ich nach dem Compilieren "ausführen" wähle, nicht aber bei "Schnellstart":
"F:\FreeBASIC\./fbc" "F:\ADMIN\Programme\SINXSETUP.BAS" -s console"

Kann man den Thread zu FreeBasic verschieben?
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 18.04.2022, 20:16    Titel: Antworten mit Zitat

Danke nemored! Du hast mich mit den Fragen auf den Weg gebracht! Es waren entweder:
- Variable die noch aus einem anderen Programm, das mir als Basis diente, stammten - die hab ich gelöscht
- die Namen der verbliebenen Variablen - die habe ich geändert
- oder es war der Programmname SINXSETUP - vielleicht hat das Wort "SETUP" gestört, hab es aus "SINXSET" geändert.

Was auch immer es davon war, jetzt funktioniert es!
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 18.04.2022, 20:17    Titel: Antworten mit Zitat

Zitat:
Kann man den Thread zu FreeBasic verschieben?

Das müsste Sebastian machen. Passiert sicher noch.

Code:
"F:\FreeBASIC\./fbc" "F:\ADMIN\Programme\SINXSETUP.BAS" -s console"

ist keine Fehlermeldung, sondern nur die Statusmeldung über den Kompiliervorgang.
Schau mal in den Ordner F:\ADMIN\Programme; da sollte ja dann eine SINXSETUP..exe liegen - kannst du die starten? (Oder existiert sie gar nicht? Dann wäre das auch eine Erklärung für die fehlende RUN-Option.)
_________________
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
nemored



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

BeitragVerfasst am: 18.04.2022, 20:26    Titel: Antworten mit Zitat

Zitat:
- oder es war der Programmname SINXSETUP - vielleicht hat das Wort "SETUP" gestört, hab es aus "SINXSET" geändert.

Ein immer gern wieder auftretender Fehler ist: Wenn das Programm, an dem du arbeitest, gerade bereits läuft, geht der Compiliervorgang unter Windows schief (keine Schreibrechte auf ein gestartetes Programm). Manchmal versteckt sich das noch laufende Programm auch irgendwo im Taskmanager. Keine Ahnung, ob das in deinem Fall zutrifft - ein paar Symptome würde es jedenfalls erklären, unter anderem, warum der Schnellstart und der neue Dateiname funktionieren (falls es tatsächlich am neuen Dateinamen liegt).
_________________
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: 18.04.2022, 20:28    Titel: Antworten mit Zitat

1) die exe ist da und funktioniert
2) jetzt spinnt das nächste Programm, es ist eines der ersten die ich geschrieben habe.
Es ist ein ganz einfaches Menüprogramm mit 3 Variablen das die Programme listet die man über eine Nummer aufrufen kann. Auch hier funktioniert die exe und in wxFBE die Schnellstartfunktion - genau wie im ersten Fall.
Auch glaub ich nicht, dass es der Bibliothek liegt denn andere Programme die sie auch verwenden funktionieren.
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 18.04.2022, 20:36    Titel: Antworten mit Zitat

Schau mal, ob das Programm im Taskmanager noch läuft. Wie gesagt alles nur Schuss ins Blaue, aber das ist der Punkt, in dem ich allen FreeBASIC-IDEs am wenigsten traue.
_________________
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: 18.04.2022, 20:49    Titel: Antworten mit Zitat

Nachdem der Verdacht bestand, dass irgend ezwas im Zusammenhang mit diesem Programm im memory oder sonstwo hängen geblieben ist habe ich Windows neu gestartet und da kam die meldung:
SINXSETUP.EXE, Diese App verhindert das Herunterfahren.
Ich habe Windows trotzdem beendet aber nach dem neustart kaonnte ich weder dieses noch das zuletzt erwähnt Menü-Programm aus wxFBE heraus mit "ausführen" starten. Wohl aber mit der Schnellstartfunktion und auch die exe.

Nachdem ich das Menü-Programm aus aus einem anderen Programm heraus nicht starten kann offenbar der RUN-Befehl nicht durchgeführt werden. Das ist genauso wie ich zuerst SINXSETUP nicht aus dem Menüprogramm starten konnte.

Habe jetzt das Menü-Programm umbenannt und jetzt konnte ich es richt mit "ausführen" aufrufen. Da bleibt , vielleicht weil ich da viel geändert habe und diese beiden Programme immer wieder mit wxFBE aufgerufen habe etwas irgenwo hängen, nur hab ich keine Ahnung wo...
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 18.04.2022, 20:53    Titel: Antworten mit Zitat

Habe jetzt das Menü-Programm in wxFBE mit dem ursprünglichen Namen ohne Probleme aufrufen können.
Das ist schon mysteriös!
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 19.04.2022, 11:38    Titel: Antworten mit Zitat

nemoreds Idee mit dem Taskmanager ist denke ich mal gar nicht so verkehrt. Wenn "Schnellstart" verwendet wird, wird von dem Programm eine FBTEMP+Zeitstempel Datei gemacht und die ausgeführt. Die ist natürlich immer eindeutig benannt. Das normale Ausführen will die Datei aber mit ihrem richtigen Namen ausführen. Sollte die vorherige Exe aber noch ausgeführt werden, kann es zu fehlern kommen. Also am besten immer zuerst in den Taskmanager schauen.

Variablennamen können manchmal auch zu Problemen führen, das gab es in der Vergangenheit ab und an. Vor allem, wenn die gewählten Namen irgendwelchen Assemblerregisternamen gleichen (glaube ich mich zumindest zu erinnern). Ob das aktuell immer noch ein Problem ist, weiß ich aber nicht.
_________________
Meist inaktiv - über PNs werde ich benachrichtigt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 19.04.2022, 12:16    Titel: Antworten mit Zitat

Ich denke, ich habe einen Teil der die Ursache des Problems gefunden:
es lag in der Registry und zwar hier:
Computer\HKEY_USERS\S-1-5-21-2030479217-2684037126-3856974645-1001\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

Dort waren genau die beiden Programme eingetragen die nicht funktioniert haben. Nachdem ich sie dort gelöscht habe hat zumindest das eine wieder unter seinem originalen Namen funktioniert. Das andere Program (das war das erste das nicht mehr funktionierte) funktioniert noch nicht. Da suche ich weiter, könnte ja noche eine kritische Stelle geben.

Edit: habe die Registry weiter durchsucht aber nichts neues mehr gefunden, die Ursache muss irgendwo anders liegen.
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hhr



Anmeldungsdatum: 15.07.2020
Beiträge: 84

BeitragVerfasst am: 19.04.2022, 14:21    Titel: Antworten mit Zitat

Wenn der Dateiname einer exe 'setup' enthält, fordert Windows eine Bestätigung.
Das kann man im Explorer mit umbenennen ausprobieren.

Ich würde Datei-, Variablen- und Funktionsnamen so wählen, daß es keine Warnungen gibt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 19.04.2022, 18:28    Titel: Antworten mit Zitat

Danke für den Hinweis! Ich habe die nunmehr 3 Dateien umbenannt und jetzt laufen sie. Die mit dem SETUP im Namen lief nach der Löschung des Registry-Eintrags auch wieder - habe sie trotzdem umbenannt. Die beiden anderen laufen mit ihrem alten Namen nicht, mit dem neuen aber schon. Die müssen außerhalb der Registry irgendwo einen Eintrag haben.

Was alle 3 Programme gemeinsam haben ist eine Binary-Datei, die im Record nur ein 20stelligen Stringfeld enthält. On diese Datei habe ich Parameter gespeichert die ich in mehreren Programme benötige. Aber dazu kommt, dass ich sie sehr oft geändert und mit dem wxFBE compiliert und ausgeführt habe. Einige Zeit ging das gut aber dann war es auf einmal aus.
_________________
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