Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 21.05.2007, 09:54 Titel: DOS-Box im Hintergrund |
|
|
Hallo, Forum,
ich bin neu hier im Forum und habe folgendes Problem:
Ich habe versucht, mit der FreeBasic-IDE ein GUI-Programm für Windows zu compilieren. Zunächst kam dann beim Starten des Programms immer die DOS-Box im Hintergrund. Dann habe ich in den Compiler-Einstellungen -s GUI eingefügt. Seitdem weigert sich die IDE, das PRog zu compilieren. Sie friert auf halbem Weg ein und muß per Task-Manager beendet werden. Und das auch, nachdem ich den Eintrag -s GUI wieder entfernt habe.
Ausprobiert mit der IDE 0.17 und 0.15 unter WinXP und Win98.
Mit FBEdit funktioniert es problemlos.
Mach ich da was falsch? |
|
Nach oben |
|
 |
Eisbaer

Anmeldungsdatum: 16.10.2004 Beiträge: 354 Wohnort: Deutschland,Bayern
|
Verfasst am: 21.05.2007, 10:11 Titel: FB Fehler |
|
|
Probiere es mal mit einigen von den Option:
http://www.freebasic-portal.de/befehlsreferenz/der-compiler-458.html
http://www.freebasic-portal.de/freebasic-faq/dos-fenster-im-hintergrund-beseitigen-2.html
Zitat: | -e
Einfache Fehlerunterstützung einschalten. Es werden Fehlererkennungs - Funktionen
in das fertige Programm eingefügt, die zum Programmabbruch führen können, wenn ein
schwerer Fehler auftrat. |
Zitat: | -ex
Erweiterte Fehlerunterstützung einschalten, wie die Option -e aber mit der Möglichkeit,
eigene Fehlerbehandlung zu implementieren. Mit Hilfe der RESUME Anweisung kann man
auf einen Fehler reagieren und das Programm muss nicht zwangsläufig beendet werden. |
Zitat: | -exx
Wie -e und -ex, aber mit zusätzlicher Prüfung auf gültige Arrray-Grenzen und korrekte
Verwendung von Zeigeradressen. |
Zitat: | -g
Informationen zur Fehlersuche werden in das Programm integriert. Aufgrund der
zusätzlichen Informationen ist es möglich, zur Laufzeit das Programmm Schritt für
Schritt auf seine Funktionsweise hin zu überprüfen. Das schrittweise Ausführen von
Programmen wird mit Hilfe von Debuggerprogrammen realisiert, FreeBASIC liegt der
GNU Debuger gdb bzw. gdb.exe bei. Es gibt aber auch frei erhältliche grafische
Oberflächen, die das Debuggen erheblich vereinfachen und die Debug-Information
visuell aufbereiten. |
Oder stell uns den Code zur Verfügung, damit wir den Fehler bei uns selbt erzeugen können;
Grüße Eisbaer _________________ Eigene Webseite:
http://www.eisbaer-studios.de |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 21.05.2007, 10:46 Titel: |
|
|
Es liegt definitiv nicht am Code. Wie gesagt: Der FBEdit compiliert das Prog ohne Anstand, auch mit der Option -s GUI (Praktischerweise läßt sich das bei FBEdit über einen Dialog einstellen...
)
Hab es jetzt nochmal ausprobiert: unter Win98 (in VirtualPC ) hat es funktioniert, unter WinXP beendet sich die IDE (FB 0.17)beim Compilieren, ohne Warnmeldung, ohne das Prog zu compilieren. Mir scheint, da gibt es ein Problem mit XP? |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 21.05.2007, 12:26 Titel: |
|
|
Elektronix hat Folgendes geschrieben: | Es liegt definitiv nicht am Code. Wie gesagt: Der FBEdit compiliert das Prog ohne Anstand |
kann aber trotzdem am code liegen, sprich: wie die IDE mit dem kompiler kommuniziert. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 21.05.2007, 12:52 Titel: |
|
|
Na gut, hier:
Code: | ''' Lutz Ifers WinAPI-Tutorial
''' LutzIfer.FreeBasic.de
'''
''' Kapitel 1.2 - "Erzeugen eines Fensters"
option explicit
#include "windows.bi"
const ProgrammName = "Erzeugen eines Fensters"
dim as HWND MeinFenster
declare function Fenster(byval hWnd as HWND, byval message as UINTEGER,_
byval wParam as WPARAM, byval lParam as LPARAM) as LRESULT
declare function WinMain(hInstance as HINSTANCE, hPrevInstance as HINSTANCE,_
szCmdLine as PSTR, iCmdShow as integer) as integer
dim as WNDCLASS windowclass
with windowclass
.style = CS_HREDRAW or CS_VREDRAW
.lpfnWndProc = ProcPtr(Fenster)
.cbClsExtra = 0
.cbWndExtra = 0
.hInstance = GetModuleHandle(NULL)
.hCursor = LoadCursor(NULL, IDC_ARROW)
.hIcon = LoadIcon(NULL, IDI_APPLICATION)
.hbrBackground = GetStockObject(WHITE_BRUSH)
.lpszClassName = StrPtr(ProgrammName)
.lpszMenuName = NULL
end with
RegisterClass @windowclass
MeinFenster = CreateWindow(_
ProgrammName, "Titelzeile", WS_OVERLAPPEDWINDOW,_
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,_
NULL, NULL, GetModuleHandle(NULL), NULL)
'Message-Loop
ShowWindow MeinFenster, SW_NORMAL
UpdateWindow MeinFenster
dim as MSG Nachricht
do while GetMessage(@Nachricht, NULL, 0, 0) <> 0
DispatchMessage @Nachricht
loop
end Nachricht.wParam
function Fenster(byval hWnd as HWND, byval message as UINTEGER,_
byval wParam as WPARAM, byval lParam as LPARAM) as LRESULT
if message = WM_DESTROY then
PostQuitMessage 0
return 0
else
return DefWindowProc(hWnd, message, wParam, lParam)
end if
end function
|
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 21.05.2007, 12:55 Titel: |
|
|
geht ohne probelme zu komplilieren mit FbIDE. Ich vermute, du hast was an den einstllungen kaputt gemacht.
probiere am besten diese:
Compiler-Pfad: C:\Programme\FreeBASIC\fbc.exe (oder wo auch immer due es hast)
Compile-befehl: "<$fbc>" "<$file>" -s gui
Run-Befehl: "<$file>" <$param>
wenn es nur mit der IDE auf einem rechner nicht geht, klingt das nach "ordentlich zerschossen". also: das hier ausprobieren. wenn's nicht geht, IDE löschen und neu installieren. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 21.05.2007, 13:58 Titel: |
|
|
so, allmählich scheint sich das Problem herauszukristallisieren: FBIde funktioniert jetzt mit der Version 0.15 . Version 0.17 stürzt beim Compilieren weiterhin ab.
[EDIT]
Habe mal die fbc.exe aus der Version 0.15 durch die aus der 0.17 ersetzt. Die scheint das Problem zu sein. Wenn ich nämlich den Pfad zu 0.15 setze, funktioniert es wieder. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 21.05.2007, 15:06 Titel: |
|
|
Hallo.
Du musst bei FB zunächst zwischen Compiler und IDE differenzieren. Der eigentliche Compiler, fbc.exe ist eine Kommandozeilenanwendung, die über kein UI verfügt (abgesehen vielleicht von der Parametererklärung mit -h). Beim Compiler sind die Versionen 0.17b und 0.18 CVS aktuell.
IDEs gibt es für FreeBasic mehrere. Die gängiste IDE für FB ist die FBIde von VonGondric, welche du aktuell in der Version 0.4.6 auf http://fbide.freebasic.net bekommen kannst.
Bei mir funktioniert diese Version der FBIde übrigens ohne Fehler zusammen mit der aktuellen FB CVS-Version. Das heißt, dass du vielleicht eine alte Version der FBIde verwendest. Beispielsweise die Downloads von FreeBasic.de sind meistens leider alles andere als aktuell.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 21.05.2007, 15:18 Titel: |
|
|
@Sebastian
Das ist mir schon klar (trotzdem danke für den Hinweis, man sollte versuchen, sich klar auszudrücken )
Also: Die IDE ist immer die FBIde, die ich mit FB0.15 gesaugt habe, demnach die 0.4.6, die beiden Compiler sind Version 0.15 und 0.17. Die 0.17 ist die, die Probleme macht.
Ich versuchs jetzt nochmal mit 0.16.
Funzt auch nicht...
Übrigens: Wo bekomme ich 0.18 her?
Zuletzt bearbeitet von Elektronix am 21.05.2007, 15:24, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 21.05.2007, 15:41 Titel: |
|
|
So, jetzt hats geklappt. Scheint doch die falsche IDE (4.4) gewesen zu sein...
Danke für die Hilfe. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 21.05.2007, 18:49 Titel: |
|
|
Hi,
gut wenn es jetzt funktioniert.
Etwas ist mir noch an dem Code aus Luzifers Tutorial aufgefallen, dort wird eine WinMain deklariert, die nicht im Code existiert (keine Function WinMain(..) )?
Muss aber nicht vom FBC als Fehler beanstandet werden. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 22.05.2007, 09:18 Titel: |
|
|
Stimmt, danke für den Hinweis. Ich hab das Prog nur in die IDE kopiert, ohne auf solche Sachen zu achten, um erstmal die IDE und den Compiler kennen zu lernen- und um zu prüfen, ob das Tut funktioniert..  |
|
Nach oben |
|
 |
timscheu
Anmeldungsdatum: 10.03.2007 Beiträge: 8
|
Verfasst am: 31.05.2007, 11:24 Titel: |
|
|
Ich hatte das Prob auch mal. Ich hab dann entdeckt dass man bei der FBIDE alle Compiler-Flags in Anführungszeichen stellen muss.
"<$fbc>" "<$file>" "-s" "gui" |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 31.05.2007, 13:12 Titel: |
|
|
"-s " "gui" klingt für mich aber verdächtig - schließlich ist das zusammen 1 parameter... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 31.05.2007, 17:37 Titel: |
|
|
wenn das klappt ist OK,
aber muss nicht in Anführungszeichen gesetzt werden.
Bei mir geht es immer schon ohne " ". _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
|