Microsoft Visual Studio 最初からwchar_tを組み込み型として扱う

Last-modified: 2006-10-10 (火) 18:17:54

概要

 どんな理由か知らないけれど、Visual Studio.NET 2003では
wchar_tをshortとして扱うようになっている。
 一応、プロジェクトプロパティ「C/C++」-「言語」にある
「wchar_tをビルトイン型として扱う」の値を「はい」にすれば
この問題は解決するが、プロジェクト作成のたびに行うのは面倒だし
忘れがちになってしまう。

問題点

  • shortとwchar_tのオーバーロードができない
  • このオプションを「はい」にしたライブラリが使えない(未解決シンボルとなる)

解決策

「C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\VCWizards」にある
「default.vcproj」を以下のようにしておく。

<?xml version="1.0"?>
<VisualStudioProject ProjectType="Visual C++" Version="7.10">
	<Platform Name="Win32"/>
	<Configuration Name="Debug|Win32">
		<Tool
			Name="VCCLCompilerTool"
			TreatWChar_tAsBuiltInType="TRUE"/>
	</Configuration>
	<Configuration Name="Release|Win32">
		<Tool
			Name="VCCLCompilerTool"
			TreatWChar_tAsBuiltInType="TRUE"/>
	</Configuration>
	<References/>
</VisualStudioProject>

このXMLファイル中の「Debug」および「Release」にあるTool要素の属性
「TreatWChar_tAsBuiltInType="TRUE"」が今回の問題を解決する。

とりあえず、MFCとWin32、.NETフォームのプロジェクトで設定が反映されることを確認した。
なお、警告レベル設定の属性「WarningLevel="3"」は無視される模様。
(というか上書きっぽい)