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:

Programme laufen nicht unter Windows 8

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



Anmeldungsdatum: 28.12.2013
Beiträge: 4

BeitragVerfasst am: 28.12.2013, 20:16    Titel: Programme laufen nicht unter Windows 8 Antworten mit Zitat

Hallo,

ich wollte mir mal ein paar Sachen von dem Programmierwettbewerb (www.antonis.de) anschauen, allerdings bekomme ich beim Aufrufen immer eine Fehlermeldung (siehe Bild).
Das Programm ist der Einheitenumrechner EasyCalc, das Problem tritt aber bei mehreren Programmen auf, wo die Maus mit im Spiel ist.
Ich hab absolut keine Ahnung bei QBasic, was die Einbindung von Mausbefehlen angeht, daher meine Frage:

Liegt es
- an Windows 8?
- an meinem QBasic (www.qb64.net)?
- an dem Aufrufbefehl für den Maustreiber?

Für eure Hilfe wäre ich sehr dankbar
Gruß

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 949
Wohnort: Austria

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

Erstmal liegt es an QB64, denn QB64 ist ganz was anderes als Q(uick)Basic. QB64 ist zwar in großen Teilen mit altem QBasic Code kompatibel und emuliert teilweise alte Hardware, 100%ige Kompatibilität wird jedoch nicht erreicht.
Dass es mit QB64 nicht funktioniert, wird weiter wohl an dem Code zur Maussteuerung liegen. Denn wahrscheinlich wird, wie damals üblich, mittels Call Absolute direkt Maschinencode ausgeführt. Dieser ist für DOS, also 16 Bit Real Mode ausgelegt. Windows und alle anderen gängigen heutigen Betriebssysteme betreiben den Prozessor jedoch im Protected Mode, wodurch dieser Code mit großer Wahrscheinlichkeit nicht mehr funktioniert.

Summa summarum: alles trägt einen kleinen Teil dazu bei, dass es im Endeffekt nicht funktioniert.
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 28.12.2013, 21:00    Titel: DOSBox, Unterschied zwischen QB und QB64 Antworten mit Zitat

Hallo und willkommen im Forum!

Wenn du alte QB-Programme unter Windows 8 ausführen möchtest, solltest du den DOS-Emulator DOSBox verwenden und darin eine "richtige" QB-Version installieren. Sowohl QB64 als auch FreeBASIC bieten Rückwärtskompatibilität zu QB-Programmen nur in einem bestimmten Rahmen, jedoch nicht zu 100 Prozent. Der größte Knackpunkt sind hardware-spezifische Routinen wie zum Beispiel Interrupt-Aufrufe (=> Maustreiber) oder eingebettete Maschinenprogramme (Call Absolute).

Mit DOSBox hingegen emulierst du ein altes DOS-System, auf dem sich all dies weiterhin nutzen lässt. Sogar unter Linux.

Zur Verwendung von DOSBox gibt es viele Tutorials. Die wird nicht nur zur Ausführung von QB bzw. QB-Programmen gerne benutzt, sondern generell für alle DOS-Programme und -Spiele.

Zitat:
- an meinem QBasic (www.qb64.net)?

Anders, als es der Name vielleicht suggeriert, ist QB64 keineswegs eine moderne Version von QBasic oder ein Microsoft-Produkt. Es handelt sich um ein kleines Open-Source-Projekt, das sich in den letzten Jahren entwickelt hat und keine vollständige Kompatibilität zu Microsofts QB für DOS bietet. QB64 und QB haben außer einer ähnlichen Syntax nichts gemeinsam. QB ist Closed-Source-Software von Microsoft und ausschließlich für DOS zu haben. QB64 ist ein neueres Open-Source-Projekt von ein paar Freiwilligen und läuft unter Windows. QB64 ist also keine "Version" von QBasic.
Wenn du im Internet QBasic-Programme findest (z. B. beim Programmierwettbewerb), dann kannst du davon ausgehen, dass sie mit Microsofts QBasic (für DOS, aber auch unter 32-Bit-Windows-Versionen ausführbar) entstanden sind und damit ausgeführt werden müssen. QB64-Programme sind i. d. R. als "QB64-Programme" bezeichnet. D. h. wenn von "QBasic" oder "QB" die Rede ist, ist nie "QB64" gemeint.

Zur Auswahl zwischen FB und QB64:

FreeBASIC bietet sich besonders dann an, wenn du mit Vorkenntnissen aus QB neue Programme für Windows und Linux erstellen möchtest. QB64 bietet sich an, wenn du bestehende, alte QB-Programme mit möglichst wenigen Programmänderungen auf Windows ausführbar machen möchtest. Bei hardwarenahen Routinen wie der Mausabfrage hier muss man aber in jedem Fall ändern, wenn man die Programme auf ein modernes Betriebssystem übertragen möchte. (Wie gesagt, es sei denn, man nutzt den Emular DOSBox.)

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
plan_los



Anmeldungsdatum: 28.12.2013
Beiträge: 4

BeitragVerfasst am: 29.12.2013, 23:32    Titel: Antworten mit Zitat

Vielen Dank für die ausführlichen Antworten.
Ich hatte es mir schon fast gedacht, dass es eine Mischung aus Allem ist traurig
Ich wollte mich mal ein bischen in die Mauseinbindung einfuchsen und mir daher erst einmal Programme damit anschauen.
Daher versuch ich es mal über den Umweg mit dem Emulator, danke für den Tipp!!! Daumen rauf!

Gruß
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 29.12.2013, 23:47    Titel: Einfach GETMOUSE in FreeBASIC verwenden Antworten mit Zitat

plan_los hat Folgendes geschrieben:
Ich wollte mich mal ein bischen in die Mauseinbindung einfuchsen und mir daher erst einmal Programme damit anschauen.
Daher versuch ich es mal über den Umweg mit dem Emulator

Wenn du dich ohnehin neu in die Thematik einlernst, würde ich gleich auf FreeBASIC setzen und nicht QBasic mit Hilfe eines "Nostalgie-Emulators" wiederbeleben. Das ist m. E. nur dann sinnvoll, wenn man bestehende Programme weiternutzen möchte, nicht aber für Neuentwicklungen.

Mit FreeBASIC erstellt man native Anwendungen für Windows und Linux, die auch auf den modernsten Versionen (z. B. Windows 8.1 64-Bit) direkt lauffähig sind. Dafür braucht man keinen Emulator. Es wäre ja auch total umständlich, wenn man eigene Programme entwickelt und jeder Nutzer erst einmal einen Emulator installieren und einrichten müsste.

In FreeBASIC musst du dich auch nicht mehr wie einst in QB unter DOS mit Interrupts und Assembler-Programmierung herumplagen, wenn du eine Mausbedienung realisieren möchtest. Dafür reicht in FreeBASIC ein Aufruf der GETMOUSE-Funktion (siehe Befehlsreferenz). Aufrufe von Maus-Interrupts etc. sind in nativen Windows-Programmen gar nicht mehr möglich. Für sowas gibt es heutzutage viel komfortablere Funktionen.

FreeBASIC ist erheblich leistungsfähiger und vielseitiger als QBasic. Es ist auch mächtiger als QB64, das sich m. E. vor allem dann anbietet, wenn existierende Alt-Programme aus QB heraus portiert werden sollen. QB64 ist von Syntax und IDE her näher am alten QB für DOS als der QB-Kompatibilitätsmodus von FreeBASIC (-lang qb).
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. 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