VBOXSDL不兼容64位操作系统的解决办法



VBOXSDL不兼容64位操作系统的解决办法
 
最近在玩Virtual Box,感觉非常不错。但是在用VBoxSDL.exe启动虚拟机的时候碰到点问题,
 
在windows7 x64下SDL会运行报错:www.2cto.com  
 
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逐项检查,终于找到有一行:
  www.2cto.com  
AdditionalOptions="/MACHINE:I386"
 
 这个AdditionalOptions是神马呢?在VS的设置界面里找了半天,终于发现在Linker->Command Line的底下有一个Additional options。我X,太坑爹了!浪费了我一个小时!!!
 
最后,Link顺利通过,用新编译的SDL.DLL替换VBox安装目录下的SDL.DLL,再次启动,顺利通过.
 

相关内容

    暂无相关文章