从sourceforge上svn download下代码,由于我用的vs2005,里面貌似是2003和2008的工程,因此从2003转换到2005底下,编译发现没有扎到yasm。下载yasm改名为yasm.exe,加入到2005 execute files,编译,有两个工程没有成功,显示是有函数重复定义了,发现在stdlib.h和这个的源代码中都有相同的函数,参想是在2003地下并没有,所以2005会重复。注释掉,编译链接错误。
没有dinput.lib,google发现在已经变成了dinput8.lib,修改加入link中。编译。。。。。。。。
error LNK2019: unresolved external symbol _DirectInputCreate referenced
又是该死的link错误,一阵google,发现我现在用的direct2009sdk,并没有directinputcreate的定义,在dinput.h中发现,一个宏定义,#if DIRECTINPUT_VERSION > 0x0700 然后就用directinput8create代替,试着代替,还是同样的错误,找到DIRECTINPUT_VERSION 宏,发现是在stdafx.h中定义为了0x0300所以当然不会用8了,修改改为0x0900,编译,由于directinputcreate和directinput8create的参数的格式都不一样因此修改,编译通过。。。。。。
link错误显示的是链接的时候没有找到函数或者是函数错误,肯定和库有关心,由于其只有在链接阶段才能发现因此很是难处理。。。。。以后多积累吧。
java有兼容问题,windows更是多呀