Index: /trunk/ab5.0/abdev/BasicCompiler_Common/BasicCompiler.cpp
===================================================================
--- /trunk/ab5.0/abdev/BasicCompiler_Common/BasicCompiler.cpp	(revision 469)
+++ /trunk/ab5.0/abdev/BasicCompiler_Common/BasicCompiler.cpp	(revision 470)
@@ -574,4 +574,7 @@
 }
 
+#include <fcntl.h>
+#include <io.h>
+
 int main()
 {
@@ -583,4 +586,5 @@
 	// グローバルローケルを日本語にする
 	locale::global(locale("japanese"));
+	_setmode(_fileno(stdout), _O_BINARY);
 
 	//_Test();
@@ -606,7 +610,13 @@
 	}
 
-	//ソースファイル名が与えられなかったとき
-	if( program.GetSourceFilePath().size() == 0 )
+	bool isSpecifiedSourceFilePathByCommandLine = false;
+	if( program.GetSourceFilePath().size() > 0 )
 	{
+		// ソースファイル名が与えられていたとき
+		isSpecifiedSourceFilePathByCommandLine = true;
+	}
+	else
+	{
+		// ソースファイル名が与えられなかったとき
 		char temp[MAX_PATH];
 		if(!GetFilePathDialog(0,temp,BasicFileFilter,"コンパイルするファイルを指定して下さい",1))
@@ -726,11 +736,21 @@
 		hMainDlg=CreateDialog(hInst,MAKEINTRESOURCE(IDD_MAIN),hOwnerEditor,(DLGPROC)DlgCompile);
 
-#ifdef _DEBUG
-		// VC++によるデバッグの場合は画面を出さない
-		// ※別スレッドのウィンドウ ループとの不整合性がデッドロックを生む場合がある（特にステップ実行時など）
-		PostMessage( hMainDlg, WM_COMMAND, IDOK, 0 );
-#else
-		ShowWindow(hMainDlg,SW_SHOW);
-#endif
+		if( program.IsKickedFromEditor() )
+		{
+			// エディタから起動されたとき
+			PostMessage( hMainDlg, WM_COMMAND, IDOK, 0 );
+		}
+		else if( isSpecifiedSourceFilePathByCommandLine )
+		{
+			// コマンドラインでソースコード指定があった場合はウィンドウは表示せず、そのままビルドを開始する。
+			MainThread(0);
+
+			ExitProcess( 0 );
+			return 0;
+		}
+		else
+		{
+			ShowWindow(hMainDlg,SW_SHOW);
+		}
 	}
 	SendDlgItemMessage(hMainDlg,IDC_SHOWERROR,BM_SETCHECK,BST_CHECKED,0);
