Ich kann Freeglut nicht dazu bringen, mit Haskell unter Windows zu arbeiten

Hier ist mein Quellcode, den ich zur Arbeit bringen möchte:

In Main.hs:

import Graphics.Rendering.OpenGL
import Graphics.UI.GLUT
import Bindings
import Data.IORef
main = do
    (progname,_) <- getArgsAndInitialize
    createWindow "Hello World"
    reshapeCallback $= Just reshape
    keyboardMouseCallback $= Just keyboardMouse
    angle <- newIORef 0.0
    displayCallback $= display
    idleCallback $= Just idle
    mouseWheelCallback $= Just mouseWheel
    mainLoop

In Bindings.hs:

module Bindings where
import Graphics.Rendering.OpenGL
import Graphics.UI.GLUT

display :: IO ()
display = return ()

overlayDisplay :: IO ()
overlayDisplay = return ()

visibility :: Visibility -> IO ()
visibility v = return ()

reshape :: Size -> IO ()
reshape s@(Size w h) = do 
    viewport $= (Position 0 0, s)

close :: IO ()
close = return ()

keyboardMouse :: Key -> KeyState -> Modifiers -> Position -> IO ()
keyboardMouse key state modifiers position = return ()

mouseWheel :: WheelNumber -> WheelDirection -> Position -> IO ()
mouseWheel wn wd p = return ()

idle :: IO ()
idle = return ()

Es funktioniert, wenn ich normale glut32.dll und keine der freeglut-Erweiterungen in meinem Code verwende, aber ich möchte die freeglut-Erweiterungen verwenden.

Wenn ich freeglut.dll verwende, es in glut32.dll umbenenne und es in den gleichen Ordner wie meine .exe ablege, erhalte ich den Fehler:

main: user error (unknown GLUT entry glutInit)

Wenn ich die normale glut32.dll auf die gleiche Weise verwende, erhalte ich den Fehler:

main: user error (unknown GLUT entry glutMouseWheelFunc)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage