のどあめ

ググってもなかなか出てこなかった情報を垂れ流すブログ。

VisualStudioの理不尽な問題(の一部)に対処する

私は普段のプログラミング(C++)でVisual Studioを良く使っています.
なんだかんだ言ってもIntelliSenseや高機能なデバッガは非常に便利です.今後Visual Studioオープンソース化するということなので,楽しみであります.
参考:Microsoft takes .NET open source and cross-platform, adds new development capabilities with Visual Studio 2015, .NET 2015 and Visual Studio Online | News Center

しかし,Visual Studioを使っていると時々理不尽な問題にぶち当たり,どうしていいかわからなくなる時があります.
最近こうした問題について後輩から何度か質問されたので,その辺りをまとめました.
今回対象とするのは最新版のVisual Studio2013のみですが,古いバージョンでも同じようなことが可能かもしれません.

Visual Studioの理不尽な問題

今回扱うVisual Studioの理不尽な問題は以下のとおりです.

以上3点です.これは酷い・・・
VisualStudioを使い始めでこのような問題にぶち当たったら投げ出す人が多いと思います.

いつの間にかIntelliSenseが効かなっている

特にActive Directoryを導入した環境でVisual Studioを使っている時に良く発生する気がします.こちらに関しては,フォールバック位置を変更することで対処する事ができる場合があります.

オプション→テキスト エディター→C/C++→詳細について,
常にフォールバック位置を使用を「True」
フォールバック位置をC直下などActive Directoryの管理下出ないフォルダに指定すればOKです.
指定したあとは,Visual Studioを再起動する必要があります.

また,最初からプロジェクトをローカルに作ってしまっても大丈夫だと思います.

ソースコードが元のバージョンと異なります」と言われてデバッグ時にブレークポイントで止まらない

こちら(Visual Studioでブレーク出来ない問題)のページによると,昔からある厄介なバグのようです.こちらはデバッグ情報の形式を変更することで対処することが出来る場合があります.

プロジェクトのプロパティ→C++→全般について
デバッグ情報の形式を「C7 互換 (/Z7)」に変更します.

理由はよくわかりませんが,これで大抵治ります.

ソースコードを編集したのにデバッグ時に反映されない

これに関しては,「最小リビルドを有効にする」というコンパイルオプションが悪さをしている場合があります.

プロジェクトのプロパティ→C++→コード生成について
最小リビルドを有効にするを「いいえ (/Gm-)」にします.

今回のまとめ

今回はVisual Studioの理不尽な問題(の一部)の解決法について紹介しました.
他にも,#includeをするときに<だと補完されるのにダブルクオーテーションだと補完されない等いろいろ細かい問題もありますが,それらについてはまた機会があれば紹介したいと思います.

文句をタラタラ言っていますが,最近はPythonを書くこともできますし,なんだかんだ言ってもVisual Studioは便利なツールです.
ぜひ使いこなして快適なVisual Studioライフを送りましょう!