OrangeMaker_logo
memo アイコン VS2008/VS2010 備忘録

 VisualStudio2008/2010関連でちょっとしたメモを記録します。
  (記載内容について正しい保障があるものではありませんのでご注意ください。)

VS6からの移行注意点

 VS6からVS2008への移行はVisualStudioが旧形式を読み込みをおこなうとダイアログを表示して形式の変換をおこなうか否かを聞いてくるのでこれに従えばプロジェクトの変換は自動で行われます。ただし言語仕様やライブラリのちがいにより若干の留意点があります。

(1)forループのスコープ

 forループ内での変数宣言はスコープがfor分内に変更されていますのでforループ内で宣言した変数をforループのスコープ外で使用しているケースではエラーになります。該当箇所が少ない場合はソースの修正が望ましいと思いますが、修正箇所が多い場合は、プロジェクトプロパティの「構成プロパティ」-「C/C++」-「言語」の「forループスコープの強制準拠」を「いいえ (/Zc:forScope-)」を選択することで言語仕様を変更できます。

(2)セキュリティ強化ライブラリ

 strcopyやsprintf()などのバッファへのコピー動作をともなう標準ライブラリを使用している場合はセキュリティ強化版を使うようにワーニングがでます。(バッファオーバラン対策版)

 これも該当箇所は少ない場合は、セキュリティ強化版に書き換えが望ましいと思われますが古くから使用しているライブラリなどはそのまま使いたいケースもあります。このワーニングを抑止するにはプリプロセッサマクロ「_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1」「CRT_SECURE_NO_WARNINGS」を定義します。前者はセキュア版に強制置き換えを行い後者はワーニングを抑止します。