程式者的胡言亂語
用cegcc編譯出來的DLL無法在Windows Mobile 6.1上的機器載入
這個問題發現好幾個月了,但這次又有人問起,臨時找不到,所以我一定要筆記一下,不然再遇到又會忘記。基本上就是Windows Mobile 6.1上的記憶體管理機制有一些改變,導致某些DLL無法被載入。有一個workaround,請參考這邊:18. DLL doesn't work with Windows Mobile 6.1。
目前看到的受害者都是試著把ffmpeg弄到Windows Mobile上跑的人。錯誤訊息會像是「'MyProgram' is not a valid Windows CE application」或是「不是一个有效的PocketPC应用程序」之類的,總之,如果你在LoadLibrary後去取GetLastError()值,會取到c1,也就是ERROR_BAD_EXE_FORMAT。但問題並不出在EXE檔本身的格式,而是DLL的問題。
Posted at 04:43下午 六月 30, 2009 by Chien-Hsing Wang in General | 迴響[0]
迴響:
星期二 六月 30, 2009
