Index: /BasicCompiler32/Compile_Calc.cpp
===================================================================
--- /BasicCompiler32/Compile_Calc.cpp	(revision 128)
+++ /BasicCompiler32/Compile_Calc.cpp	(revision 129)
@@ -412,5 +412,5 @@
 }
 
-void OpcodeCalc(char *Command){
+void OpcodeCalc( const char *Command ){
 	int i,i2,i3;
 	char variable[VN_SIZE];
Index: /BasicCompiler32/Compile_ProcOp.cpp
===================================================================
--- /BasicCompiler32/Compile_ProcOp.cpp	(revision 128)
+++ /BasicCompiler32/Compile_ProcOp.cpp	(revision 129)
@@ -42,4 +42,8 @@
 		//GC用の変数を定義
 		InitGCVariables();
+
+		//_System_StartupProgramの呼び出し
+		extern UserProc *pSub_System_StartupProgram;
+		op_call(pSub_System_StartupProgram);
 
 		//クラスに属する静的メンバを定義
Index: /BasicCompiler32/Compile_Statement.cpp
===================================================================
--- /BasicCompiler32/Compile_Statement.cpp	(revision 128)
+++ /BasicCompiler32/Compile_Statement.cpp	(revision 129)
@@ -2,5 +2,5 @@
 #include "Opcode.h"
 
-void OpcodeOthers(char *Command){
+void OpcodeOthers( const char *Command ){
 	int i,i2;
 	UserProc *pUserProc;
Index: /BasicCompiler32/Opcode.h
===================================================================
--- /BasicCompiler32/Opcode.h	(revision 128)
+++ /BasicCompiler32/Opcode.h	(revision 129)
@@ -98,5 +98,5 @@
 void ChangeTypeToByte(int OldType);
 void SetVariableFromEax(int VarType,int CalcType,RELATIVE_VAR *pRelativeVar);
-void OpcodeCalc(char *Command);
+void OpcodeCalc( const char *Command );
 
 //NumOpe.cpp
@@ -170,5 +170,5 @@
 
 //increment.cpp
-void IncDec(int idCalc, char *lpszLeft, char *lpszRight);
+void IncDec(int idCalc, const char *lpszLeft, const char *lpszRight);
 
 //calc2.cpp
@@ -269,5 +269,5 @@
 
 //Compile_Statement.cpp
-void OpcodeOthers(char *Command);
+void OpcodeOthers( const char *Command );
 void OpcodeIf(char *Parameter);
 void OpcodeGoto(char *Parameter);
Index: /BasicCompiler32/increment.cpp
===================================================================
--- /BasicCompiler32/increment.cpp	(revision 128)
+++ /BasicCompiler32/increment.cpp	(revision 129)
@@ -2,5 +2,5 @@
 #include "Opcode.h"
 
-void IncDec(int idCalc, char *lpszLeft, char *lpszRight){
+void IncDec(int idCalc, const char *lpszLeft, const char *lpszRight){
 
 	///////////////////////////
Index: /BasicCompiler64/Compile_Calc.cpp
===================================================================
--- /BasicCompiler64/Compile_Calc.cpp	(revision 128)
+++ /BasicCompiler64/Compile_Calc.cpp	(revision 129)
@@ -25,5 +25,5 @@
 	}
 }
-void OpcodeCalc(char *Command){
+void OpcodeCalc(const char *Command){
 	int i,i2,i3;
 	char variable[VN_SIZE];
Index: /BasicCompiler64/Compile_ProcOp.cpp
===================================================================
--- /BasicCompiler64/Compile_ProcOp.cpp	(revision 128)
+++ /BasicCompiler64/Compile_ProcOp.cpp	(revision 129)
@@ -43,4 +43,8 @@
 		//GC用の変数を定義
 		InitGCVariables();
+
+		//_System_StartupProgramの呼び出し
+		extern UserProc *pSub_System_StartupProgram;
+		op_call(pSub_System_StartupProgram);
 
 		//クラスに属する静的メンバを定義
Index: /BasicCompiler64/Compile_Statement.cpp
===================================================================
--- /BasicCompiler64/Compile_Statement.cpp	(revision 128)
+++ /BasicCompiler64/Compile_Statement.cpp	(revision 129)
@@ -2,5 +2,5 @@
 #include "Opcode.h"
 
-void OpcodeOthers(char *Command){
+void OpcodeOthers(const char *Command){
 	int i,i2;
 	UserProc *pUserProc;
Index: /BasicCompiler64/Compile_Var.cpp
===================================================================
--- /BasicCompiler64/Compile_Var.cpp	(revision 128)
+++ /BasicCompiler64/Compile_Var.cpp	(revision 129)
@@ -1051,4 +1051,5 @@
 		/////////////////////////
 
+		//OpcodeOthers( ( (string)"OutputDebugString(Ex\"" + VarName + "\r\n\")" ).c_str() );
 		AddGlobalVariable(VarName,SubScripts,type,InitBuf,ConstractParameter,dwFlags);
 	}
Index: /BasicCompiler64/MakePeHdr.cpp
===================================================================
--- /BasicCompiler64/MakePeHdr.cpp	(revision 128)
+++ /BasicCompiler64/MakePeHdr.cpp	(revision 129)
@@ -485,5 +485,5 @@
 				continue;
 			}
-
+/*
 			//エラーチェック
 			HINSTANCE hLib;
@@ -510,5 +510,5 @@
 				FreeLibrary(hLib);
 			}
-
+*/
 			pDllProc=pDllProc->pNextData;
 		}
Index: /BasicCompiler64/NumOpe.cpp
===================================================================
--- /BasicCompiler64/NumOpe.cpp	(revision 128)
+++ /BasicCompiler64/NumOpe.cpp	(revision 129)
@@ -717,21 +717,4 @@
 					//型名
 					if( Type::StringToType( term, resultType ) ){
-
-						if( resultType.IsObject() ){
-							if( resultType.GetClass().IsBlittableType() ){
-								// Blittable型のときは基本型として扱う
-								// ※ただし、コンパイル中のメソッドがBlittable型クラスに属していないこと
-								if( UserProc::IsLocalAreaCompiling()
-									&& UserProc::CompilingUserProc().HasParentClass()
-									&& UserProc::CompilingUserProc().GetParentClass().IsBlittableType() )
-								{
-									// コンパイル中のメソッドがBlittable型クラスに属している
-								}
-								else{
-									resultType = resultType.GetClass().GetBlittableType();
-								}
-							}
-						}
-
 						resultType.SetBasicType( resultType.GetBasicType() | FLAG_CAST );
 					}
Index: /BasicCompiler64/Opcode.h
===================================================================
--- /BasicCompiler64/Opcode.h	(revision 128)
+++ /BasicCompiler64/Opcode.h	(revision 129)
@@ -248,5 +248,5 @@
 //Compile_Calc.cpp
 void SetVariableFromRax(int VarType,int CalcType,RELATIVE_VAR *pRelativeVar);
-void OpcodeCalc(char *Command);
+void OpcodeCalc(const char *Command);
 
 //NumOpe.cpp
@@ -305,5 +305,5 @@
 
 //increment.cpp
-void IncDec(int idCalc, char *lpszLeft, char *lpszRight);
+void IncDec(int idCalc, const char *lpszLeft, const char *lpszRight);
 
 //Compile_Calc_PushVar.cpp
@@ -401,5 +401,5 @@
 
 //Compile_Statement.cpp
-void OpcodeOthers(char *Command);
+void OpcodeOthers(const char *Command);
 void OpcodeIf(char *Parameter);
 void OpcodeGoto(char *Parameter);
Index: /BasicCompiler64/increment.cpp
===================================================================
--- /BasicCompiler64/increment.cpp	(revision 128)
+++ /BasicCompiler64/increment.cpp	(revision 129)
@@ -2,5 +2,5 @@
 #include "Opcode.h"
 
-void IncDec(int idCalc, char *lpszLeft, char *lpszRight){
+void IncDec(int idCalc, const char *lpszLeft, const char *lpszRight){
 
 	///////////////////////////
Index: /BasicCompiler_Common/Class.cpp
===================================================================
--- /BasicCompiler_Common/Class.cpp	(revision 128)
+++ /BasicCompiler_Common/Class.cpp	(revision 129)
@@ -17,4 +17,8 @@
 CMember::CMember( CClass *pobj_c, DWORD access, bool isConst, bool isRef, char *buffer, int nowLine ){
 	extern int cp;
+
+						if( strstr(buffer,"environVarName")){
+							int test=0;
+						}
 
 	//構文を解析
Index: /BasicCompiler_Common/NumOpe_GetType.cpp
===================================================================
--- /BasicCompiler_Common/NumOpe_GetType.cpp	(revision 128)
+++ /BasicCompiler_Common/NumOpe_GetType.cpp	(revision 129)
@@ -603,4 +603,7 @@
 					)){
 						// ダウンキャストを許可する
+				}
+				else if( idCalc == CALC_AS ){
+					// NumOpe_GetTypeではすべてのキャストを許可する
 				}
 				else{
