1) 下载源代码 2.14 版本
http://gens.me/downloads.shtml
2) 下载 老版本 DirectX 并且安装
https://github.com/apitrace/apitrace/wiki/DirectX-SDK
我用了下面的 2007年的版本
Last to include D3D8 headers and libraries: August 2007
https://www.microsoft.com/en-gb/download/details.aspx?id=13287
3) 加入环境变量
编辑 E:\tool\VS2017\Common7\Tools\VsDevCmd.bat
在:ext_end 之前,加入下面的代码
set DXSDK_DIR="C:\Program Files (x86)\Windows Kits\DirectX_SDK_2007\" call %DXSDK_DIR%Utilities\Bin\dx_setenv.cmd i386
4 ) 因为老版本 dinput.lib 用了老的 libc.lib , 而 VS2017 默认用了 ucrt. 所以会有冲突。
编辑gens的Makefile,加上link选项 /NODEFAULTLIB:libc
变更后:
$(GENSPATH)\gens.exe: $(OBJS) $(LINK) /NODEFAULTLIB:libc /SUBSYSTEM:WINDOWS /OUT:"$@" /PDB:"$(SYMPATH)\$(@B).pdb" $(GENS_LIBS) $**
参考:
https://docs.microsoft.com/en-us/cpp/c-runtime-library/crt-library-features?view=vs-2019