Index: trunk/ab5.0/abdev/ab_common/ab_common.vcproj
===================================================================
--- trunk/ab5.0/abdev/ab_common/ab_common.vcproj	(revision 825)
+++ 	(revision )
@@ -1,621 +1,0 @@
-<?xml version="1.0" encoding="shift_jis"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="ab_common"
-	ProjectGUID="{87835C33-64C9-4BA5-9B39-608BA5394387}"
-	RootNamespace="ab_common"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			ConfigurationType="4"
-			InheritedPropertySheets="..\ab-common-32.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories=""
-				PreprocessorDefinitions="_DEBUG;_LIB"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="1"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			ConfigurationType="4"
-			InheritedPropertySheets="..\ab-common-64.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories=""
-				PreprocessorDefinitions="_DEBUG;_LIB"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="1"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			ConfigurationType="4"
-			InheritedPropertySheets="..\ab-common-32.vsprops"
-			CharacterSet="2"
-			WholeProgramOptimization="0"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				InlineFunctionExpansion="2"
-				EnableIntrinsicFunctions="true"
-				FavorSizeOrSpeed="1"
-				AdditionalIncludeDirectories=""
-				PreprocessorDefinitions="NDEBUG;_LIB"
-				RuntimeLibrary="0"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			ConfigurationType="4"
-			InheritedPropertySheets="..\ab-common-64.vsprops"
-			CharacterSet="2"
-			WholeProgramOptimization="0"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				InlineFunctionExpansion="2"
-				EnableIntrinsicFunctions="true"
-				FavorSizeOrSpeed="1"
-				AdditionalIncludeDirectories=""
-				PreprocessorDefinitions="NDEBUG;_LIB"
-				RuntimeLibrary="0"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="ソース ファイル"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath=".\src\Environment.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\malloc.c"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						PreprocessorDefinitions="USE_DL_PREFIX"
-						UsePrecompiledHeader="0"
-						DisableSpecificWarnings="4267"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						PreprocessorDefinitions="USE_DL_PREFIX"
-						UsePrecompiledHeader="0"
-						DisableSpecificWarnings="4267"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="3"
-						PreprocessorDefinitions="USE_DL_PREFIX"
-						UsePrecompiledHeader="0"
-						DisableSpecificWarnings="4267"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="3"
-						PreprocessorDefinitions="USE_DL_PREFIX"
-						UsePrecompiledHeader="0"
-						DisableSpecificWarnings="4267"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\stdafx.cpp"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-			</File>
-			<Filter
-				Name="Lexical"
-				>
-				<File
-					RelativePath=".\src\Lexical\Class.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\Const.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\DataTable.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\Delegate.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\Interface.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\Member.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\Meta.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\Method.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\Namespace.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\NamespaceSupporter.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\NativeCode.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\ObjectModule.cpp"
-					>
-					<FileConfiguration
-						Name="Debug|Win32"
-						>
-						<Tool
-							Name="VCCLCompilerTool"
-							UsePrecompiledHeader="0"
-						/>
-					</FileConfiguration>
-					<FileConfiguration
-						Name="Debug|x64"
-						>
-						<Tool
-							Name="VCCLCompilerTool"
-							AdditionalOptions="/bigobj"
-							UsePrecompiledHeader="0"
-						/>
-					</FileConfiguration>
-					<FileConfiguration
-						Name="Release|Win32"
-						>
-						<Tool
-							Name="VCCLCompilerTool"
-							UsePrecompiledHeader="0"
-						/>
-					</FileConfiguration>
-					<FileConfiguration
-						Name="Release|x64"
-						>
-						<Tool
-							Name="VCCLCompilerTool"
-							UsePrecompiledHeader="0"
-						/>
-					</FileConfiguration>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\Parameter.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\Procedure.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\Source.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\Symbol.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\Template.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\Type.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\TypeDef.cpp"
-					>
-				</File>
-				<File
-					RelativePath=".\src\Lexical\Variable.cpp"
-					>
-				</File>
-			</Filter>
-			<Filter
-				Name="ResourceManager"
-				>
-				<File
-					RelativePath=".\src\ResourceManager\ResourceManager.cpp"
-					>
-				</File>
-			</Filter>
-		</Filter>
-		<Filter
-			Name="ヘッダー ファイル"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath=".\include\ab_common.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\BasicFixed.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Environment.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\libs.h"
-				>
-			</File>
-			<File
-				RelativePath=".\stdafx.h"
-				>
-			</File>
-			<Filter
-				Name="Lexical"
-				>
-				<File
-					RelativePath=".\include\Lexical\Class.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Const.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\DataTable.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Delegate.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Interface.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Member.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Meta.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Method.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Namespace.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\NamespaceSupporter.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\NativeCode.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\ObjectModule.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Parameter.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Procedure.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Prototype.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\RelationalObjectModuleItem.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Resolver.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Source.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Symbol.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Template.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Type.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\TypeDef.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\TypeMisc.h"
-					>
-				</File>
-				<File
-					RelativePath=".\include\Lexical\Variable.h"
-					>
-				</File>
-			</Filter>
-			<Filter
-				Name="ResourceManager"
-				>
-				<File
-					RelativePath=".\include\ResourceManager\ResourceManager.h"
-					>
-				</File>
-			</Filter>
-		</Filter>
-		<Filter
-			Name="リソース ファイル"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
Index: trunk/ab5.0/abdev/ab_common/ab_common.vcxproj
===================================================================
--- trunk/ab5.0/abdev/ab_common/ab_common.vcxproj	(revision 828)
+++ trunk/ab5.0/abdev/ab_common/ab_common.vcxproj	(revision 828)
@@ -0,0 +1,218 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{87835C33-64C9-4BA5-9B39-608BA5394387}</ProjectGuid>
+    <RootNamespace>ab_common</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>false</WholeProgramOptimization>
+    <PlatformToolset>Windows7.1SDK</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>Windows7.1SDK</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>false</WholeProgramOptimization>
+    <PlatformToolset>Windows7.1SDK</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>false</WholeProgramOptimization>
+    <PlatformToolset>Windows7.1SDK</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings" />
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\ab-common-32.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\ab-common-32.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\ab-common-64.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\ab-common-64.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>..\..\;..\..\cpplibs\boost;include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>false</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>..\..\;..\..\cpplibs\boost;include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>false</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>..\..\;..\..\cpplibs\boost;include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>..\..\;..\..\cpplibs\boost;include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="src\Environment.cpp" />
+    <ClCompile Include="malloc.c">
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">USE_DL_PREFIX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+      </PrecompiledHeader>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">USE_DL_PREFIX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+      </PrecompiledHeader>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Full</Optimization>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">USE_DL_PREFIX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+      </PrecompiledHeader>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">USE_DL_PREFIX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+      </PrecompiledHeader>
+      <EnablePREfast Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</EnablePREfast>
+      <EnablePREfast Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</EnablePREfast>
+    </ClCompile>
+    <ClCompile Include="src\OSVersion.cpp" />
+    <ClCompile Include="src\Path.cpp" />
+    <ClCompile Include="src\ProcessAndModule.cpp" />
+    <ClCompile Include="stdafx.cpp">
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
+    </ClCompile>
+    <ClCompile Include="src\Lexical\Const.cpp" />
+    <ClCompile Include="src\Lexical\DataTable.cpp" />
+    <ClCompile Include="src\Lexical\Delegate.cpp" />
+    <ClCompile Include="src\Lexical\Meta.cpp" />
+    <ClCompile Include="src\Lexical\ObjectModule.cpp">
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+      </PrecompiledHeader>
+      <AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/bigobj %(AdditionalOptions)</AdditionalOptions>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+      </PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+      </PrecompiledHeader>
+      <AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">/bigobj %(AdditionalOptions)</AdditionalOptions>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+      </PrecompiledHeader>
+    </ClCompile>
+    <ClCompile Include="src\Lexical\Source.cpp" />
+    <ClCompile Include="src\Lexical\Variable.cpp" />
+    <ClCompile Include="src\ResourceManager\ResourceManager.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="include\ab_common.h" />
+    <ClInclude Include="include\BasicFixed.h" />
+    <ClInclude Include="include\Environment.h" />
+    <ClInclude Include="include\libs.h" />
+    <ClInclude Include="include\OSVersion.h" />
+    <ClInclude Include="include\Path.h" />
+    <ClInclude Include="include\ProcessAndModule.h" />
+    <ClInclude Include="stdafx.h" />
+    <ClInclude Include="include\Lexical\Class.h" />
+    <ClInclude Include="include\Lexical\Const.h" />
+    <ClInclude Include="include\Lexical\DataTable.h" />
+    <ClInclude Include="include\Lexical\Delegate.h" />
+    <ClInclude Include="include\Lexical\Interface.h" />
+    <ClInclude Include="include\Lexical\Member.h" />
+    <ClInclude Include="include\Lexical\Meta.h" />
+    <ClInclude Include="include\Lexical\Method.h" />
+    <ClInclude Include="include\Lexical\Namespace.h" />
+    <ClInclude Include="include\Lexical\NamespaceSupporter.h" />
+    <ClInclude Include="include\Lexical\NativeCode.h" />
+    <ClInclude Include="include\Lexical\ObjectModule.h" />
+    <ClInclude Include="include\Lexical\Parameter.h" />
+    <ClInclude Include="include\Lexical\Procedure.h" />
+    <ClInclude Include="include\Lexical\Prototype.h" />
+    <ClInclude Include="include\Lexical\RelationalObjectModuleItem.h" />
+    <ClInclude Include="include\Lexical\Resolver.h" />
+    <ClInclude Include="include\Lexical\Source.h" />
+    <ClInclude Include="include\Lexical\Symbol.h" />
+    <ClInclude Include="include\Lexical\Template.h" />
+    <ClInclude Include="include\Lexical\Type.h" />
+    <ClInclude Include="include\Lexical\TypeDef.h" />
+    <ClInclude Include="include\Lexical\TypeMisc.h" />
+    <ClInclude Include="include\Lexical\Variable.h" />
+    <ClInclude Include="include\ResourceManager\ResourceManager.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <Manifest Include="..\common.manifest" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets" />
+</Project>
Index: trunk/ab5.0/abdev/ab_common/ab_common.vcxproj.filters
===================================================================
--- trunk/ab5.0/abdev/ab_common/ab_common.vcxproj.filters	(revision 828)
+++ trunk/ab5.0/abdev/ab_common/ab_common.vcxproj.filters	(revision 828)
@@ -0,0 +1,177 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Header Files\Lexical">
+      <UniqueIdentifier>{7dee9fae-bd04-4a86-af45-86bca352e084}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\ResourceManager">
+      <UniqueIdentifier>{5e5eb6cc-8677-4273-937e-a968f6c289a9}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Source Files\Lexical">
+      <UniqueIdentifier>{d95771b6-b211-4bd9-a009-f6a4675bbef8}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\ResourceManager">
+      <UniqueIdentifier>{54de5023-a27f-4152-ac06-485867ae0371}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\Environment.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="malloc.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="stdafx.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\Lexical\Const.cpp">
+      <Filter>Source Files\Lexical</Filter>
+    </ClCompile>
+    <ClCompile Include="src\Lexical\DataTable.cpp">
+      <Filter>Source Files\Lexical</Filter>
+    </ClCompile>
+    <ClCompile Include="src\Lexical\Delegate.cpp">
+      <Filter>Source Files\Lexical</Filter>
+    </ClCompile>
+    <ClCompile Include="src\Lexical\Meta.cpp">
+      <Filter>Source Files\Lexical</Filter>
+    </ClCompile>
+    <ClCompile Include="src\Lexical\ObjectModule.cpp">
+      <Filter>Source Files\Lexical</Filter>
+    </ClCompile>
+    <ClCompile Include="src\Lexical\Source.cpp">
+      <Filter>Source Files\Lexical</Filter>
+    </ClCompile>
+    <ClCompile Include="src\Lexical\Variable.cpp">
+      <Filter>Source Files\Lexical</Filter>
+    </ClCompile>
+    <ClCompile Include="src\ResourceManager\ResourceManager.cpp">
+      <Filter>Source Files\ResourceManager</Filter>
+    </ClCompile>
+    <ClCompile Include="src\Path.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\ProcessAndModule.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\OSVersion.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="include\ab_common.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\BasicFixed.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Environment.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\libs.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="stdafx.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Class.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Const.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\DataTable.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Delegate.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Interface.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Member.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Meta.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Method.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Namespace.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\NamespaceSupporter.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\NativeCode.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\ObjectModule.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Parameter.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Procedure.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Prototype.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\RelationalObjectModuleItem.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Resolver.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Source.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Symbol.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Template.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Type.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\TypeDef.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\TypeMisc.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Lexical\Variable.h">
+      <Filter>Header Files\Lexical</Filter>
+    </ClInclude>
+    <ClInclude Include="include\ResourceManager\ResourceManager.h">
+      <Filter>Header Files\ResourceManager</Filter>
+    </ClInclude>
+    <ClInclude Include="include\Path.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\ProcessAndModule.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="include\OSVersion.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <Manifest Include="..\common.manifest" />
+  </ItemGroup>
+</Project>
Index: trunk/ab5.0/abdev/ab_common/include/BasicFixed.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/BasicFixed.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/BasicFixed.h	(revision 828)
@@ -129,16 +129,16 @@
 
 //オブジェクト指向エスケープシーケンス
-#define ESC_CLASS			(char)0xA0
-#define ESC_ENDCLASS		(char)0xA1
-#define ESC_ABSTRACT		(char)0xA2
-#define ESC_VIRTUAL			(char)0xA3
-#define ESC_OVERRIDE		(char)0xA4
-#define ESC_INHERITS		(char)0xA5
-#define ESC_ENUM			(char)0xA6
-#define ESC_ENDENUM			(char)0xA7
-#define ESC_NEW				(char)0xA8
-#define ESC_INTERFACE		(char)0xA9
-#define ESC_ENDINTERFACE	(char)0xAA
-#define ESC_DELEGATE		(char)0xAB
-#define ESC_IMPLEMENTS		(char)0xAC
-#define ESC_SYSTEM_STATIC_NEW	(char)0xAD
+#define ESC_CLASS			'\xA0'
+#define ESC_ENDCLASS		'\xA1'
+#define ESC_ABSTRACT		'\xA2'
+#define ESC_VIRTUAL			'\xA3'
+#define ESC_OVERRIDE		'\xA4'
+#define ESC_INHERITS		'\xA5'
+#define ESC_ENUM			'\xA6'
+#define ESC_ENDENUM			'\xA7'
+#define ESC_NEW				'\xA8'
+#define ESC_INTERFACE		'\xA9'
+#define ESC_ENDINTERFACE	'\xAA'
+#define ESC_DELEGATE		'\xAB'
+#define ESC_IMPLEMENTS		'\xAC'
+#define ESC_SYSTEM_STATIC_NEW	'\xAD'
Index: trunk/ab5.0/abdev/ab_common/include/Environment.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Environment.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Environment.h	(revision 828)
@@ -50,4 +50,10 @@
 		Environment::isRemoveExternal = isRemoveExternalMark;
 	}
+
+private:
+	Environment();
+	Environment(Environment const&);
+	Environment& operator =(Environment const&);
+	~Environment();
 };
 
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Class.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Class.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Class.h	(revision 828)
@@ -28,4 +28,8 @@
 	{
 	}
+
+private:
+	ClassPrototype(ClassPrototype const&);
+	ClassPrototype& operator =(ClassPrototype const&);
 };
 
@@ -497,4 +501,8 @@
 
 	virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors );
+
+private:
+	CClass(CClass const&);
+	CClass& operator =(CClass const&);
 };
 
@@ -528,3 +536,7 @@
 	const CClass *GetObjectClassPtr() const;
 	const CClass *GetInterfaceInfoClassPtr() const;
+
+private:
+	Classes(Classes const&);
+	Classes& operator =(Classes const&);
 };
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Const.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Const.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Const.h	(revision 828)
@@ -43,7 +43,12 @@
 	{
 	}
+private:
 	CConst()
+		: RelationalObjectModuleItem()
+		, type()
+		, i64data()
 	{
 	}
+public:
 	~CConst()
 	{
@@ -66,4 +71,8 @@
 
 	virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors );
+
+private:
+	CConst(CConst const&);
+	CConst& operator =(CConst const&);
 };
 class Consts : public Jenga::Common::Hashmap<CConst>
@@ -81,4 +90,5 @@
 
 public:
+	Consts() {}
 
 	void Add( const Symbol &symbol, _int64 i64data, const Type &type );
@@ -93,4 +103,8 @@
 	double GetDoubleData( const Symbol &symbol );
 	bool IsStringPtr( const Symbol &symbol, bool isUnicode );
+
+private:
+	Consts(Consts const&);
+	Consts& operator =(Consts const&);
 };
 
@@ -153,4 +167,8 @@
 
 	virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors );
+
+private:
+	ConstMacro(ConstMacro const&);
+	ConstMacro& operator =(ConstMacro const&);
 };
 class ConstMacros
@@ -169,5 +187,11 @@
 
 public:
+	ConstMacros() {}
+
 	bool Add( const Symbol &symbol, const char *parameterStr );
 	ConstMacro *Find( const Symbol &name );
+
+private:
+	ConstMacros(ConstMacros const&);
+	ConstMacros& operator =(ConstMacros const&);
 };
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Delegate.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Delegate.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Delegate.h	(revision 828)
@@ -96,4 +96,8 @@
 
 	virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors );
+
+private:
+	Delegate(Delegate const&);
+	Delegate& operator =(Delegate const&);
 };
 typedef Jenga::Common::Hashmap<Delegate> Delegates;
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Interface.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Interface.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Interface.h	(revision 828)
@@ -17,9 +17,25 @@
 
 public:
-	DynamicMethodsPrototype(){}
-	DynamicMethodsPrototype( const DynamicMethodsPrototype &dynamicMethodsPrototype )
-		: dynamicMethods( dynamicMethodsPrototype.dynamicMethods )
+	DynamicMethodsPrototype() {}
+	DynamicMethodsPrototype(DynamicMethodsPrototype&& dynamicMethodsPrototype)
+		: dynamicMethods(std::move(dynamicMethodsPrototype.dynamicMethods))
 	{
 	}
+	DynamicMethodsPrototype(const DynamicMethodsPrototype &dynamicMethodsPrototype)
+		: dynamicMethods(dynamicMethodsPrototype.dynamicMethods)
+	{
+	}
+
+	DynamicMethodsPrototype& operator =(DynamicMethodsPrototype&& y)
+	{
+		dynamicMethods = std::move(y.dynamicMethods);
+		return *this;
+	}
+
+	DynamicMethodsPrototype& operator =(DynamicMethodsPrototype const& y)
+	{
+		return *this = std::move(DynamicMethodsPrototype(y));
+	}
+
 	~DynamicMethodsPrototype(){}
 
@@ -62,4 +78,10 @@
 public:
 	Interface( const CClass *pInterfaceClass, const Types &actualTypeParameters );
+	Interface(Interface&& objInterface)
+		: DynamicMethodsPrototype(std::move(objInterface))
+		, pInterfaceClass(std::move(objInterface.pInterfaceClass))
+		, vtblOffset(std::move(objInterface.vtblOffset))
+	{
+	}
 	Interface( const Interface &objInterface )
 		: DynamicMethodsPrototype( objInterface )
@@ -72,4 +94,17 @@
 		, vtblOffset( NULL )
 	{
+	}
+
+	Interface& operator =(Interface&& y)
+	{
+		DynamicMethodsPrototype::operator =(std::move(y));
+		pInterfaceClass = std::move(y.pInterfaceClass);
+		vtblOffset = std::move(y.vtblOffset);
+		return *this;
+	}
+
+	Interface& operator =(Interface const& y)
+	{
+		return *this = std::move(Interface(y));
 	}
 
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Meta.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Meta.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Meta.h	(revision 828)
@@ -163,3 +163,7 @@
 
 	void Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors );
+
+private:
+	Meta(Meta const&);
+	Meta& operator =(Meta const&);
 };
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Method.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Method.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Method.h	(revision 828)
@@ -25,8 +25,19 @@
 	{
 	}
+
 	CMethod()
-	{
-	}
-
+		: MemberPrototype()
+		, pUserProc()
+	{
+	}
+
+protected:
+	CMethod(CMethod const& y)
+		: MemberPrototype(y)
+		, pUserProc(y.pUserProc)
+	{
+	}
+
+public:
 	const UserProc &GetUserProc() const
 	{
@@ -50,4 +61,7 @@
 
 	virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors );
+
+private:
+	CMethod& operator =(CMethod const&);
 };
 
@@ -103,5 +117,5 @@
 	{
 	}
-	DynamicMethod( const CMethod &method )
+	explicit DynamicMethod( const CMethod &method )
 		: CMethod( &method.GetUserProc(), method.GetAccessibility() )
 		, isAbstract( method.IsAbstract() )
@@ -116,4 +130,26 @@
 	}
 
+	DynamicMethod(DynamicMethod&& y)
+		: CMethod(std::move(y))
+		, isAbstract(std::move(y.isAbstract))
+		, isVirtual(std::move(y.isVirtual))
+		, isConst(std::move(y.isConst))
+		, pInheritsClass(std::move(y.pInheritsClass))
+		, isNotUse(std::move(y.isNotUse))
+	{
+	}
+
+	DynamicMethod(DynamicMethod const& y)
+		: CMethod(y)
+		, isAbstract(y.isAbstract)
+		, isVirtual(y.isVirtual)
+		, isConst(y.isConst)
+		, pInheritsClass(y.pInheritsClass)
+		, isNotUse(y.isNotUse)
+	{
+	}
+
+	DynamicMethod& operator =(DynamicMethod const&);
+
 	DynamicMethod::OverrideResult::EnumType Override( const UserProc *pUserProc, Prototype::Accessibility accessibility, bool isOverrideModifier );
 
@@ -161,5 +197,5 @@
 	virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors );
 };
-BOOST_CLASS_EXPORT( DynamicMethod );
+BOOST_CLASS_EXPORT_KEY( DynamicMethod );
 class StaticMethod : public CMethod
 {
@@ -182,4 +218,7 @@
 	}
 
+	// ムーブコンストラクタ
+	StaticMethod(StaticMethod&& y);
+
 	// コピーコンストラクタ
 	StaticMethod( const StaticMethod &staticMethod );
@@ -237,5 +276,5 @@
 	virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors );
 };
-BOOST_CLASS_EXPORT( StaticMethod );
+BOOST_CLASS_EXPORT_KEY( StaticMethod );
 
 class Methods : public std::vector<CMethod *>
@@ -255,6 +294,20 @@
 	Methods();
 
+	// ムーブコンストラクタ
+	Methods(Methods&& methods);
+
 	// コピーコンストラクタ
-	Methods( const Methods &methods );
+	Methods(const Methods &methods);
+
+	Methods& operator =(Methods&& methods)
+	{
+		std::vector<CMethod *>::operator =(std::move(methods));
+		return *this;
+	}
+
+	Methods& operator =(const Methods &methods)
+	{
+		return *this = Methods(methods);
+	}
 
 	// デストラクタ
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Namespace.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Namespace.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Namespace.h	(revision 828)
@@ -7,4 +7,5 @@
 class NamespaceScopes : public std::vector<std::string>
 {
+	typedef std::vector<std::string> Base;
 	// XMLシリアライズ用
 private:
@@ -17,17 +18,29 @@
 
 public:
-	NamespaceScopes(){}
+	NamespaceScopes() {}
+	NamespaceScopes(NamespaceScopes const& y)
+		: Base(y)
+	{
+	}
+	NamespaceScopes(NamespaceScopes&& y)
+		: Base(std::move(y))
+	{
+	}
 	NamespaceScopes( const std::string &namespaceStr );
 	NamespaceScopes( NamespaceScopes::const_iterator first, NamespaceScopes::const_iterator last )
-		: std::vector<std::string>( first, last )
+		: Base(first, last)
 	{
 	}
 	~NamespaceScopes(){}
 
-	NamespaceScopes operator+ ( const NamespaceScopes &namespaceScopes ) const;
-
 	void append( const NamespaceScopes &namespaceScopes )
 	{
 		insert( end(), namespaceScopes.begin(), namespaceScopes.end() );
+	}
+
+	NamespaceScopes& operator +=(const NamespaceScopes &namespaceScopes)
+	{
+		append(namespaceScopes);
+		return *this;
 	}
 
@@ -77,4 +90,6 @@
 };
 
+NamespaceScopes operator +(const NamespaceScopes &lhs, const NamespaceScopes &rhs);
+
 inline bool operator ==( const NamespaceScopes &lhs, const NamespaceScopes &rhs )
 {
@@ -84,4 +99,5 @@
 class NamespaceScopesCollection : public std::vector<NamespaceScopes>
 {
+	typedef std::vector<NamespaceScopes> Base;
 	// XMLシリアライズ用
 private:
@@ -93,4 +109,16 @@
 
 public:
+	NamespaceScopesCollection() : Base() {}
+	NamespaceScopesCollection(NamespaceScopesCollection&& y) : Base(std::move(y)) {}
+	NamespaceScopesCollection(NamespaceScopesCollection const& y) : Base(y) {}
+	NamespaceScopesCollection& operator =(NamespaceScopesCollection&& y)
+	{
+		Base::operator =(std::move(y));
+		return *this;
+	}
+	NamespaceScopesCollection& operator =(NamespaceScopesCollection const& y)
+	{
+		return operator =(NamespaceScopesCollection(y));
+	}
 	bool IsExist( const NamespaceScopes &namespaceScopes ) const
 	{
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/NamespaceSupporter.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/NamespaceSupporter.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/NamespaceSupporter.h	(revision 828)
@@ -65,4 +65,8 @@
 	// 指定された名前空間が同一エリアと見なされるかどうかをチェック
 	bool IsSameAreaNamespace( const NamespaceScopes &baseNamespaceScopes, const NamespaceScopes &entryNamespaceScopes ) const;
+
+private:
+	NamespaceSupporter(NamespaceSupporter const&);
+	NamespaceSupporter& operator =(NamespaceSupporter const&);
 };
 
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/NativeCode.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/NativeCode.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/NativeCode.h	(revision 828)
@@ -97,4 +97,27 @@
 		}
 	}
+	Schedule(Schedule&& y)
+		: type(std::move(y.type))
+		, offset(std::move(y.offset))
+		, lpValue(std::move(y.lpValue))
+	{
+	}
+	Schedule(Schedule const& y)
+		: type(y.type)
+		, offset(y.offset)
+		, lpValue(y.lpValue)
+	{
+	}
+	Schedule& operator =(Schedule&& y)
+	{
+		type = std::move(y.type);
+		offset = std::move(y.offset);
+		lpValue = std::move(y.lpValue);
+		return *this;
+	}
+	Schedule& operator =(Schedule const& y)
+	{
+		return *this = std::move(Schedule(y));
+	}
 	~Schedule()
 	{
@@ -151,4 +174,27 @@
 	{
 	}
+	SourceLine(SourceLine const& y)
+		: nativeCodePos(y.nativeCodePos)
+		, codeType(y.codeType)
+		, sourceCodePosition(y.sourceCodePosition)
+	{
+	}
+	SourceLine(SourceLine&& y)
+		: nativeCodePos(std::move(y.nativeCodePos))
+		, codeType(std::move(y.codeType))
+		, sourceCodePosition(std::move(y.sourceCodePosition))
+	{
+	}
+	SourceLine& operator =(SourceLine&& y)
+	{
+		nativeCodePos = std::move(y.nativeCodePos);
+		codeType = std::move(y.codeType);
+		sourceCodePosition = std::move(y.sourceCodePosition);
+		return *this;
+	}
+	SourceLine& operator =(SourceLine const& y)
+	{
+		return *this = std::move(SourceLine(y));
+	}
 
 	long GetNativeCodePos() const
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/ObjectModule.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/ObjectModule.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/ObjectModule.h	(revision 828)
@@ -43,4 +43,5 @@
 
 public:
+	ObjectModule() {}
 
 	const std::string &GetName() const
@@ -75,4 +76,8 @@
 	bool ReadString( const std::string &str );
 	bool WriteString( std::string &str ) const;
+
+private:
+	ObjectModule(ObjectModule const&);
+	ObjectModule& operator =(ObjectModule const&);
 };
 typedef std::vector<ObjectModule *> ObjectModules;
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Parameter.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Parameter.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Parameter.h	(revision 828)
@@ -29,7 +29,28 @@
 	Parameter( const Parameter &param, const Type &type );
 	Parameter( const Parameter &param );
+	Parameter(Parameter&& param)
+		: varName(std::move(param.varName))
+		, isRef(std::move(param.isRef))
+		, isArray(std::move(param.isArray))
+		, subscripts(std::move(param.subscripts))
+		, initValue(std::move(param.initValue)) {}
 	Parameter();
 	~Parameter();
 
+	Parameter& operator =(Parameter&& y)
+	{
+		varName = std::move(y.varName);
+		isRef = std::move(y.isRef);
+		isArray = std::move(y.isArray);
+		subscripts = std::move(y.subscripts);
+		initValue = std::move(y.initValue);
+		return *this;
+	}
+
+	Parameter& operator =(Parameter const& y)
+	{
+		return *this = std::move(Parameter(y));
+	}
+	
 	void SetArray( const Subscripts &subscripts ){
 		isArray = true;
@@ -46,5 +67,6 @@
 		return isRef;
 	}
-	bool IsArray(){
+	bool IsArray() const
+	{
 		return isArray;
 	}
@@ -76,4 +98,18 @@
 
 public:
+	Parameters() : std::vector<Parameter *>() {}
+	Parameters(Parameters&& y) : std::vector<Parameter *>(std::move(y)) {}
+	Parameters(Parameters const& y) : std::vector<Parameter *>(y) {}
+
+	Parameters& operator =(Parameters&& y)
+	{
+		std::vector<Parameter *>::operator =(std::move(y));
+		return *this;
+	}
+
+	Parameters& operator =(Parameters const& y)
+	{
+		return *this = std::move(Parameters(y));
+	}
 
 	bool Equals( const Parameters &params, bool isContravariant = false ) const;
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Procedure.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Procedure.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Procedure.h	(revision 828)
@@ -56,4 +56,44 @@
 	{
 	}
+
+	Procedure(Procedure const& y)
+		: RelationalObjectModuleItem(y)
+		, kind(y.kind)
+		, isCdecl(y.isCdecl)
+		, isUsing(y.isUsing)
+		, params(y.params)
+		, returnType(y.returnType)
+		, sourceCodePosition(y.sourceCodePosition)
+	{
+	}
+
+	Procedure(Procedure&& y)
+		: RelationalObjectModuleItem(std::move(y))
+		, kind(std::move(y.kind))
+		, isCdecl(std::move(y.isCdecl))
+		, isUsing(std::move(y.isUsing))
+		, params(std::move(y.params))
+		, returnType(std::move(y.returnType))
+		, sourceCodePosition(std::move(y.sourceCodePosition))
+	{
+	}
+
+	Procedure& operator =(Procedure&& y)
+	{
+		RelationalObjectModuleItem::operator =(std::move(y));
+		kind = std::move(y.kind);
+		isCdecl = std::move(y.isCdecl);
+		isUsing = std::move(y.isUsing);
+		params = std::move(y.params);
+		returnType = std::move(y.returnType);
+		sourceCodePosition = std::move(y.sourceCodePosition);
+		return *this;
+	}
+
+	Procedure& operator =(Procedure const& y)
+	{
+		return *this = std::move(Procedure(y));
+	}
+
 	~Procedure(){
 		foreach( Parameter *pParam, params ){
@@ -393,4 +433,8 @@
 
 	static const UserProc *pGlobalProc;
+
+private:
+	UserProc(UserProc const&);
+	UserProc& operator =(UserProc const&);
 };
 
@@ -418,4 +462,8 @@
 
 	void EnumGlobalProcs( const char *simpleName, const Symbol &localSymbol, std::vector<const UserProc *> &subs );
+
+private:
+	UserProcs(UserProcs const&);
+	UserProcs& operator =(UserProcs const&);
 };
 
@@ -499,7 +547,14 @@
 
 	virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors );
+
+private:
+	DllProc(DllProc const&);
+	DllProc& operator =(DllProc const&);
 };
 class DllProcs : public Jenga::Common::Hashmap<DllProc>
 {
+public:
+	DllProcs() {}
+
 	// XMLシリアライズ用
 private:
@@ -512,4 +567,7 @@
 			boost::serialization::base_object<Jenga::Common::Hashmap<DllProc>>(*this));
 	}
+
+	DllProcs(DllProcs const&);
+	DllProcs& operator =(DllProcs const&);
 };
 
@@ -540,4 +598,7 @@
 
 	virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors );
+
+	ProcPointer(ProcPointer const&);
+	ProcPointer& operator =(ProcPointer const&);
 };
 
@@ -569,3 +630,6 @@
 		clear();
 	}
+
+	ProcPointers(ProcPointers const&);
+	ProcPointers& operator =(ProcPointers const&);
 };
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Prototype.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Prototype.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Prototype.h	(revision 828)
@@ -61,4 +61,8 @@
 		isUsing = true;
 	}
+
+private:
+	Prototype(Prototype const&);
+	Prototype& operator =(Prototype const&);
 };
 
@@ -80,4 +84,5 @@
 	{
 	}
+
 	MemberPrototype()
 		: accessibility( Prototype::None )
@@ -85,4 +90,11 @@
 	}
 
+protected:
+	MemberPrototype(MemberPrototype const& y)
+		: accessibility(y.accessibility)
+	{
+	}
+
+public:
 	Prototype::Accessibility GetAccessibility() const
 	{
@@ -109,4 +121,7 @@
 		return ( accessibility == Prototype::Public );
 	}
+
+private:
+	MemberPrototype& operator =(MemberPrototype const &);
 };
 
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/RelationalObjectModuleItem.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/RelationalObjectModuleItem.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/RelationalObjectModuleItem.h	(revision 828)
@@ -20,5 +20,12 @@
 	}
 
-public:
+protected:
+	RelationalObjectModuleItem(RelationalObjectModuleItem&& relationalObjectModuleItem)
+		: Symbol(std::move(relationalObjectModuleItem))
+		, relationalObjectModuleIndex(std::move(relationalObjectModuleItem.relationalObjectModuleIndex))
+		, isNeedResolve(std::move(false))
+	{
+	}
+
 	RelationalObjectModuleItem( const RelationalObjectModuleItem &relationalObjectModuleItem )
 		: Symbol( relationalObjectModuleItem )
@@ -27,4 +34,5 @@
 	{
 	}
+
 	RelationalObjectModuleItem( const Symbol &symbol )
 		: Symbol( symbol )
@@ -33,4 +41,5 @@
 	{
 	}
+
 	RelationalObjectModuleItem()
 		: relationalObjectModuleIndex( -1 )
@@ -39,4 +48,21 @@
 	}
 
+	RelationalObjectModuleItem& operator =(RelationalObjectModuleItem&& y)
+	{
+		Symbol::operator =(std::move(y));
+		relationalObjectModuleIndex = std::move(y.relationalObjectModuleIndex);
+		isNeedResolve = std::move(y.isNeedResolve);
+		return *this;
+	}
+
+	RelationalObjectModuleItem& operator =(RelationalObjectModuleItem const& y)
+	{
+		Symbol::operator =(y);
+		relationalObjectModuleIndex = y.relationalObjectModuleIndex;
+		isNeedResolve = y.isNeedResolve;
+		return *this;
+	}
+
+public:
 	int GetRelationalObjectModuleIndex() const
 	{
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Resolver.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Resolver.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Resolver.h	(revision 828)
@@ -15,4 +15,28 @@
 	}
 
+	ResolveError(ResolveError&& y)
+		: relationalObjectModuleIndex(std::move(y.relationalObjectModuleIndex))
+		, targetItemName(std::move(y.targetItemName))
+	{
+	}
+
+	ResolveError(ResolveError const& y)
+		: relationalObjectModuleIndex(y.relationalObjectModuleIndex)
+		, targetItemName(y.targetItemName)
+	{
+	}
+
+	ResolveError& operator =(ResolveError&& y)
+	{
+		relationalObjectModuleIndex = std::move(y.relationalObjectModuleIndex);
+		targetItemName = std::move(y.targetItemName);
+		return *this;
+	}
+
+	ResolveError& operator =(ResolveError const& y)
+	{
+		return *this = std::move(ResolveError(y));
+	}
+
 	int GetRelationalObjectModuleIndex() const
 	{
@@ -28,4 +52,17 @@
 {
 public:
+	ResolveErrors() {}
+	ResolveErrors(ResolveErrors&& y) : std::vector<ResolveError>(std::move(y)) {}
+	ResolveErrors(ResolveErrors const& y) : std::vector<ResolveError>(y) {}
+	ResolveErrors& operator =(ResolveErrors&& y)
+	{
+		std::vector<ResolveError>::operator =(std::move(y));
+		return *this;
+	}
+	ResolveErrors& operator =(ResolveErrors const& y)
+	{
+		return *this = std::move(ResolveErrors(y));
+	}
+
 	void Add( const ResolveError &resolveError )
 	{
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Source.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Source.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Source.h	(revision 828)
@@ -21,6 +21,27 @@
 	{
 	}
+	IncludedFilesRelation(IncludedFilesRelation const& y)
+		: filePaths(y.filePaths)
+		, lineFileNumbers(y.lineFileNumbers)
+	{
+	}
+	IncludedFilesRelation(IncludedFilesRelation&& y)
+		: filePaths(std::move(y.filePaths))
+		, lineFileNumbers(std::move(y.lineFileNumbers))
+	{
+	}
 	~IncludedFilesRelation()
 	{
+	}
+	IncludedFilesRelation& operator =(IncludedFilesRelation&& y)
+	{
+		filePaths = std::move(y.filePaths);
+		lineFileNumbers = std::move(y.lineFileNumbers);
+		return *this;
+	}
+
+	IncludedFilesRelation& operator =(IncludedFilesRelation const& y)
+	{
+		return *this = std::move(IncludedFilesRelation(y));
 	}
 
@@ -76,4 +97,20 @@
 		buffer[length] = 0;
 	}
+	Text(Text&& text)
+		: length( text.length )
+	{
+		buffer = text.buffer;
+		text.buffer = static_cast<char*>(calloc(1, 1));
+		text.length = 0;
+	}
+	Text& operator =(Text&& y)
+	{
+		SwapImpl(*this, y);
+		return *this;
+	}
+	Text& operator =(Text const& y)
+	{
+		return *this = std::move(Text(y));
+	}
 	~Text(){
 		free( buffer );
@@ -100,4 +137,11 @@
 	static void SlideString(char *buffer, int slide){
 		memmove(buffer+slide, buffer, strlen(buffer)+1);
+	}
+
+protected:
+	static void SwapImpl(Text& lhs, Text& rhs)
+	{
+		std::swap(lhs.buffer, rhs.buffer);
+		std::swap(lhs.length, rhs.length);
 	}
 };
@@ -192,4 +236,9 @@
 	{
 	}
+	BasicSource(BasicSource&& basicSource)
+		: Text(std::move(basicSource))
+		, includedFilesRelation(std::move(basicSource.includedFilesRelation))
+	{
+	}
 	BasicSource( const std::string &source )
 	{
@@ -230,7 +279,14 @@
 	bool GetLineInfo( int sourceCodePos, int &line, std::string &fileName ) const;
 
-	void operator = ( const BasicSource &source ){
+	BasicSource& operator =(const BasicSource &source)
+	{
 		Realloc( source.length );
 		strcpy( buffer, source.buffer );
+		return *this;
+	}
+	BasicSource& operator =(BasicSource&& source)
+	{
+		Text::SwapImpl(*this, source);
+		return *this;
 	}
 
@@ -262,4 +318,18 @@
 		ar & boost::serialization::make_nvp("vector_BasicSource", boost::serialization::base_object<std::vector<BasicSource>>(*this));
 	}
+
+public:
+	BasicSources() {}
+	BasicSources(BasicSources&& y) : std::vector<BasicSource>(std::move(y)) {}
+	BasicSources(BasicSources const& y) : std::vector<BasicSource>(y) {}
+	BasicSources operator =(BasicSources&& y)
+	{
+		std::vector<BasicSource>::operator =(std::move(y));
+		return *this;
+	}
+	BasicSources operator =(BasicSources const& y)
+	{
+		return *this = std::move(BasicSources(y));
+	}
 };
 
@@ -289,4 +359,16 @@
 	{
 	}
+	SourceCodePosition(SourceCodePosition const& y)
+		: relationalObjectModuleIndex(y.relationalObjectModuleIndex)
+		, pos(y.pos)
+	{
+	}
+
+	SourceCodePosition& operator =(SourceCodePosition const& y)
+	{
+		relationalObjectModuleIndex = y.relationalObjectModuleIndex;
+		pos = y.pos;
+		return *this;
+	}
 
 	int GetRelationalObjectModuleIndex() const;
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Symbol.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Symbol.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Symbol.h	(revision 828)
@@ -38,16 +38,31 @@
 
 public:
-	Symbol( const NamespaceScopes &namespaceScopes, const std::string &name )
-		: namespaceScopes( namespaceScopes )
-		, name( name )
+	Symbol(NamespaceScopes namespaceScopes, std::string name)
+		: namespaceScopes(std::move(namespaceScopes))
+		, name(std::move(name))
 	{
 	}
-	Symbol( const Symbol &symbol )
-		: namespaceScopes( symbol.namespaceScopes )
-		, name( symbol.name )
+	Symbol(const Symbol &symbol)
+		: namespaceScopes(symbol.namespaceScopes)
+		, name(symbol.name)
+	{
+	}
+	Symbol(Symbol&& symbol)
+		: namespaceScopes(std::move(symbol.namespaceScopes))
+		, name(std::move(symbol.name))
 	{
 	}
 	Symbol()
 	{
+	}
+	Symbol& operator =(Symbol&& symbol)
+	{
+		namespaceScopes = std::move(symbol.namespaceScopes);
+		name = std::move(symbol.name);
+		return *this;
+	}
+	Symbol& operator =(Symbol const& symbol)
+	{
+		return *this = Symbol(symbol);
 	}
 
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Template.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Template.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Template.h	(revision 828)
@@ -48,4 +48,8 @@
 
 	virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors );
+
+private:
+	ExpandedTemplateClass(ExpandedTemplateClass const&);
+	ExpandedTemplateClass& operator =(ExpandedTemplateClass const&);
 };
 
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Type.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Type.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Type.h	(revision 828)
@@ -1,2 +1,3 @@
+#include <boost/foreach.hpp>
 #pragma once
 
@@ -66,10 +67,19 @@
 	  index( (LONG_PTR)&objClass ){}
 
-	Type( const Type &type )
-		: basicType( type.basicType )
-		, index( type.index )
-		, actualGenericTypes( type.actualGenericTypes )
-		, formalTypeName( type.formalTypeName )
-		, formalTypeIndex( type.formalTypeIndex )
+	Type(Type&& type)
+		: basicType(std::move(type.basicType))
+		, index(std::move(type.index))
+		, actualGenericTypes(std::move(type.actualGenericTypes))
+		, formalTypeName(std::move(type.formalTypeName))
+		, formalTypeIndex(std::move(type.formalTypeIndex))
+	{
+	}
+
+	Type(Type const& type)
+		: basicType(type.basicType)
+		, index(type.index)
+		, actualGenericTypes(type.actualGenericTypes)
+		, formalTypeName(type.formalTypeName)
+		, formalTypeIndex(type.formalTypeIndex)
 	{
 	}
@@ -77,14 +87,20 @@
 	~Type();
 
-	void operator= ( const Type &type )
-	{
-		basicType = type.basicType;
-		index = type.index;
-		actualGenericTypes = type.actualGenericTypes;
-		formalTypeName = type.formalTypeName;
-		formalTypeIndex = type.formalTypeIndex;
-	}
-
-	__inline int GetBasicType() const
+	Type& operator =(Type&& type)
+	{
+		basicType = std::move(type.basicType);
+		index = std::move(type.index);
+		actualGenericTypes = std::move(type.actualGenericTypes);
+		formalTypeName = std::move(type.formalTypeName);
+		formalTypeIndex = std::move(type.formalTypeIndex);
+		return *this;
+	}
+
+	Type& operator =(Type const& type)
+	{
+		return *this = Type(type);
+	}
+
+	int GetBasicType() const
 	{
 		return basicType;
@@ -253,4 +269,19 @@
 
 public:
+	Types() {}
+	Types(Types&& y) : std::vector<Type>(std::move(y)) {}
+	Types(Types const& y) : std::vector<Type>(y) {}
+
+	Types& operator =(Types&& y)
+	{
+		std::vector<Type>::operator =(std::move(y));
+		return *this;
+	}
+
+	Types& operator =(Types const& y)
+	{
+		return *this = std::move(Types(y));
+	}
+
 	bool IsEquals( const Types &Types ) const;
 };
@@ -281,12 +312,38 @@
 
 public:
-	GenericType( const std::string &name, const Type &type )
-		: name( name )
-		, type( type )
-	{
-	}
+	GenericType( std::string name, Type type )
+		: name(std::move(name))
+		, type(std::move(type))
+	{
+	}
+
 	GenericType()
 	{
 	}
+
+	GenericType(GenericType&& y)
+		: name(std::move(y.name))
+		, type(std::move(y.type))
+	{
+	}
+
+	GenericType(GenericType const& y)
+		: name(y.name)
+		, type(y.type)
+	{
+	}
+
+	GenericType& operator =(GenericType&& y)
+	{
+		name = std::move(y.name);
+		type = std::move(y.type);
+		return *this;
+	}
+
+	GenericType& operator =(GenericType const& y)
+	{
+		return *this = std::move(GenericType(y));
+	}
+
 	~GenericType()
 	{
@@ -329,7 +386,35 @@
 	{
 	}
+
 	BlittableType()
-	{
-	}
+		: basicType()
+		, pClass()
+	{
+	}
+
+	BlittableType(BlittableType&& y)
+		: basicType(std::move(y.basicType))
+		, pClass(std::move(y.pClass))
+	{
+	}
+
+	BlittableType(BlittableType const& y)
+		: basicType(y.basicType)
+		, pClass(y.pClass)
+	{
+	}
+
+	BlittableType& operator =(BlittableType&& y)
+	{
+		basicType = std::move(y.basicType);
+		pClass = std::move(y.pClass);
+		return *this;
+	}
+
+	BlittableType& operator =(BlittableType const& y)
+	{
+		return *this = std::move(BlittableType(y));
+	}
+
 	const Type &GetBasicType() const
 	{
@@ -344,4 +429,5 @@
 	virtual bool Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors );
 };
+
 class BlittableTypes : public std::vector<BlittableType>
 {
@@ -358,4 +444,17 @@
 
 public:
+	BlittableTypes() {}
+	BlittableTypes(BlittableTypes&& y) : std::vector<BlittableType>(std::move(y)) {}
+	BlittableTypes(BlittableTypes const& y) : std::vector<BlittableType>(y) {}
+	BlittableTypes& operator =(BlittableTypes&& y)
+	{
+		std::vector<BlittableType>::operator =(std::move(y));
+		return *this;
+	}
+	BlittableTypes& operator =(BlittableTypes const& y)
+	{
+		return *this = std::move(BlittableTypes(y));
+	}
+
 	bool IsExist( Type type ) const
 	{
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/TypeDef.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/TypeDef.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/TypeDef.h	(revision 828)
@@ -42,4 +42,31 @@
 	}
 
+	TypeDef(TypeDef&& y)
+		: RelationalObjectModuleItem(std::move(y))
+		, baseName(std::move(y.baseName))
+		, baseType(std::move(y.baseType))
+	{
+	}
+
+	TypeDef(TypeDef const& y)
+		: RelationalObjectModuleItem(y)
+		, baseName(y.baseName)
+		, baseType(y.baseType)
+	{
+	}
+
+	TypeDef& operator =(TypeDef&& y)
+	{
+		RelationalObjectModuleItem::operator =(std::move(y));
+		baseName = std::move(y.baseName);
+		baseType = std::move(y.baseType);
+		return *this;
+	}
+
+	TypeDef& operator =(TypeDef const& y)
+	{
+		return *this = std::move(TypeDef(y));
+	}
+
 	const std::string &GetBaseName() const
 	{
@@ -69,4 +96,15 @@
 public:
 	TypeDefCollection();
+	TypeDefCollection(TypeDefCollection&& y) : std::vector<TypeDef>(std::move(y)) {}
+	TypeDefCollection(TypeDefCollection const& y) : std::vector<TypeDef>(y) {}
+	TypeDefCollection& operator =(TypeDefCollection&& y)
+	{
+		std::vector<TypeDef>::operator =(std::move(y));
+		return *this;
+	}
+	TypeDefCollection& operator =(TypeDefCollection const& y)
+	{
+		return *this = std::move(TypeDefCollection(y));
+	}
 	~TypeDefCollection();
 
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Variable.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Variable.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Variable.h	(revision 828)
@@ -64,6 +64,12 @@
 public:
 	Variable( const Symbol &symbol, const Type &type, bool isConst, bool isRef, const std::string &paramStrForConstructor, bool hasInitData );
+	Variable(Variable&& var);
 	Variable( const Variable &var );
 	Variable();
+	Variable& operator =(Variable&& y);
+	Variable& operator =(Variable const& y)
+	{
+		return *this = std::move(Variable(y));
+	}
 
 	void SetArray( const Subscripts &subscripts ){
Index: trunk/ab5.0/abdev/ab_common/include/OSVersion.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/OSVersion.h	(revision 828)
+++ trunk/ab5.0/abdev/ab_common/include/OSVersion.h	(revision 828)
@@ -0,0 +1,12 @@
+#pragma once
+
+namespace ActiveBasic { namespace Common {
+
+OSVERSIONINFO const& GetOSVersion();
+
+inline bool Is9x()
+{
+	return GetOSVersion().dwPlatformId == VER_PLATFORM_WIN32_WINDOWS;
+}
+
+}}
Index: trunk/ab5.0/abdev/ab_common/include/Path.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Path.h	(revision 828)
+++ trunk/ab5.0/abdev/ab_common/include/Path.h	(revision 828)
@@ -0,0 +1,7 @@
+#pragma once
+
+namespace ActiveBasic { namespace Common {
+
+bool IsPathEqual(LPCWSTR lhs, LPCWSTR rhs);
+
+}}
Index: trunk/ab5.0/abdev/ab_common/include/ProcessAndModule.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/ProcessAndModule.h	(revision 828)
+++ trunk/ab5.0/abdev/ab_common/include/ProcessAndModule.h	(revision 828)
@@ -0,0 +1,14 @@
+#pragma once
+
+#define BOOST_FILESYSTEM_VERSION 3
+
+#include <boost/filesystem/path.hpp>
+
+namespace ActiveBasic { namespace Common {
+
+boost::filesystem::path GetModuleFilePath(HANDLE hProcess, HMODULE hmod);
+std::vector<DWORD> GetProcesses();
+boost::filesystem::path GetExecutableModulePath(DWORD processId);
+std::vector<HMODULE> GetModules(DWORD processId);
+
+}}
Index: trunk/ab5.0/abdev/ab_common/include/ResourceManager/ResourceManager.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/ResourceManager/ResourceManager.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/ResourceManager/ResourceManager.h	(revision 828)
@@ -11,5 +11,34 @@
 	// IDEのみで使う
 	HTREEITEM hTreeItem;
+
+	ResourceItem()
+		: idName()
+		, filepath()
+		, hTreeItem() {}
+
+	ResourceItem(ResourceItem&& y)
+		: idName(std::move(y.idName))
+		, filepath(std::move(y.filepath))
+		, hTreeItem(std::move(y.hTreeItem)) {}
+
+	ResourceItem(ResourceItem const& y)
+		: idName(y.idName)
+		, filepath(y.filepath)
+		, hTreeItem(y.hTreeItem) {}
+
+	ResourceItem& operator =(ResourceItem&& y)
+	{
+		idName = std::move(y.idName);
+		filepath= std::move(y.filepath);
+		hTreeItem = std::move(y.hTreeItem);
+		return *this;
+	}
+
+	ResourceItem& operator =(ResourceItem const& y)
+	{
+		return *this = std::move(ResourceItem(y));
+	}
 };
+
 typedef std::vector<ResourceItem> ResourceItems;
 
@@ -18,4 +47,6 @@
 {
 public:
+	ResourceManager() {}
+
 	void Clear();
 	bool Load( const std::string &resourceFilePath );
@@ -28,4 +59,8 @@
 	ResourceItems iconResources;
 	std::string manifestFilePath;
+
+private:
+	ResourceManager(ResourceManager const&);
+	ResourceManager operator =(ResourceManager const&);
 };
 
Index: trunk/ab5.0/abdev/ab_common/include/libs.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/libs.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/include/libs.h	(revision 828)
@@ -11,4 +11,5 @@
 #define lstrcmpiA _stricmp
 
+#if 0
 extern "C"
 {
@@ -23,2 +24,3 @@
 #define malloc dlmalloc
 #define realloc dlrealloc
+#endif
Index: trunk/ab5.0/abdev/ab_common/src/Environment.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Environment.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Environment.cpp	(revision 828)
@@ -1,4 +1,6 @@
 #include "stdafx.h"
 #include <uxtheme.h>
+
+DWORD const PROCESS_DEP_ENABLE = 0x00000001;
 
 std::string ActiveBasic::Common::Environment::rootPath;
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/Class.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/Class.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/Class.cpp	(revision 828)
@@ -1,3 +1,5 @@
 #include "stdafx.h"
+#include <jenga/include/jenga.h>
+#include <abdev/ab_common/include/ab_common.h>
 #include <algorithm>
 #include <boost/checked_delete.hpp>
@@ -777,17 +779,16 @@
 
 	std::vector<const CClass *> classes;
-	const CClass *pClass = GetHashArrayElement( symbol.GetName().c_str() );
-	while( pClass )
-	{
-		if( pClass->IsEqualSymbol( symbol.GetNamespaceScopes(), symbol.GetName() ) ){
+	foreach (auto pClass, GetHashArrayElement(symbol.GetName()))
+	{
+		if ( pClass->IsEqualSymbol(symbol.GetNamespaceScopes(), symbol.GetName()))
+		{
 			//名前空間とクラス名が一致した
 			classes.push_back( pClass );
 		}
-		pClass = pClass->GetChainNext();
 	}
 	if( classes.size() > 0 )
 	{
 		// 複数の名前空間の中に同一のクラス名が存在する場合があるので、アクセス可能で尚且つ階層が一番深いものをチョイスする
-		pClass = classes.front();
+		auto pClass = classes.front();
 
 		foreach( const CClass *pTempClass, classes )
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/Const.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/Const.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/Const.cpp	(revision 828)
@@ -29,15 +29,10 @@
 CConst *Consts::GetObjectPtr( const Symbol &symbol )
 {
-	CConst *pConst = GetHashArrayElement( symbol.GetName().c_str() );
-	while( pConst )
-	{
-		if( pConst->IsEqualSymbol( symbol ) )
-		{
-			break;
-		}
-		pConst = pConst->GetChainNext();
-	}
-
-	return pConst;
+	auto c = GetHashArrayElement(symbol.GetName());
+	auto it = std::find_if(c.begin(), c.end(),
+		[&](CConst* t) {return t->IsEqualSymbol(symbol);});
+	return it != c.end()
+		? *it
+		: nullptr;
 }
 
@@ -131,14 +126,9 @@
 ConstMacro *ConstMacros::Find( const Symbol &symbol )
 {
-	ConstMacro *pConstMacro = GetHashArrayElement( symbol.GetName().c_str() );
-	while( pConstMacro )
-	{
-		if( pConstMacro->IsEqualSymbol( symbol ) )
-		{
-			break;
-		}
-		pConstMacro = pConstMacro->GetChainNext();
-	}
-
-	return pConstMacro;
+	auto c = GetHashArrayElement(symbol.GetName());
+	auto it = std::find_if(c.begin(), c.end(),
+		[&](ConstMacro* t) {return t->IsEqualSymbol(symbol);});
+	return it != c.end()
+		? *it
+		: nullptr;
 }
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/Interface.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/Interface.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/Interface.cpp	(revision 828)
@@ -1,3 +1,5 @@
 #include "stdafx.h"
+#include <jenga/include/jenga.h>
+#include <abdev/ab_common/include/ab_common.h>
 
 Interface::Interface( const CClass *pInterfaceClass, const Types &actualTypeParameters )
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/Member.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/Member.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/Member.cpp	(revision 828)
@@ -1,3 +1,5 @@
 #include "stdafx.h"
+#include <jenga/include/jenga.h>
+#include <abdev/ab_common/include/ab_common.h>
 
 
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/Meta.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/Meta.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/Meta.cpp	(revision 828)
@@ -37,5 +37,5 @@
 {
 	// 名前空間
-	BOOST_FOREACH( NamespaceScopes &namespaceScopes, meta.namespaceScopesCollection )
+	foreach (NamespaceScopes const &namespaceScopes, meta.namespaceScopesCollection)
 	{
 		if( !this->namespaceScopesCollection.IsExist( namespaceScopes ) )
@@ -46,8 +46,6 @@
 
 	// 関数・メソッド
-	meta.GetUserProcs().Iterator_Reset();
-	while( meta.GetUserProcs().Iterator_HasNext() )
-	{
-		UserProc *pUserProc = meta.GetUserProcs().Iterator_GetNext();
+	foreach (auto pUserProc, meta.GetUserProcs())
+	{
 		if( pUserProc->IsExternal() )
 		{
@@ -65,8 +63,6 @@
 
 	// DLL関数
-	meta.GetDllProcs().Iterator_Reset();
-	while( meta.GetDllProcs().Iterator_HasNext() )
-	{
-		DllProc *pDllProc = meta.GetDllProcs().Iterator_GetNext();
+	foreach (auto pDllProc, meta.GetDllProcs())
+	{
 		if( pDllProc->IsExternal() )
 		{
@@ -81,8 +77,6 @@
 
 	// クラス
-	meta.GetClasses().Iterator_Reset();
-	while( meta.GetClasses().Iterator_HasNext() )
-	{
-		CClass *pClass = meta.GetClasses().Iterator_GetNext();
+	foreach (auto pClass, meta.GetClasses())
+	{
 		if( pClass->IsExternal() )
 		{
@@ -132,8 +126,6 @@
 
 	// グローバル定数
-	meta.GetGlobalConsts().Iterator_Reset();
-	while( meta.GetGlobalConsts().Iterator_HasNext() )
-	{
-		CConst *pConst = meta.GetGlobalConsts().Iterator_GetNext();
+	foreach (auto pConst, meta.GetGlobalConsts())
+	{
 		if( pConst->IsExternal() )
 		{
@@ -148,8 +140,6 @@
 
 	// グローバル定数マクロ
-	meta.GetGlobalConstMacros().Iterator_Reset();
-	while( meta.GetGlobalConstMacros().Iterator_HasNext() )
-	{
-		ConstMacro *pConstMacro = meta.GetGlobalConstMacros().Iterator_GetNext();
+	foreach (auto pConstMacro, meta.GetGlobalConstMacros())
+	{
 		if( pConstMacro->IsExternal() )
 		{
@@ -200,8 +190,6 @@
 
 	// デリゲート
-	meta.GetDelegates().Iterator_Reset();
-	while( meta.GetDelegates().Iterator_HasNext() )
-	{
-		Delegate *pDelegate = meta.GetDelegates().Iterator_GetNext();
+	foreach (auto pDelegate, meta.GetDelegates())
+	{
 		if( pDelegate->IsExternal() )
 		{
@@ -218,15 +206,14 @@
 const ::Delegate &Meta::ToDelegate( const CClass &_class )
 {
-	const ::Delegate *dg = this->GetDelegates().GetHashArrayElement( _class.GetName().c_str() );
-	while( dg )
-	{
-		if( dg->IsEqualSymbol( _class.GetNamespaceScopes(), _class.GetName() ) ){
+	auto dg = this->GetDelegates().GetHashArrayElement(_class.GetName());
+	foreach (auto t, dg)
+	{
+		if( t->IsEqualSymbol( _class.GetNamespaceScopes(), _class.GetName() ) ){
 			//名前空間とクラス名が一致した
-			return *dg;
-		}
-		dg = dg->GetChainNext();
-	}
-
-	throw;
+			return *t;
+		}
+	}
+
+	throw std::runtime_error("Meta::ToDelegate");
 }
 
@@ -256,27 +243,18 @@
 {
 	// 関数・メソッド
-	this->GetUserProcs().Iterator_Init();
-	this->GetUserProcs().Iterator_Reset();
-	while( this->GetUserProcs().Iterator_HasNext() )
-	{
-		UserProc *pUserProc = this->GetUserProcs().Iterator_GetNext();
+	foreach (auto pUserProc, this->GetUserProcs())
+	{
 		pUserProc->Resolve( resolver, resolveErrors );
 	}
 
 	// DLL関数
-	this->GetDllProcs().Iterator_Init();
-	this->GetDllProcs().Iterator_Reset();
-	while( this->GetDllProcs().Iterator_HasNext() )
-	{
-		DllProc *pDllProc = this->GetDllProcs().Iterator_GetNext();
+	foreach (auto pDllProc, this->GetDllProcs())
+	{
 		pDllProc->Resolve( resolver, resolveErrors );
 	}
 
 	// クラス
-	this->GetClasses().Iterator_Init();
-	this->GetClasses().Iterator_Reset();
-	while( this->GetClasses().Iterator_HasNext() )
-	{
-		CClass *pClass = this->GetClasses().Iterator_GetNext();
+	foreach (auto pClass, this->GetClasses())
+	{
 		pClass->Resolve( resolver, resolveErrors );
 	}
@@ -289,18 +267,12 @@
 
 	// グローバル定数
-	this->GetGlobalConsts().Iterator_Init();
-	this->GetGlobalConsts().Iterator_Reset();
-	while( this->GetGlobalConsts().Iterator_HasNext() )
-	{
-		CConst *pConst = this->GetGlobalConsts().Iterator_GetNext();
+	foreach (auto pConst, this->GetGlobalConsts())
+	{
 		pConst->Resolve( resolver, resolveErrors );
 	}
 
 	// グローバル定数マクロ
-	this->GetGlobalConstMacros().Iterator_Init();
-	this->GetGlobalConstMacros().Iterator_Reset();
-	while( this->GetGlobalConstMacros().Iterator_HasNext() )
-	{
-		ConstMacro *pConstMacro = this->GetGlobalConstMacros().Iterator_GetNext();
+	foreach (auto pConstMacro, this->GetGlobalConstMacros())
+	{
 		pConstMacro->Resolve( resolver, resolveErrors );
 	}
@@ -325,9 +297,6 @@
 
 	// デリゲート
-	this->GetDelegates().Iterator_Init();
-	this->GetDelegates().Iterator_Reset();
-	while( this->GetDelegates().Iterator_HasNext() )
-	{
-		Delegate *pDelegate = this->GetDelegates().Iterator_GetNext();
+	foreach (auto pDelegate, this->GetDelegates())
+	{
 		pDelegate->Resolve( resolver, resolveErrors );
 	}
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/Method.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/Method.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/Method.cpp	(revision 828)
@@ -1,3 +1,6 @@
 #include "stdafx.h"
+#include <jenga/include/jenga.h>
+#include <abdev/ab_common/include/ab_common.h>
+#include <stdexcept>
 
 bool CMethod::Resolve( const ObjectModule &resolver, ResolveErrors &resolveErrors )
@@ -75,5 +78,5 @@
 {
 	// 静的メソッドがコピーコンストラトされることは想定しない
-	throw;
+	throw std::domain_error("静的メソッドのコピー構築に対応していない");
 }
 
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/Namespace.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/Namespace.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/Namespace.cpp	(revision 828)
@@ -1,3 +1,5 @@
 #include "stdafx.h"
+#include <jenga/include/jenga.h>
+#include <abdev/ab_common/include/ab_common.h>
 #include <algorithm>
 
@@ -16,5 +18,5 @@
 		std::string tempName = namespaceStr.substr( i, i2-i );
 
-		push_back( tempName );
+		push_back(std::move(tempName));
 
 		if( i2 == std::string::npos ){
@@ -26,11 +28,7 @@
 }
 
-NamespaceScopes NamespaceScopes::operator+ ( const NamespaceScopes &namespaceScopes ) const
+NamespaceScopes ActiveBasic::Common::Lexical::operator +(const NamespaceScopes &lhs, const NamespaceScopes &rhs)
 {
-	NamespaceScopes result;
-	result.reserve( this->size() + namespaceScopes.size() );
-	result = *this;
-	result.append( namespaceScopes );
-	return result;
+	return NamespaceScopes(lhs) += rhs;
 }
 
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/NamespaceSupporter.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/NamespaceSupporter.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/NamespaceSupporter.cpp	(revision 828)
@@ -1,3 +1,5 @@
 #include "stdafx.h"
+#include <jenga/include/jenga.h>
+#include <abdev/ab_common/include/ab_common.h>
 
 using namespace ActiveBasic::Common::Lexical;
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/NativeCode.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/NativeCode.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/NativeCode.cpp	(revision 828)
@@ -1,3 +1,5 @@
 #include "stdafx.h"
+#include <jenga/include/jenga.h>
+#include <abdev/ab_common/include/ab_common.h>
 
 #define BREAK_EIP(checkEip)  (obp+0x00401000>=checkEip)
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/ObjectModule.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/ObjectModule.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/ObjectModule.cpp	(revision 828)
@@ -1,3 +1,3 @@
-#pragma warning(disable : 4996)
+//#pragma warning(disable : 4996)
 
 #include <map>
@@ -29,4 +29,6 @@
 
 
+#pragma warning(push)
+#pragma warning(disable: 4244 6011 6326)
 #ifdef OBJECT_MODULE_IS_NOT_BINARY
 #include <boost/archive/xml_oarchive.hpp>
@@ -42,8 +44,8 @@
 #include <boost/serialization/map.hpp>
 #include <boost/serialization/version.hpp>
-#include <boost/serialization/is_abstract.hpp>
 #include <boost/serialization/serialization.hpp>
 #include <boost/serialization/nvp.hpp>
 #include <boost/serialization/export.hpp>
+#pragma warning(pop)
 
 #define foreach(v, c) for each (v in c)
@@ -252,2 +254,5 @@
 	return isSuccessful;
 }
+
+BOOST_CLASS_EXPORT_IMPLEMENT( DynamicMethod );
+BOOST_CLASS_EXPORT_IMPLEMENT( StaticMethod );
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/Parameter.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/Parameter.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/Parameter.cpp	(revision 828)
@@ -1,3 +1,5 @@
 #include "stdafx.h"
+#include <jenga/include/jenga.h>
+#include <abdev/ab_common/include/ab_common.h>
 
 Parameter::Parameter( const std::string &varName, const Type &type, bool isRef, const std::string initValue )
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/Procedure.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/Procedure.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/Procedure.cpp	(revision 828)
@@ -1,3 +1,5 @@
 #include "stdafx.h"
+#include <jenga/include/jenga.h>
+#include <abdev/ab_common/include/ab_common.h>
 
 
@@ -243,6 +245,6 @@
 
 	// ハッシュ値を取得
-	UserProc *pUserProc = GetHashArrayElement( simpleName );
-	while(pUserProc){
+	foreach (auto pUserProc, GetHashArrayElement( simpleName ))
+	{
 		if( pUserProc->IsGlobalProcedure() ){
 			if( pUserProc->IsEqualSymbol( localSymbol ) ){
@@ -250,6 +252,4 @@
 			}
 		}
-
-		pUserProc=pUserProc->GetChainNext();
 	}
 }
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/Source.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/Source.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/Source.cpp	(revision 828)
@@ -945,28 +945,2 @@
 	return true;
 }
-
-int SourceCodePosition::GetRelationalObjectModuleIndex() const
-{
-	if( this->IsNothing() )
-	{
-		_ASSERTE( false );
-		throw;
-	}
-
-	return relationalObjectModuleIndex;
-}
-bool SourceCodePosition::IsNothing() const
-{
-	if( this->relationalObjectModuleIndex == -1 && this->pos == -1 )
-	{
-		return true;
-	}
-
-	if( this->relationalObjectModuleIndex == -1 || this->pos == -1 )
-	{
-		_ASSERTE( false );
-		throw;
-	}
-
-	return false;
-}
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/SourceCodePosition.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/SourceCodePosition.cpp	(revision 828)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/SourceCodePosition.cpp	(revision 828)
@@ -0,0 +1,29 @@
+#include "stdafx.h"
+#include <jenga/include/jenga.h>
+#include <abdev/ab_common/include/ab_common.h>
+
+int SourceCodePosition::GetRelationalObjectModuleIndex() const
+{
+	if( this->IsNothing() )
+	{
+		_ASSERTE( false );
+		throw std::runtime_error("SourceCodePosition::GetRelationalObjectModuleIndex");
+	}
+
+	return relationalObjectModuleIndex;
+}
+bool SourceCodePosition::IsNothing() const
+{
+	if( this->relationalObjectModuleIndex == -1 && this->pos == -1 )
+	{
+		return true;
+	}
+
+	if( this->relationalObjectModuleIndex == -1 || this->pos == -1 )
+	{
+		_ASSERTE( false );
+		throw std::runtime_error("SourceCodePosition::IsNothing");
+	}
+
+	return false;
+}
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/Symbol.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/Symbol.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/Symbol.cpp	(revision 828)
@@ -1,3 +1,5 @@
 #include "stdafx.h"
+#include <jenga/include/jenga.h>
+#include <abdev/ab_common/include/ab_common.h>
 
 using namespace ActiveBasic::Common::Lexical;
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/Template.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/Template.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/Template.cpp	(revision 828)
@@ -1,3 +1,5 @@
 #include "stdafx.h"
+#include <jenga/include/jenga.h>
+#include <abdev/ab_common/include/ab_common.h>
 
 ExpandedTemplateClass::~ExpandedTemplateClass()
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/Type.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/Type.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/Type.cpp	(revision 828)
@@ -1,3 +1,6 @@
 #include "stdafx.h"
+#include <jenga/include/jenga.h>
+#include <abdev/ab_common/include/ab_common.h>
+#include "Lexical/Type.h"
 
 const int Type::basicTypeList[] = {
@@ -539,10 +542,13 @@
 
 int Type::GetBasicTypeFromSimpleName( const char *variable ){
-	extern char DefIntVari[26],DefSngVari[26],DefStrVari[26],divNum,dsvNum,dStrvNum;
+	assert(variable != nullptr);
+	auto length = std::strlen(variable);
+	assert(length > 0);
+
 	int i;
 	char name[VN_SIZE];
 
 	//構造体メンバの場合を考慮
-	for(i=lstrlen(variable);i>0;i--){
+	for(i=length;i>0;i--){
 		if(variable[i]=='.'){
 			i++;
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/TypeDef.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/TypeDef.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/TypeDef.cpp	(revision 828)
@@ -1,3 +1,5 @@
 #include "stdafx.h"
+#include <jenga/include/jenga.h>
+#include <abdev/ab_common/include/ab_common.h>
 
 TypeDef::TypeDef( const Symbol &symbol, const std::string &baseName, const Type &baseType )
Index: trunk/ab5.0/abdev/ab_common/src/Lexical/Variable.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Lexical/Variable.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/Lexical/Variable.cpp	(revision 828)
@@ -12,4 +12,5 @@
 {
 }
+
 Variable::Variable( const Variable &var )
 	: RelationalObjectModuleItem( var )
@@ -24,6 +25,34 @@
 {
 }
+
+Variable::Variable(Variable&& var)
+	: RelationalObjectModuleItem(std::move(var))
+	, type(std::move(var.type))
+	, isConst(std::move(var.isConst))
+	, isRef(std::move(var.isRef))
+	, isArray(std::move(var.isArray))
+	, subscripts(std::move(var.subscripts))
+	, isParameter(std::move(var.isParameter))
+	, paramStrForConstructor(std::move(var.paramStrForConstructor))
+	, hasInitData(std::move(var.hasInitData))
+{
+}
+
 Variable::Variable()
 {
+}
+
+Variable& Variable::operator =(Variable&& var)
+{
+	RelationalObjectModuleItem::operator =(std::move(var));
+	type = std::move(var.type);
+	isConst = std::move(var.isConst);
+	isRef = std::move(var.isRef);
+	isArray = std::move(var.isArray);
+	subscripts = std::move(var.subscripts);
+	isParameter = std::move(var.isParameter);
+	paramStrForConstructor = std::move(var.paramStrForConstructor);
+	hasInitData = std::move(var.hasInitData);
+	return *this;
 }
 
Index: trunk/ab5.0/abdev/ab_common/src/OSVersion.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/OSVersion.cpp	(revision 828)
+++ trunk/ab5.0/abdev/ab_common/src/OSVersion.cpp	(revision 828)
@@ -0,0 +1,16 @@
+#include "stdafx.h"
+
+namespace ActiveBasic { namespace Common {
+
+OSVERSIONINFO const& GetOSVersion()
+{
+	static OSVERSIONINFO vi;
+	if (vi.dwOSVersionInfoSize == 0)
+	{
+		vi.dwOSVersionInfoSize = sizeof vi;
+		::GetVersionEx(&vi);
+	}
+	return vi;
+}
+
+}}
Index: trunk/ab5.0/abdev/ab_common/src/Path.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/Path.cpp	(revision 828)
+++ trunk/ab5.0/abdev/ab_common/src/Path.cpp	(revision 828)
@@ -0,0 +1,26 @@
+#include "stdafx.h"
+#include <boost/range/algorithm.hpp>
+#include <string.h>
+#include "OSVersion.h"
+
+namespace ActiveBasic { namespace Common {
+
+bool IsPathEqual(LPCWSTR lhs, LPCWSTR rhs)
+{
+	std::vector<WCHAR> l(lhs, lhs + std::wcslen(lhs) + 1);
+	std::vector<WCHAR> r(rhs, rhs + std::wcslen(rhs) + 1);
+	if (Is9x())
+	{
+		auto const& ct = std::use_facet<std::ctype<wchar_t>>(std::locale::classic());
+		ct.toupper(l.data(), l.data() + l.size());
+		ct.toupper(r.data(), r.data() + r.size());
+	}
+	else
+	{
+		::CharUpperW(l.data());
+		::CharUpperW(l.data());
+	}
+	return boost::equal(l, r);
+}
+
+}}
Index: trunk/ab5.0/abdev/ab_common/src/ProcessAndModule.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/ProcessAndModule.cpp	(revision 828)
+++ trunk/ab5.0/abdev/ab_common/src/ProcessAndModule.cpp	(revision 828)
@@ -0,0 +1,181 @@
+#include "stdafx.h"
+#include "ProcessAndModule.h"
+#include "OSVersion.h"
+
+#include <memory>
+#include <psapi.h>
+#include <tlhelp32.h>
+
+#pragma comment(lib, "psapi.lib")
+
+namespace ActiveBasic { namespace Common {
+
+struct HandleDeleter
+{
+	typedef HANDLE pointer;
+
+	void operator ()(pointer h) const
+	{
+		::CloseHandle(h);
+	}
+};
+
+typedef std::unique_ptr<HANDLE, HandleDeleter> UniqueHandle;
+
+boost::filesystem::path GetModuleFilePath(HANDLE hProcess, HMODULE hmod)
+{	
+	if (GetOSVersion().dwPlatformId == VER_PLATFORM_WIN32_NT)
+	{
+		WCHAR temp[MAX_PATH] = {};
+		if (::GetModuleFileNameExW(hProcess, hmod, temp, MAX_PATH) != 0)
+		{
+			return temp;
+		}
+	}
+	else
+	{
+		CHAR temp[MAX_PATH] = {};
+		if (::GetModuleFileNameA(hmod, temp, MAX_PATH) != 0)
+		{
+			return boost::filesystem::path(Jenga::Common::ToWString(temp));
+		}
+	}
+	throw std::runtime_error("GetModuleFileName or GetModuleFileNameEx failed");
+}
+
+namespace {
+
+struct Toolhelp32Function
+{
+	decltype(::CreateToolhelp32Snapshot)* pCreateToolhelp32Snapshot;
+	decltype(::Process32First)* pProcess32First;
+	decltype(::Process32Next)* pProcess32Next;
+	decltype(::Module32First)* pModule32First;
+	decltype(::Module32Next)* pModule32Next;
+};
+
+Toolhelp32Function const& GetToolhelp32Function(HMODULE hmodKernel)
+{
+	static Toolhelp32Function const tf =
+	{
+		reinterpret_cast<decltype(::CreateToolhelp32Snapshot)*>(::GetProcAddress(hmodKernel, "CreateToolhelp32Snapshot")),
+		reinterpret_cast<decltype(::Process32First)*>(::GetProcAddress(hmodKernel, "Process32First")),
+		reinterpret_cast<decltype(::Process32Next)*>(::GetProcAddress(hmodKernel, "Process32Next")),
+		reinterpret_cast<decltype(::Module32First)*>(::GetProcAddress(hmodKernel, "Module32First")),
+		reinterpret_cast<decltype(::Module32Next)*>(::GetProcAddress(hmodKernel, "Module32Next")),
+	};
+	return tf;
+}
+
+UniqueHandle CreateToolhelp32SnapshotHelper(Toolhelp32Function const& tf, DWORD flags, DWORD processId = 0)
+{
+	UniqueHandle h(tf.pCreateToolhelp32Snapshot(flags, processId));
+	if (h.get() == INVALID_HANDLE_VALUE)
+	{
+		h.release();
+		return UniqueHandle();
+	}
+	return h;
+}
+
+} // unnamed namespace
+
+std::vector<DWORD> GetProcesses()
+{
+	auto const& tf = GetToolhelp32Function(::GetModuleHandle(TEXT("kernel32")));
+	if (tf.pCreateToolhelp32Snapshot)
+	{
+		UniqueHandle h = CreateToolhelp32SnapshotHelper(tf, TH32CS_SNAPPROCESS);
+		if (h == nullptr)
+		{
+			return std::vector<DWORD>();
+		}
+		std::vector<DWORD> processes;
+		PROCESSENTRY32 pe = {sizeof pe};
+		if (tf.pProcess32First(h.get(), &pe))
+		{
+			do
+			{
+				processes.push_back(pe.th32ProcessID);
+			} while (tf.pProcess32Next(h.get(), &pe));
+		}
+		return processes;
+	}
+	else
+	{
+		std::vector<DWORD> processes(8192);
+		DWORD cbNeeded = 0;
+		if (EnumProcesses(processes.data(), processes.size() * sizeof (DWORD), &cbNeeded))
+		{
+			processes.resize(cbNeeded / sizeof (DWORD));
+			return processes;
+		}
+		return std::vector<DWORD>();
+	}
+}
+
+boost::filesystem::path GetExecutableModulePath(DWORD processId)
+{
+	if (ActiveBasic::Common::Is9x())
+	{
+		auto const& tf = GetToolhelp32Function(::GetModuleHandle(TEXT("kernel32")));
+		UniqueHandle h = CreateToolhelp32SnapshotHelper(tf, TH32CS_SNAPMODULE, processId);
+		if (h == nullptr)
+		{
+			return boost::filesystem::path();
+		}
+		MODULEENTRY32 me = {sizeof me};
+		if (tf.pModule32First(h.get(), &me))
+		{
+			return boost::filesystem::path(me.szExePath);
+		}
+		else
+		{
+			return boost::filesystem::path();
+		}
+	}
+	else
+	{
+		UniqueHandle hProcess(::OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processId));
+		// PSAPIが使える環境はそちらを優先。
+		WCHAR filename[MAX_PATH] = {};
+		::GetModuleFileNameExW(hProcess.get(), nullptr, filename, MAX_PATH);
+		return boost::filesystem::path(filename);
+	}
+}
+
+std::vector<HMODULE> GetModules(DWORD processId)
+{
+	auto const& tf = GetToolhelp32Function(::GetModuleHandle(TEXT("kernel32")));
+	if (tf.pCreateToolhelp32Snapshot)
+	{
+		UniqueHandle h = CreateToolhelp32SnapshotHelper(tf, TH32CS_SNAPMODULE, processId);
+		if (h == nullptr)
+		{
+			return std::vector<HMODULE>();
+		}
+		std::vector<HMODULE> modules;
+		MODULEENTRY32 me = {sizeof me};
+		if (tf.pModule32First(h.get(), &me))
+		{
+			do
+			{
+				modules.push_back(me.hModule);
+			} while (tf.pModule32Next(h.get(), &me));
+		}
+		return modules;
+	}
+	else
+	{
+		UniqueHandle hProcess(::OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processId));
+		const DWORD MAX_MODULE = 1024;
+		std::vector<HMODULE> module(MAX_MODULE);
+		DWORD cbReturned = 0;
+		EnumProcessModules(hProcess.get(), module.data(), sizeof (HMODULE) * MAX_MODULE, &cbReturned);
+		module.resize(cbReturned / sizeof (HMODULE));
+		return module;
+	}
+}
+
+}}
+
Index: trunk/ab5.0/abdev/ab_common/src/ResourceManager/ResourceManager.cpp
===================================================================
--- trunk/ab5.0/abdev/ab_common/src/ResourceManager/ResourceManager.cpp	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/src/ResourceManager/ResourceManager.cpp	(revision 828)
@@ -39,4 +39,9 @@
 
 	std::string baseDir = Jenga::Common::Path::ExtractDirPath( resourceFilePath );
+
+	if (buffer.empty())
+	{
+		return false;
+	}
 
 	i2=0;
Index: trunk/ab5.0/abdev/ab_common/stdafx.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/stdafx.h	(revision 825)
+++ trunk/ab5.0/abdev/ab_common/stdafx.h	(revision 828)
@@ -1,4 +1,3 @@
 #pragma once
-#pragma strict_gs_check(on)
 
 #include <map>
@@ -20,8 +19,11 @@
 
 //boost libraries
+#pragma warning(push)
+#pragma warning(disable: 6326)
 #include <boost/foreach.hpp>
 #include <boost/serialization/serialization.hpp>
 #include <boost/serialization/nvp.hpp>
 #include <boost/serialization/export.hpp>
+#pragma warning(pop)
 
 #include <jenga/include/jenga.h>
