質問: 自作でSTGゲームを作ろうとしているのですが、コンパイルする時のバグの発生で開発開始直後の状態から全く進んでいません。 Visual Studio 2015 Communityで、C++/CLIとDXライブラリを使い開発しているのですが、標準ライブラリを使用すると(正確にはincludeすると)、以下の様なバグが出てコンパイル出来ません(前者はDebugビルド、後者はReleaseビルドの時です)。 * LNK2038 'RuntimeLibrary' の不一致が検出されました。値 'MTd_StaticDebug' が MDd_DynamicDebug の値 'Main.obj' と一致しません。 * LNK2038 'RuntimeLibrary' の不一致が検出されました。値 'MT_StaticRelease' が MD_DynamicRelease の値 'Main.obj' と一致しません。 また、 * #include //リンカエラー発生 * #include //リンカエラー発生 * #include //エラー発生せず * #include "DxLib.h" //エラー発生せず となることから、C++標準ライブラリでのみ発生すると推測されます。 この問題について色々と調べていき、コンパイルのスイッチに/MDdや/MDでなく、/MTdや/MTを使用するとこのバグが起きないと分かったのですが、C++/CLIを使用している時は/MTdや/MTは使えないのでどのように対処すればいいのか一切見当が付かない状態です。対処法がないのならばネイティブのC++での開発に切り替えようと思うのですが、もし対処法があるのならばお教え頂けないでしょうか。
回答: こんにちは。 たまたま手元にC++/CLIでWindows Formのお試し用プロジェクトがあったので、やってみました。 , 両方共リンカ・エラーは発生しませんでした。 プロジェクトのプロパティは/MDdでした。 ほぼ素のプロジェクトです。 MyForm.hの#pragma onceの直後で#includeしています。 Visual Studio 2015 update1です。 それと同様な問題がネイティブのC++で発生した記憶がありますが...う~ん、原因を思い出せません。 プロジェクトの設定はデバッグ用とリリース用が異なります。デバッグモードでビルドできるようにしている時にリリース用の設定をいろいろ変更してたような、そんなマヌケっぽい苦労だったような記憶が薄っすらとあります。