C++6.0の頃から脈々と作り続けているわけだが、SDKのバージョンを最新のものにするなどの必要はあったものの、コンパイラーのバーションを変更しただけでビルドがエラーになることは少なくともなかった。Studio2013へ開発環境を上げたときに遭遇した時に発生したエラーとその対処方法をまとめた。開発環境のOSはWindows7なのでWindows8以降の場合にどのようになるかは未検証である。SDKを使用している場合にも発生するようだが(他にも発生するライブラリがあるかもしれない)、DirectShow以外のDirectXを使用したプログラムを書いていないので真偽のほどは確かめていない。Studio2013で読み込む。Studio2013のコンパイラを使ってビルドするように設定し直す。ソリューションエクスプローラーで対象となるプロジェクトを選択した上で、メニューの[プロジェクト]からプルダウンの一番下にある[プロパティ]を選択する。Studio2013(v120)」を選択する。これで設定終了でメニューの[ビルド]から[ソリューションのビルド]を選択するとビルドが実行される。通常であればこれで何事もなくビルドは完了するのだが、次のようなエラーが出てビルトが失敗する。マクロが再定義されました。マクロが再定義されました。メンバーではありません。定義されていない識別子です。定義されていない識別子です。メンバーではありません。」の部分をダブルクリックしてatlcore.hを表示すると下記のようなコードが出てくる。_USING_V110_SDK71_が定義されていないとSetDefaultDllDirectoriesの存在をチェックしにいくようだ。_USING_V110_SDK71_」を「stdafx.h」で記述すると無事ビルド完了した。_USING_V110_SDK71_」を各ソースコードの先頭に記述するという解決方法が主流である。_USING_V110_SDK71_」がなんらかしらの影響を与えないか気になったが、私が書いたプログラムの範囲内では特段の影響は確認されなかった。調べた中で他の解決方法もあった。いうかこちらの方がむしろ正当な解決方法のようである。(v120_xp)」にするという方法。_USING_V110_SDK71_」が追加されているのがわかる。XPでの動作に必要な設定がされている。この二つの方法のいずれかを用いるとソースコードに手を加えなくてもビルドできるようになる。Studio2012(VC++2012のバージョンナンバーがv11)からこの仕様になった。以降に統合されている」となっている。Studio2012以降の場合標準ではSDK内部にDirectX関連が含まれている仕様になり、これらを呼び出すために「_USING_V110_SDK71_」を明示的に示さなければならないのではないかと推測している。8以上のOSでビルドするときに検証してみたいと思う。本家で公開されたので、日本語定義ファイルもVer1.3用を作成しました。Vect...記事を読むgiflibのビルドLibjpegに引き続きgiflibをビルドしてみました。本家で公開されたので、日本語定義ファイルもVer1.3.2用を作成しました。本家で公開されたので、日本語定義ファイルもVer1.3.3用を作成しました。2015のRTMが公開されて1年、2016年7月にはUpdate3が公開された。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。たろうのIT日記%d人のブロガーが「いいね」をつけました。