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:

warum laeuft portierter c++ code nicht?

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



Anmeldungsdatum: 14.10.2009
Beiträge: 132

BeitragVerfasst am: 14.10.2009, 02:44    Titel: warum laeuft portierter c++ code nicht? Antworten mit Zitat

Hallo,

da ich neu in sachen freebasic bin habe ich mir mal den c++ source von
nehe's lession 2 vorgenommen und diesen nach FB portiert.
leider musste ich feststellen das es da zu "komischen" fehlern kommt.

habe dieses tut in c++ und fb compiliert, beide compiler melden keine
errors. die unter c++ erstelte exe laeuft einwandfrei, die unter fb compilierte
laeuft zwar aber kann anscheinend das fenster nicht registrieren.

hier mal der fb sourcecode
Code:

#Include once "windows.bi"
#include once "gl/gl.bi"
#include once "gl/glu.bi"
#Include once "gl/glext.bi"
#include once "crt.bi"

Dim Shared hDC As HDC = NULL               ' Private GDI Device Context
Dim Shared hRC As HGLRC   = NULL            ' Permanent Rendering Context
Dim Shared hWnd As HWND = NULL            ' Holds Our Window Handle
Dim Shared hInstance As HINSTANCE         ' Holds The Instance Of The Application
Dim Shared keys(256) As Boolean            ' Array Used For The Keyboard Routine
Dim Shared active As Boolean = TRUE         ' Window Active Flag Set To TRUE By Default
Dim Shared fullscreen As Boolean = TRUE   ' Fullscreen Flag Set To Fullscreen Mode By Default

Declare function WinMain(ByVal hInstance As HINSTANCE,byval hPrevInstance As HINSTANCE,byval lpCmdLine As LPSTR,byval nCmdShow As integer) As integer         ' Window Show State
end WinMain( GetModuleHandle( null ), null, Command$, SW_NORMAL )   
 
Declare Function WndProc( byval hWnd as HWND, byval message as UINT, byval wParam as WPARAM, byval lParam as LPARAM) As LRESULT
Declare Function CreateGLWindow(ByVal Title As string,byval wwidth As integer,byval wheight As integer,byval bits as integer,byval fullscreenflag As Boolean) As Boolean
Declare Function KillGLWindow()   As Boolean
Declare Function DrawGLScene() As Boolean
Declare Function InitGL() As Boolean
Declare Function ReSizeGLScene(wwidth As integer,wheight As integer) As Boolean
Const szAppName = "OpenGL"

' Resize And Initialize The GL Window
Function ReSizeGLScene(wwidth As integer,wheight As integer) As Boolean

   if (wheight=0) Then wheight=1                                       ' Prevent A Divide By Zero By
                                                                      ' Making Height Equal One   

   glViewport(0,0,width,wheight)                           ' Reset The Current Viewport

   glMatrixMode(GL_PROJECTION)                           ' Select The Projection Matrix
   glLoadIdentity()                                       ' Reset The Projection Matrix

   ' Calculate The Aspect Ratio Of The Window
   gluPerspective(45.0f,wwidth/wheight,0.1f,100.0f)

   glMatrixMode(GL_MODELVIEW)                              ' Select The Modelview Matrix
   glLoadIdentity()                                       ' Reset The Modelview Matrix
   Return true
End function

' All Setup For OpenGL Goes Here
Function InitGL() As Boolean
   glShadeModel(GL_FLAT)                              ' Enable Smooth Shading
   glClearColor(0.0f, 0.0f, 0.0f, 0.5f)               ' Black Background
   glClearDepth(1.0f)                                 ' Depth Buffer Setup
   glEnable(GL_DEPTH_TEST)                              ' Enables Depth Testing
   glDepthFunc(GL_LEQUAL)                              ' The Type Of Depth Testing To Do
   glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST)   ' Really Nice Perspective Calculations
   return TRUE                                          ' Initialization Went OK
End function
' Here's Where We Do All The Drawing
Function DrawGLScene() As Boolean
   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT)' Clear Screen And Depth Buffer
   glLoadIdentity()                                    ' Reset The Current Modelview Matrix
   glTranslatef(-1.5f,0.0f,-6.0f)                     ' Move Left 1.5 Units And Into The Screen 6.0
   glBegin(GL_TRIANGLES)                              ' Drawing Using Triangles
      glVertex3f( 0.0f, 1.0f, 0.0f)                     ' Top
      glVertex3f(-1.0f,-1.0f, 0.0f)                     ' Bottom Left
      glVertex3f( 1.0f,-1.0f, 0.0f)                     ' Bottom Right
   glEnd()                                             ' Finished Drawing The Triangle
   glTranslatef(3.0f,0.0f,0.0f)                        ' Move Right 3 Units
   glBegin(GL_QUADS)                                    ' Draw A Quad
      glVertex3f(-1.0f, 1.0f, 0.0f)                     ' Top Left
      glVertex3f( 1.0f, 1.0f, 0.0f)                     ' Top Right
      glVertex3f( 1.0f,-1.0f, 0.0f)                     ' Bottom Right
      glVertex3f(-1.0f,-1.0f, 0.0f)                     ' Bottom Left
   glEnd()                                             ' Done Drawing The Quad
   return TRUE                                          ' Keep Going
End function

'Properly Kill The Window
Function KillGLWindow()   As Boolean
   if (fullscreen) then                              ' Are We In Fullscreen Mode?
      ChangeDisplaySettings(NULL,0)                  ' If So Switch Back To The Desktop
      ShowCursor(TRUE)                              ' Show Mouse Pointer
   EndIf

   if (hRC) then                                    ' Do We Have A Rendering Context?
      if (wglMakeCurrent(NULL,NULL)=false) then      ' Are We Able To Release The DC And RC Contexts?
         MessageBox(NULL,"Release Of DC And RC Failed.","SHUTDOWN ERROR",MB_OK or MB_ICONINFORMATION)
      EndIf
      if (wglDeleteContext(hRC)=false) Then          ' Are We Able To Delete The RC?
         MessageBox(NULL,"Release Rendering Context Failed.","SHUTDOWN ERROR",MB_OK or MB_ICONINFORMATION)
      EndIf
      hRC=NULL                                       ' Set RC To NULL
   EndIf

   if ((hDC<>NULL) And ReleaseDC(hWnd,hDC)=FALSE) then         ' Are We Able To Release The DC
      MessageBox(NULL,"Release Device Context Failed.","SHUTDOWN ERROR",MB_OK or MB_ICONINFORMATION)
      hDC=NULL                                       ' Set DC To NULL
   EndIf
   
   if ((hWnd<>NULL) And (DestroyWindow(hWnd)=false) ) then      ' Are We Able To Destroy The Window?
      MessageBox(NULL,"Could Not Release hWnd.","SHUTDOWN ERROR",MB_OK or MB_ICONINFORMATION)
      hWnd=NULL                                    ' Set hWnd To NULL
   EndIf
   
   if (UnregisterClass("OpenGL",hInstance)=false) then   ' Are We Able To Unregister Class
      MessageBox(NULL,"Could Not Unregister Class.","SHUTDOWN ERROR",MB_OK or MB_ICONINFORMATION)
      hInstance=NULL                                 ' Set hInstance To NULL
   EndIf
   Return true
End Function

'create the GL-Window
Function CreateGLWindow(ByVal Title As string,byval wwidth As integer,byval wheight As integer,byval bits as integer,byval fullscreenflag As Boolean) As Boolean

   Dim PixelFormat As integer         ' Holds The Results After Searching For A Match
   Dim wc As WNDCLASS                  ' Windows Class Structure
   Dim dwExStyle As DWORD            ' Window Extended Style
   Dim dwStyle As DWORD               ' Window Style
   Dim WindowRect As RECT            ' Grabs Rectangle Upper Left / Lower Right Values
   WindowRect.left=0         ' Set Left Value To 0
   WindowRect.right=wwidth      ' Set Right Value To Requested Width
   WindowRect.top=0            ' Set Top Value To 0
   WindowRect.bottom=wheight      ' Set Bottom Value To Requested Height

   fullscreen=fullscreenflag         ' Set The Global Fullscreen Flag

   hInstance         = GetModuleHandle(NULL)            ' Grab An Instance For Our Window
   wc.style            = CS_HREDRAW or CS_VREDRAW or CS_OWNDC   ' Redraw On Size, And Own DC For Window.
   wc.lpfnWndProc      = @WndProc               ' WndProc Handles Messages
   wc.cbClsExtra      = 0                           ' No Extra Window Data
   wc.cbWndExtra      = 0                           ' No Extra Window Data
   wc.hInstance      = hInstance                     ' Set The Instance
   wc.hIcon            = LoadIcon(NULL, IDI_WINLOGO)         ' Load The Default Icon
   wc.hCursor         = LoadCursor(NULL, IDC_ARROW)         ' Load The Arrow Pointer
   wc.hbrBackground   = NULL                           ' No Background Required For GL
   wc.lpszMenuName   = NULL                           ' We Don't Want A Menu
   wc.lpszClassName   = StrPtr("OpenGL")                        ' Set The Class Name

   if (RegisterClass(@wc)=false) Then                            ' Attempt To Register The Window Class
      MessageBox(NULL,"Failed To Register The Window Class.","ERROR",MB_OK or MB_ICONEXCLAMATION)
      return FALSE                                 ' Return FALSE
   EndIf
   
   if (fullscreen) then                                    ' Attempt Fullscreen Mode?
      Dim dmScreenSettings As DEVMODE                     ' Device Mode
      ZeroMemory(@dmScreenSettings, sizeof (DEVMODE))   ' Makes Sure Memory's Cleared
      dmScreenSettings.dmSize=sizeof(DEVMODE)      ' Size Of The Devmode Structure
      dmScreenSettings.dmPelsWidth   = wwidth            ' Selected Screen Width
      dmScreenSettings.dmPelsHeight   = wheight            ' Selected Screen Height
      dmScreenSettings.dmBitsPerPel   = bits               ' Selected Bits Per Pixel
      dmScreenSettings.dmFields=DM_BITSPERPEL Or DM_PELSWIDTH Or DM_PELSHEIGHT

      ' Try To Set Selected Mode And Get Results.  NOTE: CDS_FULLSCREEN Gets Rid Of Start Bar.
      if (ChangeDisplaySettings(@dmScreenSettings,CDS_FULLSCREEN)<>DISP_CHANGE_SUCCESSFUL) then
         ' If The Mode Fails, Offer Two Options.  Quit Or Use Windowed Mode.
         if (MessageBox(NULL,"The Requested Fullscreen Mode Is Not Supported By\nYour Video Card. Use Windowed Mode Instead?","NeHe GL",MB_YESNO Or MB_ICONEXCLAMATION)=IDYES) then
            fullscreen=FALSE      ' Windowed Mode Selected.  Fullscreen = FALSE
         else
            ' Pop Up A Message Box Letting User Know The Program Is Closing.
            MessageBox(NULL,"Program Will Now Close.","ERROR",MB_OK Or MB_ICONSTOP)
            return FALSE                           ' Return FALSE
         endif
      endif
   endif

   if (fullscreen) then                                    ' Are We Still In Fullscreen Mode?
      dwExStyle=WS_EX_APPWINDOW                        ' Window Extended Style
      dwStyle=WS_POPUP                           ' Windows Style
      ShowCursor(FALSE)                              ' Hide Mouse Pointer
   else
      dwExStyle=WS_EX_APPWINDOW or WS_EX_WINDOWEDGE         ' Window Extended Style
      dwStyle=WS_OVERLAPPEDWINDOW                     ' Windows Style
   endif

   AdjustWindowRectEx(@WindowRect, dwStyle, FALSE, dwExStyle)      ' Adjust Window To True Requested Size

   ' Create The Window
   If (hWnd=CreateWindowEx(   dwExStyle,"OpenGL",Title, dwStyle Or WS_CLIPSIBLINGS Or WS_CLIPCHILDREN,0, 0, WindowRect.right-WindowRect.left,WindowRect.bottom-WindowRect.top,NULL,NULL,hInstance,NULL)=false)   Then
      KillGLWindow()                        'Reset The Display
      MessageBox(NULL,"Window Creation Error.","ERROR",MB_OK Or MB_ICONEXCLAMATION)
      return FALSE                        ' Return FALSE
   endif

   Static pfd As PIXELFORMATDESCRIPTOR          ' pfd Tells Windows How We Want Things To Be
      ' Size Of This Pixel Format Descriptor
      pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR)            
      pfd.nVersion = 1                                 ' Version Number
      pfd.dwFlags = PFD_DRAW_TO_WINDOW Or PFD_SUPPORT_OPENGL Or PFD_DOUBLEBUFFER                  ' Must Support Double Buffering
      pfd.iPixelType = PFD_TYPE_RGBA                     ' Request An RGBA Format
      pfd.cColorBits = bits                        ' Select Our Color Depth
      pfd.cRedBits = 0
      pfd.cRedShift = 0
      pfd.cGreenBits = 0
      pfd.cGreenShift = 0
      pfd.cBlueBits = 0
      pfd.cBlueShift = 0                     ' Color Bits Ignored
      pfd.cAlphaBits = 0                                 ' No Alpha Buffer
      pfd.cAlphaShift = 0                              ' Shift Bit Ignored
      pfd.cAccumBits = 0                              ' No Accumulation Buffer
      pfd.cAccumRedBits = 0
      pfd.cAccumGreenBits = 0
      pfd.cAccumBlueBits = 0
      pfd.cAccumAlphaBits = 0                           ' Accumulation Bits Ignored
      pfd.cDepthBits = 16                                 ' 16Bit Z-Buffer (Depth Buffer) 
      pfd.cStencilBits = 0                              ' No Stencil Buffer
      pfd.cAuxBuffers = 0                              ' No Auxiliary Buffer
      pfd.iLayerType = PFD_MAIN_PLANE                        ' Main Drawing Layer
      pfd.bReserved = 0                                 ' Reserved
      pfd.dwLayerMask = 0
      pfd.dwVisibleMask = 0
      pfd.dwDamageMask = 0                            ' Layer Masks Ignored
   
   if (not(hDC=GetDC(hWnd)))   Then                  ' Did We Get A Device Context?
      KillGLWindow()                        ' Reset The Display
      MessageBox(NULL,"Can't Create A GL Device Context.","ERROR",MB_OK Or MB_ICONEXCLAMATION)
      return FALSE                        ' Return FALSE
   EndIf

   if (not(PixelFormat=ChoosePixelFormat(hDC,@pfd)))   Then ' Did Windows Find A Matching Pixel Format?
      KillGLWindow()                     'Reset The Display
      MessageBox(NULL,"Can't Find A Suitable PixelFormat.","ERROR",MB_OK or MB_ICONEXCLAMATION)
      return FALSE                        ' Return FALSE
   endif

   If not(SetPixelFormat(hDC,PixelFormat,@pfd)) then      ' Are We Able To Set The Pixel Format?
      KillGLWindow()                        ' Reset The Display
      MessageBox(NULL,"Can't Set The PixelFormat.","ERROR",MB_OK Or MB_ICONEXCLAMATION)
      return FALSE                        ' Return FALSE
   endif

   if not(hRC=wglCreateContext(hDC)) then         ' Are We Able To Get A Rendering Context?
      KillGLWindow()                        ' Reset The Display
      MessageBox(NULL,"Can't Create A GL Rendering Context.","ERROR",MB_OK Or MB_ICONEXCLAMATION)
      return FALSE                        ' Return FALSE
   endif

   If Not(wglMakeCurrent(hDC,hRC)) Then            ' Try To Activate The Rendering Context
      KillGLWindow()                        ' Reset The Display
      MessageBox(NULL,"Can't Activate The GL Rendering Context.","ERROR",MB_OK Or MB_ICONEXCLAMATION)
      return FALSE                        ' Return FALSE
   endif

   ShowWindow(hWnd,SW_SHOW)                  ' Show The Window
   SetForegroundWindow(hWnd)                  ' Slightly Higher Priority
   SetFocus(hWnd)                           ' Sets Keyboard Focus To The Window
   ReSizeGLScene(wwidth, wheight)               ' Set Up Our Perspective GL Screen

   if not(InitGL()) then                           ' Initialize Our Newly Created GL Window
      KillGLWindow()                        ' Reset The Display
      MessageBox(NULL,"Initialization Failed.","ERROR",MB_OK Or MB_ICONEXCLAMATION)
      return FALSE                        ' Return FALSE
   EndIf
   
   return TRUE                           ' Success
End function

Function WndProc(ByVal hWnd As HWND,ByVal uMsg As UINT,byval wParam as WPARAM,byval lParam as LPARAM) As LRESULT         ' Additional Message Information
   Select Case (uMsg)                           ' Check For Windows Messages
      case WM_ACTIVATE                  ' Watch For Window Activate Message
         if ( Not HIWORD(wParam)) Then            ' Check Minimization State
            active=TRUE                  ' Program Is Active
         else
            active=FALSE                  ' Program Is No Longer Active
         EndIf
         return 0                        ' Return To The Message Loop

      case WM_SYSCOMMAND
         Select case (wParam)
            case SC_SCREENSAVE
            case SC_MONITORPOWER
               return 0
         End select

      case WM_CLOSE                        ' Did We Receive A Close Message?
         PostQuitMessage(0)                  ' Send A Quit Message
         return 0                        ' Jump Back

      case WM_KEYDOWN                     ' Is A Key Being Held Down?
         keys(wParam) = TRUE               ' If So, Mark It As TRUE
         return 0                        ' Jump Back

      case WM_KEYUP                        ' Has A Key Been Released?
         keys(wParam) = FALSE               ' If So, Mark It As FALSE
         return 0                        ' Jump Back

      case WM_SIZE                        ' Resize The OpenGL Window
         ReSizeGLScene(LOWORD(lParam),HIWORD(lParam))  ' LoWord=Width, HiWord=Height
         return 0                        ' Jump Back
   End select
   ' Pass All Unhandled Messages To DefWindowProc
   return DefWindowProc(hWnd,uMsg,wParam,lParam)
end function

function WinMain(ByVal hInstance As HINSTANCE,byval hPrevInstance As HINSTANCE,byval lpCmdLine As LPSTR,byval nCmdShow As integer) As integer         ' Window Show State
   Dim msg As MSG                        ' Windows Message Structure
   Dim done As Boolean = FALSE                        ' Bool Variable To Exit Loop

   ' Ask The User Which Screen Mode They Prefer
   if (MessageBox(NULL,"Would You Like To Run In Fullscreen Mode?", "Start FullScreen?",MB_YESNO Or MB_ICONQUESTION)=IDNO) then
      fullscreen=FALSE                     ' Windowed Mode
   EndIf

   ' Create Our OpenGL Window
   if ( Not CreateGLWindow("NeHe's First Polygon Tutorial",640,480,32,fullscreen)) then
      return 0                           ' Quit If Window Was Not Created
   EndIf
   
   while(Not done)                           ' Loop That Runs While done=FALSE
      if (PeekMessage(@msg,NULL,0,0,PM_REMOVE))   Then ' Is There A Message Waiting?
         if (msg.message=WM_QUIT) then            ' Have We Received A Quit Message?
            done=TRUE                     ' If So done=TRUE
         else                           ' If Not, Deal With Window Messages
            TranslateMessage(@msg)         ' Translate The Message
            DispatchMessage(@msg)            ' Dispatch The Message
         endif
      else                              ' If There Are No Messages
         ' Draw The Scene.  Watch For ESC Key And Quit Messages From DrawGLScene()
         if ((active And not DrawGLScene()) or keys(VK_ESCAPE)) then   ' Active?  Was There A Quit Received?
            done=TRUE                     ' ESC or DrawGLScene Signalled A Quit
         else                           ' Not Time To Quit, Update Screen
            SwapBuffers(hDC)               ' Swap Buffers (Double Buffering)
         EndIf
         
         if (keys(VK_F1)) then               ' Is F1 Being Pressed?
            keys(VK_F1)=FALSE               ' If So Make Key FALSE
            KillGLWindow()                  ' Kill Our Current Window
            fullscreen= Not fullscreen            ' Toggle Fullscreen / Windowed Mode
            ' Recreate Our OpenGL Window
            if ( Not CreateGLWindow("NeHe's First Polygon Tutorial",640,480,16,fullscreen)) then
               return 0                  ' Quit If Window Was Not Created
            endif
         endif
      endif
   wend

   ' Shutdown
   KillGLWindow()                           ' Kill The Window
   return (msg.wParam)                     ' Exit The Program
End function


falls evtl jemand mal drueber schauen koennte und mir sagen kann
was ich falsch mache waere ich dankbar dafuer.
sitze hier nun den ganzen tag da und habe nun wirklich keine idee mehr
warum das nich funzen will.

naja danke im vorraus.



gruesse
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 132

BeitragVerfasst am: 14.10.2009, 07:08    Titel: Antworten mit Zitat

nun gut ich habe es nun doch geschafft den code zum laufen zu bekommen.

statt zB
Code:
IF (NOT(hDC=GetDC(hWnd)))   THEN...

muss es
Code:
hDC=GetDC(hWnd)
IF hDC = NULL THEN...

heisen.

also thema beendet und geschlossen.

gruesse
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 14.10.2009, 13:52    Titel: Antworten mit Zitat

Ja, da musst du aufpassen; FB unterscheidet nicht zwischen =/==, &/&&, |/||. Nun gut, in der aktuellen version gibt's endlich auch AndAlso / OrElse (was && und || enspricht), aber zwischen = und == kann man immer noch nicht richtig unterscheiden. Ist halt Basic. happy
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 132

BeitragVerfasst am: 15.10.2009, 05:46    Titel: Antworten mit Zitat

naja damit komm ich ja noch klar nur das man in If..Then keine functionen
aufrufen kann die etwas zuruckgeben und das einer variablen gleich
in der if then zuzuweisen und dann noch nachzu schaun ob es wahr oder falsch ist....

boar krasser text grinsen

naja damran muss ich mich noch gewoehnen.
koennte zwar auch in c++ schreiben aber finde Basic irgendwie hammer.
liegt wohl an meinem alten brotkasten den ich noch zuhause habe. lächeln

ach ja und mit dem orelse und andalso komm ich ja nun garnet klar das
mag aber an der syntax liegen. aber danke fuer den hinweis. zwinkern

gruesse
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 15.10.2009, 13:32    Titel: Antworten mit Zitat

Zitat:
naja damit komm ich ja noch klar nur das man in If..Then keine functionen
aufrufen kann die etwas zuruckgeben und das einer variablen gleich
in der if then zuzuweisen und dann noch nachzu schaun ob es wahr oder falsch ist....

Ja, das ist eben weil ein = als == in dem Fall interpretiert wird...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht 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 -> Windows-spezifische Fragen 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