2011-05-30 57 views

回答

2

您需要確保用於構建wxhaskell的wxWidgets啓用了Unicode支持。我想你可以通過運行wx-config --libs --unicode來檢查。

我認爲正在發生的事情是,wxWidgets期待簡單的8位字符,但接收寬32位的字符。零被解釋爲空字符,即字符串終止符。啓用Unicode支持爲您提供了一個接受寬字符的wxWidgets。我並不完全確定這個版本的故事是​​相當準確的,但我知道Unicode wxWidgets解決了這個問題。

在大多數Linux發行版中,我想,wxWidgets軟件包已經支持Unicode。

在MacOS X上,捆綁的wxWidgets確實有Unicode支持,但不幸的是丟失了一些與事件處理相關的必要功能。獲得工作wxWidgets最簡單的方法是通過Homebrew(brew update; brew install wxmac)。

我從來沒有嘗試Windows上的wxhaskell,但其他人有。

+0

看起來就是這樣。請參閱:http://www.haskell.org/haskellwiki/WxHaskell/Troubleshooting 在此頁面搜索「我只能看到每個單詞的第一個字母」 – mentics 2011-05-30 10:29:31

+0

要修復的特定步驟: '> $ env:WXCFG =「gcc_dll \ mswu「(在Windows 7的PowerShell中,或者你可以在你正在使用的命令提示符下設置它)' '> cabal install --reinstall wxcore' 然後重建你的軟件包,它現在可以工作。 – mentics 2011-05-30 10:49:42

+0

我發現這並沒有解決它 - 但我用wxPack,其中包括所有的生成和dll,然後不得不將wxmsw28u_gcc.dll 從:../libraries/wxWidgets/lib/gcc_dll/ 複製到:c:/ windows/system – guthrie 2011-07-18 16:37:26