LoginSignup
3
4

More than 5 years have passed since last update.

Effekseer1.22 For DXライブラリをVisual Studio 2017で使う

Last updated at Posted at 2017-04-27

概要

パーティクルエフェクトを作成しゲーム内で使用できる便利なツールに「Effekseer」というものがあります。Effekseerで作成したエフェクトはDirectXやOpenGLによりゲーム内で再生でき、DXライブラリ用のライブラリ「Effekseer For DXライブラリ」を使えばDXライブラリを用いたゲーム内でもEffekseerで作成したエフェクトを再生することができます。

しかし、本記事投稿時点でEffekseer For DXライブラリの最新バージョン1.22が対応するコンパイラはVisual Studio 2015(MSVC14.0)までとなっており、Visual Studio 2017(MSVC14.1)では使用することができません。

そこで、本記事ではVisual Studio 2017(以下VS2017)でEffekseer1.22 For DXLibを使用する方法を説明していこうと思います。DXライブラリやEffekseer1.22 For DXライブラリの導入方法はここでは説明しないのでご了承ください。

問題と解決法

Effekseer For DXライブラリでは、#pragma commentを用いてリンクするlibファイルを指定しています。リンクするlibファイルはMSVCのバージョンによって異なり、バージョンの判定部分で_MSC_VERが1700(VS2012)、1800(VS2013)、1900(VS2015)の場合以外は弾かれるようになっています。このため、_MSC_VERが1910であるVS2017ではlibファイルがリンクされず、リンク時にエラーが発生してしまいます。

このバージョン判定はEffekseerForDXLib.h内で行われており、同ファイルの16行目と56行目にある

変更前
#if _MSC_VER ==1900

変更後
#if _MSC_VER >=1900

とすることで、VS2017使用時にもlibファイルがリンクされ正常に動くようになります。

ちなみに、この方法ではVS2015向けにビルドされたlibファイルをVS2017でビルドしたファイルとリンクすることになるので問題が発生するのではないかと思うかもしれませんが、VS2017はVS2015とバイナリ互換である(Visual C++ Team Blogyより)ので、問題はないようです。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4