2

xboxコントローラーとインターフェースするために、Windowsが提供する「Xinput.lib」ファイルに依存するコードがあります。

最近、「Xinput.lib」がコンパイラで使用できなくなったように見えるVS2012をインストールしました。VS2012コンパイラを実行しているシステムで代わりに「Xinput9_1_0.lib」を使用する回避策を見つけました。ただし、1 つが VS2012 を実行し、もう 1 つが 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")
}
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 に答える