2

我有一段代码依赖于 Windows 提供的“Xinput.lib”文件,以便与 xbox 控制器交互。

最近我安装了 VS2012,这似乎导致编译器不再可以使用“Xinput.lib”。我找到了一种解决方法,我改为在运行 VS2012 编译器的系统上使用“Xinput9_1_0.lib”。然而,这会导致一个问题,因为我正在多个系统上进行开发,其中一个运行 VS2012,另一个运行 VS2010。要编译,我必须在代码中的“Xinput9_1_0.lib”和“Xinput.lib”之间进行更改。

我想知道是否有办法在使用#pragma 注释链接库之前搜索可用库?

像这样的东西(我意识到这绝不是有效的,只是意图的证明):

if("Xinput.lib" exists) {
#pragma comment(lib,"Xinput.lib")
}
else if("Xinput9_1_0.lib" exists) {
#pragma comment(lib,"Xinput9_1_0.lib")
}
4

1 回答 1

3

将宏用于您感兴趣的特定版本的 VS:

#ifdef MSC_VER < 1700 //pre 2012
#pragma comment(lib,"Xinput.lib")
#else
#pragma comment(lib,"Xinput9_1_0.lib")
#endif
于 2013-03-28T21:51:43.303 回答