Hybird3D

乔捷的技术博客

博客园 首页 新随笔 联系 订阅 管理
  15 随笔 :: 0 文章 :: 105 评论

最近在玩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,再次启动,顺利通过。

 

 

posted on 2011-03-21 15:41  qiaojie  阅读(2186)  评论(0编辑  收藏