我有一段代码依赖于windows提供的“Xinput.lib”文件,以便与xbox控制器连接。
最近我安装了VS2012,这似乎导致“Xinput.lib”不再可供编译器使用。我发现了一种解决方法,我在运行VS2012编译器的系统上使用“Xinput9_1_0.lib”。然而,这会导致问题,因为我在多个系统上开发,其中一个运行VS2012而另一个运行VS2010。要编译,我必须在代码中的“Xinput9_1_0.lib”和“Xinput.lib”之间进行更改。
我想知道的是,在使用#pragma comment链接库之前是否有办法搜索可用的库?
这样的事情(我意识到这绝不是有效的,只是意图的证明):
if("Xinput.lib" exists) {
#pragma comment(lib,"Xinput.lib")
}
else if("Xinput9_1_0.lib" exists) {
#pragma comment(lib,"Xinput9_1_0.lib")
}
答案 0 :(得分:3)
将宏用于您感兴趣的VS的特定版本:
#ifdef MSC_VER < 1700 //pre 2012
#pragma comment(lib,"Xinput.lib")
#else
#pragma comment(lib,"Xinput9_1_0.lib")
#endif