Index: BasicCompiler_Common/DebugMiddleFile.cpp
===================================================================
--- BasicCompiler_Common/DebugMiddleFile.cpp	(revision 135)
+++ BasicCompiler_Common/DebugMiddleFile.cpp	(revision 137)
@@ -327,19 +327,21 @@
 		i2+=sizeof(long);
 		for(i4=0;i4<pobj_c->iMemberNum;i4++){
+			// 名前
 			lstrcpy(buffer+i2,pobj_c->ppobj_Member[i4]->GetName().c_str());
 			i2+=lstrlen(buffer+i2)+1;
 
+			// 型
+			*(long *)(buffer+i2)=pobj_c->ppobj_Member[i4]->GetType().GetBasicType();
+			i2+=sizeof(long);
+
+			// 型の拡張情報
+			SetLpIndex_DebugFile(buffer,&i2,pobj_c->ppobj_Member[i4]->GetType());
+
+			// アクセシビリティ
+			*(Prototype::Accessibility *)(buffer+i2)=pobj_c->ppobj_Member[i4]->GetAccessibility();
+			i2+=sizeof(Prototype::Accessibility);
+
 			memcpy(buffer+i2,pobj_c->ppobj_Member[i4]->SubScripts,sizeof(int)*MAX_ARRAYDIM);
 			i2+=sizeof(int)*MAX_ARRAYDIM;
-
-			//型
-			*(long *)(buffer+i2)=pobj_c->ppobj_Member[i4]->GetBasicType();
-			i2+=sizeof(long);
-
-			//型の拡張情報
-			SetLpIndex_DebugFile(buffer,&i2,*pobj_c->ppobj_Member[i4]);
-
-			*(long *)(buffer+i2)=pobj_c->ppobj_Member[i4]->dwAccess;
-			i2+=sizeof(long);
 
 			//バッファが足りない場合は再確保
@@ -354,6 +356,6 @@
 		i2+=sizeof(long);
 		foreach( const CMethod *pMethod, pobj_c->methods ){
-			*(long *)(buffer+i2)=pMethod->dwAccess;
-			i2+=sizeof(long);
+			*(Prototype::Accessibility *)(buffer+i2)=pMethod->GetAccessibility();
+			i2+=sizeof(Prototype::Accessibility);
 			if( pMethod->GetInheritsClassPtr() ){
 				lstrcpy(buffer+i2,pMethod->GetInheritsClassPtr()->GetName().c_str());
@@ -372,19 +374,21 @@
 		i2+=sizeof(long);
 		foreach( CMember *member, pobj_c->staticMembers ){
+			// 名前
 			lstrcpy(buffer+i2,member->GetName().c_str());
 			i2+=lstrlen(buffer+i2)+1;
 
+			// 型
+			*(long *)(buffer+i2)=member->GetType().GetBasicType();
+			i2+=sizeof(long);
+
+			// 型の拡張情報
+			SetLpIndex_DebugFile(buffer,&i2,member->GetType());
+
+			// アクセシビリティ
+			*(Prototype::Accessibility *)(buffer+i2)=member->GetAccessibility();
+			i2+=sizeof(Prototype::Accessibility);
+
 			memcpy(buffer+i2,member->SubScripts,sizeof(int)*MAX_ARRAYDIM);
 			i2+=sizeof(int)*MAX_ARRAYDIM;
-
-			//型
-			*(long *)(buffer+i2)=member->GetBasicType();
-			i2+=sizeof(long);
-
-			//型の拡張情報
-			SetLpIndex_DebugFile(buffer,&i2,*member);
-
-			*(long *)(buffer+i2)=member->dwAccess;
-			i2+=sizeof(long);
 
 			//バッファが足りない場合は再確保
@@ -707,23 +711,24 @@
 			(CMember **)HeapAlloc(hHeap,0,pobj_c->iMemberNum*sizeof(CMember *));
 		for(i4=0;i4<pobj_c->iMemberNum;i4++){
-			pobj_c->ppobj_Member[i4]=new CMember();
-
-			pobj_c->ppobj_Member[i4]->SetName( (char *)(buffer+i2) );
+
+			// 名前
+			string name = (char *)(buffer+i2);
 			i2+=lstrlen(buffer+i2)+1;
+
+			// 型
+			Type type( *(long *)(buffer+i2) );
+			i2+=sizeof(long);
+
+			// 型の拡張情報
+			GetLpIndex_DebugFile(buffer,&i2,type);
+
+			// アクセシビリティ
+			Prototype::Accessibility accessibility = *(Prototype::Accessibility *)(buffer+i2);
+			i2+=sizeof(Prototype::Accessibility);
+
+			pobj_c->ppobj_Member[i4]=new CMember( accessibility, name, type, false );
 
 			memcpy(pobj_c->ppobj_Member[i4]->SubScripts,buffer+i2,sizeof(int)*MAX_ARRAYDIM);
 			i2+=sizeof(int)*MAX_ARRAYDIM;
-
-			//型
-			Type type( *(long *)(buffer+i2) );
-			i2+=sizeof(long);
-
-			//型の拡張情報
-			GetLpIndex_DebugFile(buffer,&i2,type);
-
-			pobj_c->ppobj_Member[i4]->SetType( type.GetBasicType(), type.GetIndex() );
-
-			pobj_c->ppobj_Member[i4]->dwAccess=*(long *)(buffer+i2);
-			i2+=sizeof(long);
 		}
 
@@ -733,6 +738,6 @@
 		for( i4=0; i4<nMethod; i4++ ){
 
-			DWORD dwAccess=*(long *)(buffer+i2);
-			i2+=sizeof(long);
+			Prototype::Accessibility accessibility=*(Prototype::Accessibility *)(buffer+i2);
+			i2+=sizeof(Prototype::Accessibility);
 
 			char szInherits[VN_SIZE];
@@ -758,5 +763,5 @@
 			}
 
-			CMethod *pMethod = new DynamicMethod( pUserProc, dwAccess, 0,0,false, pobj_InheritsClass);
+			CMethod *pMethod = new DynamicMethod( pUserProc, accessibility, 0,0,false, pobj_InheritsClass);
 
 			pobj_c->methods.push_back( pMethod );
@@ -767,23 +772,23 @@
 		i2+=sizeof(long);
 		for( i4=0; i4<nStaticMember; i4++ ){
-			CMember *member=new CMember();
-
-			member->SetName( (char *)(buffer+i2) );
+			// 名前
+			string name = (char *)(buffer+i2);
 			i2+=lstrlen(buffer+i2)+1;
+
+			// 型
+			Type type( *(long *)(buffer+i2) );
+			i2+=sizeof(long);
+
+			// 型の拡張情報
+			GetLpIndex_DebugFile(buffer,&i2,type);
+
+			// アクセシビリティ
+			Prototype::Accessibility accessibility = *(Prototype::Accessibility *)(buffer+i2);
+			i2+=sizeof(Prototype::Accessibility);
+
+			CMember *member=new CMember( accessibility, name, type, false );
 
 			memcpy(member->SubScripts,buffer+i2,sizeof(int)*MAX_ARRAYDIM);
 			i2+=sizeof(int)*MAX_ARRAYDIM;
-
-			//型
-			Type type( *(long *)(buffer+i2) );
-			i2+=sizeof(long);
-
-			//型の拡張情報
-			GetLpIndex_DebugFile(buffer,&i2,type);
-
-			member->SetType( type.GetBasicType(), type.GetIndex() );
-
-			member->dwAccess=*(long *)(buffer+i2);
-			i2+=sizeof(long);
 
 			pobj_c->staticMembers.push_back( member );
