Не удается заставить Freeglut работать с Haskell в Windows - PullRequest
3 голосов
/ 22 января 2012

Вот мой исходный код, который я пытаюсь заставить работать:

В 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

В 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 ()

Это работает, если я использую обычный glut32.dll и ни одно из расширений freeglut в моем коде, но я хочу использовать расширения freeglut.

Когда я использую freeglut.dll, переименовываю его в glut32.dll и помещаю в ту же папку, что и мой .exe, выдает ошибку:

main: user error (unknown GLUT entry glutInit)

Когда я так же использую обычный glut32.dll, я получаю сообщение об ошибке:

main: user error (unknown GLUT entry glutMouseWheelFunc)

Ответы [ 2 ]

0 голосов
/ 27 сентября 2015
  1. загрузить перенасыщение из http://www.transmissionzero.co.uk/software/freeglut-devel/

  2. скопировать файл freeglut-MinGW-3.0.0-1.mp.zip\freeglut\bin\x64\freeglut.dll в C:\Windows\System32

  3. переименовать его glut32.dll

Я только что решил эту проблему и надеюсь, что это может помочь другим.

0 голосов
/ 27 января 2012

Вы должны использовать freeglut .lib / .dll из Mingw или скомпилировать его самостоятельно.

...