Index: trunk/ab5.0/abdev/abdev/Common.h
===================================================================
--- trunk/ab5.0/abdev/abdev/Common.h	(revision 601)
+++ trunk/ab5.0/abdev/abdev/Common.h	(revision 608)
@@ -589,4 +589,5 @@
 #define MT_EXE	0	//EXEモジュールタイプ
 #define MT_DLL	1	//DLLモジュールタイプ
+#define MT_SLL	2	//SLLモジュールタイプ
 #define PJ_OP_SOURCE_MASK	0x00FFFFFF
 #define PJ_OP_MMSYSTEM		0x00000001
Index: trunk/ab5.0/abdev/abdev/DialogBoxes.cpp
===================================================================
--- trunk/ab5.0/abdev/abdev/DialogBoxes.cpp	(revision 601)
+++ trunk/ab5.0/abdev/abdev/DialogBoxes.cpp	(revision 608)
@@ -64,4 +64,5 @@
 #define TEXT_DIRECTX		"DirectXに対応したアプリケーションを作成します。2Dまたは3Dの描画を高速に行うことができ、ゲームアプリケーションなどの開発に最適です。"
 #define TEXT_DLL			"ダイナミック リンク ライブラリ(DLL)を作成します。"
+#define TEXT_SLL			"静的 リンク ライブラリ(lib)を作成します。"
 #else
 //英語
@@ -164,4 +165,17 @@
 	else if(NewProjectInfo.dwTypeID==IDC_DLL){
 		lstrcpy(buffer+i,"ダイナミック リンク ライブラリ(DLL)を作成します。\r\n\r\n");
+		i+=lstrlen(buffer+i);
+		lstrcpy(buffer+i,"--- 以下のファイルが生成されます ---\r\n");
+		i+=lstrlen(buffer+i);
+		sprintf(buffer+i,"%s.pj … プロジェクト ファイル\r\n",NewProjectInfo.name);
+		i+=lstrlen(buffer+i);
+		sprintf(buffer+i,"%s.idx … インデックス ファイル\r\n",NewProjectInfo.name);
+		i+=lstrlen(buffer+i);
+		sprintf(buffer+i,"%s.ab … メイン ソースコード ファイル\r\n",NewProjectInfo.name);
+		i+=lstrlen(buffer+i);
+		sprintf(buffer+i,"%s.wrk … 作業状況の管理用\r\n",NewProjectInfo.name);
+	}
+	else if(NewProjectInfo.dwTypeID==IDC_SLL){
+		lstrcpy(buffer+i,"静的 リンク ライブラリ(lib)を作成します。\r\n\r\n");
 		i+=lstrlen(buffer+i);
 		lstrcpy(buffer+i,"--- 以下のファイルが生成されます ---\r\n");
@@ -426,4 +440,10 @@
 
 					SetDlgItemText(hwnd,IDC_HELPTEXT_OFBASE,TEXT_DLL);
+					EnableWindow(GetDlgItem(hwnd,IDC_SHOWHELLOWORLD),0);
+					return 1;
+				case IDC_SLL:
+					AppImage_ShowOrHide(hwnd,LOWORD(wParam));
+
+					SetDlgItemText(hwnd,IDC_HELPTEXT_OFBASE,TEXT_SLL);
 					EnableWindow(GetDlgItem(hwnd,IDC_SHOWHELLOWORLD),0);
 					return 1;
@@ -468,4 +488,6 @@
 					else if(SendDlgItemMessage(hwnd,IDC_DLL,BM_GETCHECK,0,0))
 						NewProjectInfo.dwTypeID=IDC_DLL;
+					else if(SendDlgItemMessage(hwnd,IDC_SLL,BM_GETCHECK,0,0))
+						NewProjectInfo.dwTypeID=IDC_SLL;
 
 					//"Hello World!"を表示するか
Index: trunk/ab5.0/abdev/abdev/ProjectControl.cpp
===================================================================
--- trunk/ab5.0/abdev/abdev/ProjectControl.cpp	(revision 601)
+++ trunk/ab5.0/abdev/abdev/ProjectControl.cpp	(revision 608)
@@ -748,4 +748,10 @@
 	//////////////////////////////////////
 
+	// 出力先拡張子
+	const std::string outputFileExt
+		= ( NewProjectInfo.dwTypeID == IDC_DLL ) ? ".dll"
+		: ( NewProjectInfo.dwTypeID == IDC_SLL ) ? ".lib"
+		: ".exe";
+
 	//先頭の注釈
 	lstrcpy(buffer,"\' ActiveBasic Project file.\r\n\r\n");
@@ -757,6 +763,9 @@
 
 	//モジュールタイプ（EXEならば0、DLLならば1）
-	if(NewProjectInfo.dwTypeID==IDC_DLL) lstrcpy(buffer+i,"#MODULETYPE=1\r\n\r\n");
-	else lstrcpy(buffer+i,"#MODULETYPE=0\r\n\r\n");
+	ActiveBasic::Common::TargetModuleType::EnumType moduleType
+		= ( NewProjectInfo.dwTypeID == IDC_DLL ) ? ActiveBasic::Common::TargetModuleType::Dll
+		: ( NewProjectInfo.dwTypeID == IDC_SLL ) ? ActiveBasic::Common::TargetModuleType::Sll
+		: ActiveBasic::Common::TargetModuleType::Exe;
+	lstrcpy(buffer+i,( (std::string)"#MODULETYPE=" + Jenga::Common::ToString( static_cast<int>(moduleType) ) + "\r\n\r\n" ).c_str());
 	i+=lstrlen(buffer+i);
 
@@ -780,13 +789,9 @@
 
 	//出力先（Release）
-	if(NewProjectInfo.dwTypeID==IDC_DLL)
-		sprintf(buffer+i,"#OUTPUT_RELEASE=.\\%s.dll\r\n\r\n",NewProjectInfo.name);
-	else sprintf(buffer+i,"#OUTPUT_RELEASE=.\\%s.exe\r\n\r\n",NewProjectInfo.name);
+	sprintf(buffer+i,"#OUTPUT_RELEASE=.\\%s%s\r\n\r\n",NewProjectInfo.name, outputFileExt.c_str());
 	i+=lstrlen(buffer+i);
 
 	//出力先（Debug）
-	if(NewProjectInfo.dwTypeID==IDC_DLL)
-		sprintf(buffer+i,"#OUTPUT_DEBUG=.\\%s.dll\r\n\r\n",NewProjectInfo.name);
-	else sprintf(buffer+i,"#OUTPUT_DEBUG=.\\%s_debug.exe\r\n\r\n",NewProjectInfo.name);
+	sprintf(buffer+i,"#OUTPUT_DEBUG=.\\%s_debug%s\r\n\r\n",NewProjectInfo.name, outputFileExt.c_str());
 	i+=lstrlen(buffer+i);
 
@@ -948,4 +953,8 @@
 		i+=lstrlen(buffer+i);
 	}
+	else if( NewProjectInfo.dwTypeID == IDC_SLL )
+	{
+		buffer[0] = 0;
+	}
 
 	//保存
@@ -958,5 +967,5 @@
 	else{
 		sprintf(temporary,"%s%s.ab",dir,NewProjectInfo.name);
-		if(!WriteBuffer(temporary,buffer,i)) return;
+		if(!WriteBuffer(temporary,buffer,lstrlen(buffer))) return;
 	}
 
Index: trunk/ab5.0/abdev/abdev/abdev.vcproj
===================================================================
--- trunk/ab5.0/abdev/abdev/abdev.vcproj	(revision 601)
+++ trunk/ab5.0/abdev/abdev/abdev.vcproj	(revision 608)
@@ -2748,4 +2748,8 @@
 				<File
 					RelativePath=".\include\Program.h"
+					>
+				</File>
+				<File
+					RelativePath=".\include\ProjectManager.h"
 					>
 				</File>
Index: trunk/ab5.0/abdev/abdev/include/ProjectManager.h
===================================================================
--- trunk/ab5.0/abdev/abdev/include/ProjectManager.h	(revision 608)
+++ trunk/ab5.0/abdev/abdev/include/ProjectManager.h	(revision 608)
@@ -0,0 +1,11 @@
+#pragma once
+
+namespace ActiveBasic{ namespace IDE{
+
+
+class ProjectManager
+{
+};
+
+
+}}
Index: trunk/ab5.0/abdev/abdev/src/MainFrame.cpp
===================================================================
--- trunk/ab5.0/abdev/abdev/src/MainFrame.cpp	(revision 601)
+++ trunk/ab5.0/abdev/abdev/src/MainFrame.cpp	(revision 608)
@@ -958,6 +958,9 @@
 			sprintf(temporary,"\"%s\" \"%s\" /run /wnd:%08x",temp2,temp3,m_hWnd);
 
-		//DLLオプション
+		// DLLオプション
 		if(ProjectInfo.dwModuleType==MT_DLL) lstrcat(temporary," /dll");
+
+		// SLLオプション
+		if( ProjectInfo.dwModuleType == MT_SLL ) lstrcat( temporary, " /static_library" );
 
 		//Unicodeオプション
Index: trunk/ab5.0/abdev/abdev/stdafx.h
===================================================================
--- trunk/ab5.0/abdev/abdev/stdafx.h	(revision 601)
+++ trunk/ab5.0/abdev/abdev/stdafx.h	(revision 608)
@@ -54,2 +54,3 @@
 #include <MainFrame.h>
 #include <Program.h>
+#include <ProjectManager.h>
