Index: trunk/ab5.0/abdev/BasicCompiler_Common/MakeExe.cpp
===================================================================
--- trunk/ab5.0/abdev/BasicCompiler_Common/MakeExe.cpp	(revision 461)
+++ trunk/ab5.0/abdev/BasicCompiler_Common/MakeExe.cpp	(revision 465)
@@ -43,5 +43,4 @@
 	extern HANDLE hHeap;
 	extern char *basbuf;
-	extern int ErrorNum;
 	extern BOOL bStopCompile;
 	extern HWND hMainDlg;
@@ -71,5 +70,5 @@
 	compiler.GetObjectModule().GetSources().push_back( BasicSource() );
 	if( !compiler.GetObjectModule().GetCurrentSource().ReadFile( SourceFileName ) ){
-		SetError(201,SourceFileName,-1);
+		compiler.errorMessenger.Output(201,SourceFileName,-1);
 		goto EndCompile;
 	}
@@ -80,6 +79,5 @@
 	else ImageBase=0x00400000;
 
-	extern BOOL bError;
-	if(bError||bStopCompile) goto EndCompile;
+	if( compiler.errorMessenger.HasError() || bStopCompile ) goto EndCompile;
 
 
@@ -89,10 +87,13 @@
 
 	//"最適化中..."
-	CompileMessage(STRING_COMPILE_OPTIMIZING);
+	compiler.messenger.Output( STRING_COMPILE_OPTIMIZING );
 
 	//カッコを相互チェック（ダブルクォートチェックチェックを含む）
 	CheckParenthesis(basbuf);
 
-	if(bError||bStopCompile) goto EndCompile;
+	if( compiler.errorMessenger.HasError() || bStopCompile )
+	{
+		goto EndCompile;
+	}
 
 	//コンパイルダイアログのプログレスバーを上げる
@@ -117,5 +118,8 @@
 	//CheckPareCommand();
 
-	if(bError||bStopCompile) goto EndCompile;
+	if( compiler.errorMessenger.HasError() || bStopCompile )
+	{
+		goto EndCompile;
+	}
 
 	//コンパイルダイアログのプログレスバーを上げる
@@ -136,5 +140,6 @@
 	SynonymErrorWords=0;
 
-	if(bError||bStopCompile){
+	if( compiler.errorMessenger.HasError() || bStopCompile )
+	{
 		//定数に関する情報を解放
 		goto EndCompile;
@@ -175,9 +180,9 @@
 				if( compiler.staticLibraries.back()->Read( coreFilePath ) )
 				{
-					CompileMessage( ((string)"\"" + path.GetFileName() + path.GetExt() + "\" を読み込みました。").c_str() );
+					compiler.messenger.Output( ((string)"\"" + path.GetFileName() + path.GetExt() + "\" を読み込みました。").c_str() );
 				}
 				else
 				{
-					CompileMessage( ((string)"\"" + path.GetFileName() + path.GetExt() + "\" ファイルが壊れています。").c_str() );
+					compiler.messenger.Output( ((string)"\"" + path.GetFileName() + path.GetExt() + "\" ファイルが壊れています。").c_str() );
 					isSuccessfulLoadStaticLinkLibrary = false;
 				}
@@ -185,5 +190,5 @@
 			else
 			{
-				CompileMessage( ((string)"\"" + path.GetFileName() + path.GetExt() + "\" ファイルが存在しません。").c_str() );
+				compiler.messenger.Output( ((string)"\"" + path.GetFileName() + path.GetExt() + "\" ファイルが存在しません。").c_str() );
 				isSuccessfulLoadStaticLinkLibrary = false;
 			}
@@ -198,9 +203,9 @@
 				if( compiler.staticLibraries.back()->Read( filePath ) )
 				{
-					CompileMessage( ((string)"\"" + path.GetFileName() + path.GetExt() + "\" を読み込みました。").c_str() );
+					compiler.messenger.Output( ((string)"\"" + path.GetFileName() + path.GetExt() + "\" を読み込みました。").c_str() );
 				}
 				else
 				{
-					CompileMessage( ((string)"\"" + path.GetFileName() + path.GetExt() + "\" ファイルが壊れています。").c_str() );
+					compiler.messenger.Output( ((string)"\"" + path.GetFileName() + path.GetExt() + "\" ファイルが壊れています。").c_str() );
 					isSuccessfulLoadStaticLinkLibrary = false;
 				}
@@ -208,5 +213,5 @@
 			else
 			{
-				CompileMessage( ((string)"\"" + path.GetFileName() + path.GetExt() + "\" ファイルが存在しません。").c_str() );
+				compiler.messenger.Output( ((string)"\"" + path.GetFileName() + path.GetExt() + "\" ファイルが存在しません。").c_str() );
 				isSuccessfulLoadStaticLinkLibrary = false;
 			}
@@ -225,5 +230,5 @@
 
 	//"コンパイル中..."
-	CompileMessage(STRING_COMPILE_COMPILING);
+	compiler.messenger.Output(STRING_COMPILE_COMPILING);
 
 	Compile();
@@ -248,26 +253,29 @@
 
 		//"コンパイルはユーザーにより中断されました。"
-		CompileMessage(STRING_COMPILE_STOP);
+		compiler.messenger.Output(STRING_COMPILE_STOP);
 	}
 	else{
-		extern int CompileMsgNum;
 		extern int WarningNum;
-		if(bError==0){
+		if( !compiler.errorMessenger.HasError() )
+		{
 			//"コンパイルは正常に完了しました（エラー:%d、警告:%d）"
 			sprintf(temp2,
 				STRING_COMPILE_SUCCESS,
-				ErrorNum-CompileMsgNum-WarningNum,
-				WarningNum,
+				compiler.errorMessenger.GetErrorCount(),
+				compiler.errorMessenger.GetWarningCount(),
 				((double)(GetTickCount() - beforeTickCount))/1000
 			);
 		}
-		else{
+		else
+		{
 			//"コンパイルは中断されました（エラー:%d、警告:%d）"
-			sprintf(temp2,STRING_COMPILE_ERROR,ErrorNum-CompileMsgNum-WarningNum,WarningNum);
-		}
-
-		CompileMessage("");
-		CompileMessage("-----------------------------------------------------");
-		CompileMessage(temp2);
+			sprintf(temp2,STRING_COMPILE_ERROR,
+				compiler.errorMessenger.GetErrorCount(),
+				compiler.errorMessenger.GetWarningCount() );
+		}
+
+		compiler.messenger.Output( "" );
+		compiler.messenger.Output( "-----------------------------------------------------" );
+		compiler.messenger.Output( temp2 );
 	}
 
@@ -282,5 +290,4 @@
 int MainThread(DWORD dummy){
 	extern BOOL bDebugRun;
-	extern int bError;
 
 	if(bDebugRun){
@@ -296,5 +303,8 @@
 
 		//デバッグ実行
-		if(bError==0) DebugProgram();
+		if( !compiler.errorMessenger.HasError() )
+		{
+			DebugProgram();
+		}
 	}
 	else{
