Index: BasicCompiler_Common/error.cpp
===================================================================
--- BasicCompiler_Common/error.cpp	(revision 34)
+++ BasicCompiler_Common/error.cpp	(revision 40)
@@ -1,30 +1,35 @@
 #include "../BasicCompiler_Common/common.h"
 
-BOOL GetErrorMsg(int num,char *KeyWord,char *msg,int pos){
+BOOL GetErrorMsg(int num,const char *KeyWord,char *msg,int pos){
 	extern HANDLE hHeap;
 	int i2;
 	char temporary[64];
 
+	char tempKeyWord[1024];
 	if(KeyWord){
+		lstrcpy(tempKeyWord,KeyWord);
 		for(i2=0;;i2++){
-			if(KeyWord[i2]=='\0') break;
-			if(KeyWord[i2]==1){
-				GetDefaultNameFromES(KeyWord[i2+1],temporary);
-				SlideString(KeyWord+i2+2,lstrlen(temporary)-2);
-				memcpy(KeyWord+i2,temporary,lstrlen(temporary));
+			if(tempKeyWord[i2]=='\0') break;
+			if(tempKeyWord[i2]==1){
+				GetDefaultNameFromES(tempKeyWord[i2+1],temporary);
+				SlideString(tempKeyWord+i2+2,lstrlen(temporary)-2);
+				memcpy(tempKeyWord+i2,temporary,lstrlen(temporary));
 			}
 		}
 	}
-
-	if(num==-1||num==-2) lstrcpy(msg,KeyWord);	//部分エラー
+	else{
+		lstrcpy(tempKeyWord,"");
+	}
+
+	if(num==-1||num==-2) lstrcpy(msg,tempKeyWord);	//部分エラー
 
 	if(num==3){
-		temporary[0]=KeyWord[0];
+		temporary[0]=tempKeyWord[0];
 		for(i2=1;;i2++){
-			if((!IsVariableChar(KeyWord[i2]))||i2>=255){
+			if((!IsVariableChar(tempKeyWord[i2]))||i2>=255){
 				temporary[i2]=0;
 				break;
 			}
-			temporary[i2]=KeyWord[i2];
+			temporary[i2]=tempKeyWord[i2];
 		}
 
@@ -52,9 +57,9 @@
 #if defined(JPN)
 		//日本語
-		if(temporary[0]) sprintf(msg,"\"%s\" の使い方が不正です",KeyWord);
+		if(temporary[0]) sprintf(msg,"\"%s\" の使い方が不正です",tempKeyWord);
 		else lstrcpy(msg,"文法が間違っています");
 #else
 		//英語
-		if(temporary[0]) sprintf(msg,"How to use the \"%s\" is wrong.",KeyWord);
+		if(temporary[0]) sprintf(msg,"How to use the \"%s\" is wrong.",tempKeyWord);
 		else lstrcpy(msg,"Syntax Error.");
 #endif
@@ -69,11 +74,11 @@
 	//日本語
 	////////////////////
-	if(num==-101) sprintf(msg,"[警告] %sに強制変換されています。データが失われる可能性があります。",KeyWord);
-	if(num==-102) sprintf(msg,"[警告] %sに強制変換されています。",KeyWord);
-	if(num==-103) sprintf(msg,"[警告] \"%s\" 型が指定されていません。Double型として扱います。",KeyWord);
-	if(num==-104) sprintf(msg,"[警告] \"%s\" 戻り値の型が指定されていません。Double型として扱います。",KeyWord);
-	if(num==-105) sprintf(msg,"[警告] 一時オブジェクトの解放を行えません。キャスト用オブジェクトを用意してください。",KeyWord);
-	if(num==-106) sprintf(msg,"[警告] DLLファイル \"%s\" が見つかりません。",KeyWord);
-	if(num==-107) sprintf(msg,"[警告] DLL関数 \"%s\" を参照できません。",KeyWord);
+	if(num==-101) sprintf(msg,"[警告] %sに強制変換されています。データが失われる可能性があります。",tempKeyWord);
+	if(num==-102) sprintf(msg,"[警告] %sに強制変換されています。",tempKeyWord);
+	if(num==-103) sprintf(msg,"[警告] \"%s\" 型が指定されていません。Double型として扱います。",tempKeyWord);
+	if(num==-104) sprintf(msg,"[警告] \"%s\" 戻り値の型が指定されていません。Double型として扱います。",tempKeyWord);
+	if(num==-105) sprintf(msg,"[警告] 一時オブジェクトの解放を行えません。キャスト用オブジェクトを用意してください。",tempKeyWord);
+	if(num==-106) sprintf(msg,"[警告] DLLファイル \"%s\" が見つかりません。",tempKeyWord);
+	if(num==-107) sprintf(msg,"[警告] DLL関数 \"%s\" を参照できません。",tempKeyWord);
 #else
 #endif
@@ -91,72 +96,72 @@
 	if(num==2) sprintf(msg,"左のオペランドが、左辺値になっていません");
 	//num==3は予約されています
-	if(num==4) sprintf(msg,"%sの相互関係が一致しません",KeyWord);
+	if(num==4) sprintf(msg,"%sの相互関係が一致しません",tempKeyWord);
 	if(num==5) sprintf(msg,"ダブルクォートの数が一致しません");
-	if(num==6) sprintf(msg,"\"%s\" ジャンプ先が不正です",KeyWord);
+	if(num==6) sprintf(msg,"\"%s\" ジャンプ先が不正です",tempKeyWord);
 	if(num==7) lstrcpy(msg,"DLL名が長すぎます（拡張子を含め、16文字以下にして下さい）");
 	if(num==8) lstrcpy(msg,"コンパイラが認識できない文字コードが含まれています");
 	if(num==9) sprintf(msg,"型が違います");
-	if(num==10) sprintf(msg,"\"%s\" のパラメータ指定が間違っています",KeyWord);
-	if(num==11) sprintf(msg,"\"%s\" 型が違います",KeyWord);
-	if(num==12) sprintf(msg,"\"%s\" の使い方が不正です",KeyWord);
-	if(num==13) sprintf(msg,"\"%s\" を参照できません",KeyWord);
-	if(num==14) sprintf(msg,"\"%s\" 配列指定が不正です",KeyWord);
-	if(num==15) sprintf(msg,"\"%s\" はすでに定義されています",KeyWord);
-	if(num==16) sprintf(msg,"\"%s\" 配列、またはポインタ以外の変数に添え字が指定されています",KeyWord);
+	if(num==10) sprintf(msg,"\"%s\" のパラメータ指定が間違っています",tempKeyWord);
+	if(num==11) sprintf(msg,"\"%s\" 型が違います",tempKeyWord);
+	if(num==12) sprintf(msg,"\"%s\" の使い方が不正です",tempKeyWord);
+	if(num==13) sprintf(msg,"\"%s\" を参照できません",tempKeyWord);
+	if(num==14) sprintf(msg,"\"%s\" 配列指定が不正です",tempKeyWord);
+	if(num==15) sprintf(msg,"\"%s\" はすでに定義されています",tempKeyWord);
+	if(num==16) sprintf(msg,"\"%s\" 配列、またはポインタ以外の変数に添え字が指定されています",tempKeyWord);
 	if(num==17) sprintf(msg,"リソース データが不正です");
-	if(num==18) sprintf(msg,"\"%s\"はポインタ変数型です。文字列演算を指定することはできません",KeyWord);
-	if(num==19) sprintf(msg,"\"%s\"は値参照型です。ByVal指定することはできません",KeyWord);
+	if(num==18) sprintf(msg,"\"%s\"はポインタ変数型です。文字列演算を指定することはできません",tempKeyWord);
+	if(num==19) sprintf(msg,"\"%s\"は値参照型です。ByVal指定することはできません",tempKeyWord);
 	if(num==20) lstrcpy(msg,"全角スペースが含まれています（全角スペースはコンパイラが認識できないので、半角スペースまたはタブ文字にしてください）");
 	if(num==21) sprintf(msg,"If制御のブロック指定が不正です");
-	if(num==22) sprintf(msg,"\"%s\" に対する \"End %s\" が見つかりません",KeyWord,KeyWord);
-	if(num==23) sprintf(msg,"リソース ファイル \"%s\" の読み込みに失敗",KeyWord);
+	if(num==22) sprintf(msg,"\"%s\" に対する \"End %s\" が見つかりません",tempKeyWord,tempKeyWord);
+	if(num==23) sprintf(msg,"リソース ファイル \"%s\" の読み込みに失敗",tempKeyWord);
 	if(num==24) lstrcpy(msg,"Export指定の関数のパラメータには実体オブジェクトを利用することはできません（BytePtr型などを利用して下さい）");
-	if(num==27) sprintf(msg,"\"%s\" は定義されていません",KeyWord);
-	if(num==28) sprintf(msg,"構造体パラメータはポインタ参照にしてください(%s)",KeyWord);
+	if(num==27) sprintf(msg,"\"%s\" は定義されていません",tempKeyWord);
+	if(num==28) sprintf(msg,"構造体パラメータはポインタ参照にしてください(%s)",tempKeyWord);
 	if(num==29) sprintf(msg,"配列ポインタを要素と同時に引渡すときは、ポインタ参照（ByRef）にしてください");
 	//num==30は予約されています
-	if(num==31) sprintf(msg,"\"%s\" は構造体です（メンバの参照はピリオド \".\" で区切ってください）",KeyWord);
-	if(num==32) sprintf(msg,"\"%s\" は構造体ポインタです（メンバの参照は \"->\" で区切ってください）",KeyWord);
+	if(num==31) sprintf(msg,"\"%s\" は構造体です（メンバの参照はピリオド \".\" で区切ってください）",tempKeyWord);
+	if(num==32) sprintf(msg,"\"%s\" は構造体ポインタです（メンバの参照は \"->\" で区切ってください）",tempKeyWord);
 	if(num==33) sprintf(msg,"定数式にリテラル値、または定数以外のものが含まれています");
 	if(num==34) sprintf(msg,"定数はモジュールレベルで宣言して下さい");
-	if(num==38) sprintf(msg,"\"%s\" 戻り値が存在しないプロシージャです",KeyWord);
-	if(num==39) sprintf(msg,"\"%s\" はオブジェクトポインタではありません（\"->\" 参照はできません）",KeyWord);
+	if(num==38) sprintf(msg,"\"%s\" 戻り値が存在しないプロシージャです",tempKeyWord);
+	if(num==39) sprintf(msg,"\"%s\" はオブジェクトポインタではありません（\"->\" 参照はできません）",tempKeyWord);
 	if(num==40) lstrcpy(msg,"関数の戻り値にオブジェクトを指定することはできません");
 	if(num==41) lstrcpy(msg,"初期データが不正です");
 	if(num==42) lstrcpy(msg,"閉じカッコ \")\" の後に不正な文字が含まれています");
 	if(num==43) lstrcpy(msg,"ダブルクォートの後に不正な文字が含まれています");
-	if(num==45) sprintf(msg,"実数に対して \"%s\" 演算子は利用できません",KeyWord);
+	if(num==45) sprintf(msg,"実数に対して \"%s\" 演算子は利用できません",tempKeyWord);
 	if(num==46) lstrcpy(msg,"配列の添え字に整数以外の値が与えられています");
 	if(num==47) lstrcpy(msg,"As演算子の右辺値に型名以外の識別子が指定されています");
-	if(num==48) sprintf(msg,"%s演算子に対して型名が指定されています",KeyWord);
+	if(num==48) sprintf(msg,"%s演算子に対して型名が指定されています",tempKeyWord);
 	if(num==49) lstrcpy(msg,"添え字に整数以外の型が指定されています");
-	if(num==50) sprintf(msg,"%sに変換できません",KeyWord);
+	if(num==50) sprintf(msg,"%sに変換できません",tempKeyWord);
 	if(num==51) lstrcpy(msg,"オブジェクト、構造体のアラインメント値は1,2,4,8,16のいずれかでなければなりません");
-	if(num==52) sprintf(msg,"\"%s\" オーバーロードを解決できません",KeyWord);
-	if(num==53) sprintf(msg,"\"%s\" 出力ファイルの書き込みに失敗しました。実行されている可能性があります",KeyWord);
-	if(num==54) sprintf(msg,"対応する%sが存在しません。",KeyWord);
-	if(num==55) sprintf(msg,"\"%s\" は対応するForステートメントで利用されるカウンタ変数ではありません。",KeyWord);
+	if(num==52) sprintf(msg,"\"%s\" オーバーロードを解決できません",tempKeyWord);
+	if(num==53) sprintf(msg,"\"%s\" 出力ファイルの書き込みに失敗しました。実行されている可能性があります",tempKeyWord);
+	if(num==54) sprintf(msg,"対応する%sが存在しません。",tempKeyWord);
+	if(num==55) sprintf(msg,"\"%s\" は対応するForステートメントで利用されるカウンタ変数ではありません。",tempKeyWord);
 	if(num==56) lstrcpy(msg,"ゼロ割りが行われました。");
 	if(num==57) lstrcpy(msg,"8進数のリテラル表記が不正です。");
 	if(num==58) lstrcpy(msg,"16進数のリテラル表記が不正です。");
-	if(num==59) sprintf(msg,"マニフェスト ファイル \"%s\" の読み込みに失敗。",KeyWord);
+	if(num==59) sprintf(msg,"マニフェスト ファイル \"%s\" の読み込みに失敗。",tempKeyWord);
 	if(num==60) lstrcpy(msg,"Staticステートメントはグローバル領域では使用できません。");
-	if(num==61) sprintf(msg,"\"%s\" は定数です。書き込みアクセスはできません。",KeyWord);
-	if(num==62) sprintf(msg,"グローバル領域でのReturnは禁止されています。",KeyWord);
+	if(num==61) sprintf(msg,"\"%s\" は定数です。書き込みアクセスはできません。",tempKeyWord);
+	if(num==62) sprintf(msg,"グローバル領域でのReturnは禁止されています。",tempKeyWord);
 
 
 	//オブジェクト関連
-	if(num==102) sprintf(msg,"\"%s\" オブジェクトは定義されていません",KeyWord);
-	if(num==103) sprintf(msg,"\"%s\" メンバは定義されていません",KeyWord);
-	if(num==104) sprintf(msg,"\"%s\" 参照方法が違います",KeyWord);
-	if(num==105) sprintf(msg,"\"%s\" 自身のクラスを継承することはできません",KeyWord);
-	if(num==106) sprintf(msg,"\"%s\" クラスは定義されていません",KeyWord);
-	if(num==107) sprintf(msg,"Privateメンバ \"%s\" にアクセスすることはできません",KeyWord);
-	if(num==108) sprintf(msg,"Protectedメンバ \"%s\" にアクセスすることはできません",KeyWord);
-	if(num==109) sprintf(msg,"Privateメンバ関数 \"%s\" を呼び出すことはできません",KeyWord);
-	if(num==110) sprintf(msg,"Protectedメンバ関数 \"%s\" を呼び出すことはできません",KeyWord);
+	if(num==102) sprintf(msg,"\"%s\" オブジェクトは定義されていません",tempKeyWord);
+	if(num==103) sprintf(msg,"\"%s\" メンバは定義されていません",tempKeyWord);
+	if(num==104) sprintf(msg,"\"%s\" 参照方法が違います",tempKeyWord);
+	if(num==105) sprintf(msg,"\"%s\" 自身のクラスを継承することはできません",tempKeyWord);
+	if(num==106) sprintf(msg,"\"%s\" クラスは定義されていません",tempKeyWord);
+	if(num==107) sprintf(msg,"Privateメンバ \"%s\" にアクセスすることはできません",tempKeyWord);
+	if(num==108) sprintf(msg,"Protectedメンバ \"%s\" にアクセスすることはできません",tempKeyWord);
+	if(num==109) sprintf(msg,"Privateメンバ関数 \"%s\" を呼び出すことはできません",tempKeyWord);
+	if(num==110) sprintf(msg,"Protectedメンバ関数 \"%s\" を呼び出すことはできません",tempKeyWord);
 	if(num==111) lstrcpy(msg,"InheritsはClass定義内の先頭に記述する必要があります");
-	if(num==112) sprintf(msg,"\"%s\" はクラス型ではないため、初期パラメータを指定することはできません",KeyWord);
-	if(num==113) sprintf(msg,"\"%s\" コンストラクタへ渡すパラメータが不正です",KeyWord);
+	if(num==112) sprintf(msg,"\"%s\" はクラス型ではないため、初期パラメータを指定することはできません",tempKeyWord);
+	if(num==113) sprintf(msg,"\"%s\" コンストラクタへ渡すパラメータが不正です",tempKeyWord);
 	if(num==114) lstrcpy(msg,"デストラクタはパラメータを持てません");
 	if(num==115) lstrcpy(msg,"コンストラクタ及びデストラクタは戻り値を持てません");
@@ -164,5 +169,5 @@
 	if(num==117) lstrcpy(msg,"デストラクタの名前が \"~クラス名\" になっていません");
 	if(num==118) lstrcpy(msg,"参照する基底クラスが存在しません");
-	if(num==119) sprintf(msg,"\"%s\" メンバは基底クラスで定義されていません",KeyWord);
+	if(num==119) sprintf(msg,"\"%s\" メンバは基底クラスで定義されていません",tempKeyWord);
 	if(num==120) lstrcpy(msg,"デストラクトするオブジェクトの型が不明です");
 	if(num==121) lstrcpy(msg,"New演算子にはクラス以外の型を指定できません");
@@ -170,20 +175,20 @@
 	if(num==123) lstrcpy(msg,"ループ継承が行われました");
 	if(num==124) lstrcpy(msg,"循環参照が行われました");
-	if(num==125) sprintf(msg,"\"%s\" は抽象クラスです。インスタンス化することはできません。",KeyWord);
+	if(num==125) sprintf(msg,"\"%s\" は抽象クラスです。インスタンス化することはできません。",tempKeyWord);
 	if(num==126) lstrcpy(msg,"オペレータのオーバーロードをクラスの外で行うことはできません。");
 	if(num==127) lstrcpy(msg,"Override修飾子の指定が無い状況でオーバーライドを行うことはできません。");
 	if(num==128) lstrcpy(msg,"オーバーライドを行うときはアクセシビリティを同一にしなければなりません。");
-	if(num==129) sprintf(msg,"静的メンバ \"%s\" は定義されていません。",KeyWord);
-	if(num==130) sprintf(msg,"\"%s\" はオブジェクト定数です。書き込みアクセスはできません。",KeyWord);
+	if(num==129) sprintf(msg,"静的メンバ \"%s\" は定義されていません。",tempKeyWord);
+	if(num==130) sprintf(msg,"\"%s\" はオブジェクト定数です。書き込みアクセスはできません。",tempKeyWord);
 	if(num==131) lstrcpy(msg,"Const定義されたメソッド内でクラスメンバへの書き込みアクセスはできません。");
 	if(num==132) lstrcpy(msg,"明示的なコンストラクタ呼び出しと初期値の指定を同時に行うことはできません。");
 
 	//Enum関連
-	if(num==150) sprintf(msg,"\"%s\" 値が定義されていません",KeyWord);
-	if(num==151) sprintf(msg,"\"%s\" 列挙リストに登録されていません",KeyWord);
+	if(num==150) sprintf(msg,"\"%s\" 値が定義されていません",tempKeyWord);
+	if(num==151) sprintf(msg,"\"%s\" 列挙リストに登録されていません",tempKeyWord);
 
 	//リンカ
-	if(num==200) sprintf(msg,"\"%s\" 未解決です (リンク エラー)",KeyWord);
-	if(num==201) sprintf(msg,"\"%s\" の読み込みに失敗",KeyWord);
+	if(num==200) sprintf(msg,"\"%s\" 未解決です (リンク エラー)",tempKeyWord);
+	if(num==201) sprintf(msg,"\"%s\" の読み込みに失敗",tempKeyWord);
 
 	//原因不明
@@ -197,34 +202,34 @@
 	if(num==2) sprintf(msg,"Left operand must be l-value.");
 	//num==3は予約されています
-	if(num==4) sprintf(msg,"Correlation of %s is wrong.",KeyWord);
+	if(num==4) sprintf(msg,"Correlation of %s is wrong.",tempKeyWord);
 	if(num==5) sprintf(msg,"Correlation of double quotes is wrong.");
-	if(num==6) sprintf(msg,"\"%s\" Label not found.",KeyWord);
+	if(num==6) sprintf(msg,"\"%s\" Label not found.",tempKeyWord);
 	if(num==7) lstrcpy(msg,"The DLL name is too long. Must be 16 characters or less.");
 	if(num==8) lstrcpy(msg,"The inaccurate characters are contained.");
 	if(num==9) sprintf(msg,"Type is wrong.");
-	if(num==10) sprintf(msg,"\"%s\" Rule of parameter is wrong.",KeyWord);
-	if(num==11) sprintf(msg,"\"%s\" Type is wrong.",KeyWord);
-	if(num==12) sprintf(msg,"\"%s\" Not a valid use.",KeyWord);
-	if(num==13) sprintf(msg,"Cannot refer to \"%s\".",KeyWord);
-	if(num==14) sprintf(msg,"\"%s\" Array argument(s) out of bound.",KeyWord);
-	if(num==15) sprintf(msg,"\"%s\" is already defined.",KeyWord);
-	if(num==16) sprintf(msg,"\"%s\" Argument(s) following variable which is not pointer or array.",KeyWord);
+	if(num==10) sprintf(msg,"\"%s\" Rule of parameter is wrong.",tempKeyWord);
+	if(num==11) sprintf(msg,"\"%s\" Type is wrong.",tempKeyWord);
+	if(num==12) sprintf(msg,"\"%s\" Not a valid use.",tempKeyWord);
+	if(num==13) sprintf(msg,"Cannot refer to \"%s\".",tempKeyWord);
+	if(num==14) sprintf(msg,"\"%s\" Array argument(s) out of bound.",tempKeyWord);
+	if(num==15) sprintf(msg,"\"%s\" is already defined.",tempKeyWord);
+	if(num==16) sprintf(msg,"\"%s\" Argument(s) following variable which is not pointer or array.",tempKeyWord);
 	if(num==17) sprintf(msg,"Invalid resource data.");
-	if(num==18) sprintf(msg,"\"%s\" Invalid operation on a pointer variable.",KeyWord);
-	if(num==19) sprintf(msg,"\"%s\" is already to be passed by value. You cannot use \"ByVal\".",KeyWord);
+	if(num==18) sprintf(msg,"\"%s\" Invalid operation on a pointer variable.",tempKeyWord);
+	if(num==19) sprintf(msg,"\"%s\" is already to be passed by value. You cannot use \"ByVal\".",tempKeyWord);
 	if(num==21) sprintf(msg,"Wrong structure of \"If\" block.");
-	if(num==22) sprintf(msg,"No matching \"End %s\" found for \"%s\".",KeyWord,KeyWord);
-	if(num==23) sprintf(msg,"Cannot read the resource file \"%s\".",KeyWord);
+	if(num==22) sprintf(msg,"No matching \"End %s\" found for \"%s\".",tempKeyWord,tempKeyWord);
+	if(num==23) sprintf(msg,"Cannot read the resource file \"%s\".",tempKeyWord);
 	if(num==24) lstrcpy(msg,"Must not use String type as an argument for exported function. (Use BytePtr type instead.)");
-	if(num==27) sprintf(msg,"\"%s\" Undefined procedure.",KeyWord);
-	if(num==28) sprintf(msg,"\"%s\" Structure must not be passed by value. (Use \"ByRef\".)",KeyWord);
+	if(num==27) sprintf(msg,"\"%s\" Undefined procedure.",tempKeyWord);
+	if(num==28) sprintf(msg,"\"%s\" Structure must not be passed by value. (Use \"ByRef\".)",tempKeyWord);
 	if(num==29) sprintf(msg,"Array must not be passed by value. (Use \"ByRef\".)");
 	//num==30は予約されています
-	if(num==31) sprintf(msg,"\"%s\" is a struct. (Use period \".\" to refer to the members.)",KeyWord);
-	if(num==32) sprintf(msg,"\"%s\" is a pointer of struct. (Use arrow \"->\" to refer to the members.)",KeyWord);
+	if(num==31) sprintf(msg,"\"%s\" is a struct. (Use period \".\" to refer to the members.)",tempKeyWord);
+	if(num==32) sprintf(msg,"\"%s\" is a pointer of struct. (Use arrow \"->\" to refer to the members.)",tempKeyWord);
 	if(num==33) sprintf(msg,"Constant formula has a thing that is not literal value or constant value.");
 	if(num==34) sprintf(msg,"Constant formula must be defined in the module level.");
-	if(num==38) sprintf(msg,"\"%s\" is a procedure without a return value.",KeyWord);
-	if(num==39) sprintf(msg,"\"%s\" is not object pointer. \"->\" is invalid.",KeyWord);
+	if(num==38) sprintf(msg,"\"%s\" is a procedure without a return value.",tempKeyWord);
+	if(num==39) sprintf(msg,"\"%s\" is not object pointer. \"->\" is invalid.",tempKeyWord);
 	if(num==40) lstrcpy(msg,"Cannot set a object to return value.");
 	if(num==41) lstrcpy(msg,"Init data is wrong.");
@@ -233,16 +238,16 @@
 
 	//オブジェクト関連
-	if(num==102) sprintf(msg,"\"%s\" The object is not defined.",KeyWord);
-	if(num==103) sprintf(msg,"\"%s\" The member is not defined.",KeyWord);
-	if(num==104) sprintf(msg,"\"%s\" The reference character is different.",KeyWord);
-	if(num==105) sprintf(msg,"\"%s\" An own class is not inheritable.",KeyWord);
-	if(num==106) sprintf(msg,"\"%s\" It class is not defined.",KeyWord);
-	if(num==107) sprintf(msg,"\"%s\" Cannot access the private member.",KeyWord);
-	if(num==108) sprintf(msg,"\"%s\" Cannot access the protected member.",KeyWord);
-	if(num==109) sprintf(msg,"\"%s\" Cannot call the private member.",KeyWord);
-	if(num==110) sprintf(msg,"\"%s\" Cannot call the protected member.",KeyWord);
+	if(num==102) sprintf(msg,"\"%s\" The object is not defined.",tempKeyWord);
+	if(num==103) sprintf(msg,"\"%s\" The member is not defined.",tempKeyWord);
+	if(num==104) sprintf(msg,"\"%s\" The reference character is different.",tempKeyWord);
+	if(num==105) sprintf(msg,"\"%s\" An own class is not inheritable.",tempKeyWord);
+	if(num==106) sprintf(msg,"\"%s\" It class is not defined.",tempKeyWord);
+	if(num==107) sprintf(msg,"\"%s\" Cannot access the private member.",tempKeyWord);
+	if(num==108) sprintf(msg,"\"%s\" Cannot access the protected member.",tempKeyWord);
+	if(num==109) sprintf(msg,"\"%s\" Cannot call the private member.",tempKeyWord);
+	if(num==110) sprintf(msg,"\"%s\" Cannot call the protected member.",tempKeyWord);
 	if(num==111) lstrcpy(msg,"The Inherits phrase must be described to the 1st line of class module");
-	if(num==112) sprintf(msg,"\"%s\" is not class object. Therefor you cannot set the parameter for constructor.",KeyWord);
-	if(num==113) sprintf(msg,"\"%s\" The parameter for constructor is wrong.",KeyWord);
+	if(num==112) sprintf(msg,"\"%s\" is not class object. Therefor you cannot set the parameter for constructor.",tempKeyWord);
+	if(num==113) sprintf(msg,"\"%s\" The parameter for constructor is wrong.",tempKeyWord);
 	if(num==114) lstrcpy(msg,"Destructor cannot have a parameter.");
 	if(num==115) lstrcpy(msg,"Constructor and Destructor cannot have a return value.");
@@ -250,17 +255,17 @@
 	if(num==117) lstrcpy(msg,"Destructors name must be \"~ClassName\".");
 	if(num==118) lstrcpy(msg,"Super class is not found.");
-	if(num==119) sprintf(msg,"\"%s\" The member is not defined in the super class.",KeyWord);
+	if(num==119) sprintf(msg,"\"%s\" The member is not defined in the super class.",tempKeyWord);
 
 	//Enum関連
-	if(num==150) sprintf(msg,"\"%s\" The value is not set",KeyWord);
-	if(num==151) sprintf(msg,"\"%s\" is not found from enum lists.",KeyWord);
+	if(num==150) sprintf(msg,"\"%s\" The value is not set",tempKeyWord);
+	if(num==151) sprintf(msg,"\"%s\" is not found from enum lists.",tempKeyWord);
 
 	//リンカ
-	if(num==200) sprintf(msg,"\"%s\" Unknown error.",KeyWord);
+	if(num==200) sprintf(msg,"\"%s\" Unknown error.",tempKeyWord);
 #endif
 
 	return 1;
 }
-void SetError(int num,char *KeyWord,int pos){
+void SetError(int num,const char *KeyWord,int pos){
 	extern HANDLE hHeap;
 	extern HWND hMainDlg;
