坑爹的SDL
最近在玩Virtual Box,感覺非常不錯。但是在用VBoxSDL.exe啟動虛擬機的時候碰到點問題,在windows7 x64下SDL會運行報錯:
SDL Error: 'DirectInputDevice::SetDataFormat: Invalid parameters'
?
研究了一下VBox的源代碼,懷疑是SDL.dll里的問題,于是下載了SDL 1.2的源代碼,重新編譯一個x64的SDL.DLL看看。
打開VisualC目錄下的工程文件,發現只有WIN32版的編譯配置,自己新建了一個x64的編譯配置,編譯正確,到了Link的時候報錯:
.\release\SDL.obj : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
?
檢查了Link里的編譯配置,明明是選了MachineX64 (/MACHINE:X64),google了老半天MSDN也翻遍了,還是百思不得起解。最后沒轍了,手工打開SDL.vcproj逐項檢查,終于找到有一行:
AdditionalOptions="/MACHINE:I386"
?
這個AdditionalOptions是神馬呢?在VS的設置界面里找了半天,終于發現在Linker->Command Line的底下有一個Additional options。我X,太坑爹了!!!浪費了我一個小時!!!
最后,Link順利通過,用新編譯的SDL.DLL替換VBox安裝目錄下的SDL.DLL,再次啟動,順利通過。
?
?
轉載于:https://www.cnblogs.com/Hybird3D/archive/2011/03/21/1990334.html
總結
- 上一篇: 纯吐槽,对于娘家真是鸭梨山大?
- 下一篇: 一炮多少钱啊?