#include "common.h" void StepCompileProgress(void){ extern HWND hMainDlg; PostMessage(GetDlgItem(hMainDlg,IDC_PROGRESS),PBM_STEPIT,0,0); } void Delete_ci(CONSTINFO *pci){ int i; HeapDefaultFree(pci->name); if(pci->StrValue) HeapDefaultFree(pci->StrValue); if(pci->ParmNum){ for(i=0;iParmNum;i++) HeapDefaultFree(pci->ppParm[i]); HeapDefaultFree(pci->ppParm); } if(pci->pNextData){ Delete_ci(pci->pNextData); } HeapDefaultFree(pci); } void DeleteConstInfo(CONSTINFO **ppConstHash){ int i; for(i=0;ibCompile) HeapDefaultFree(psi->pVar); psi=psi->pNextData; } } //TypeDef情報を初期化 delete pobj_DBTypeDef; pobj_DBTypeDef=0; //サブルーチン(ユーザー定義)情報のメモリ解放 extern SUBINFO **ppSubHash; extern char **ppMacroNames; extern int MacroNum; DeleteSubInfo(ppSubHash,ppMacroNames,MacroNum); //Declare(DLL関数)情報のメモリ解放 DeleteDeclareInfo(); //関数ポインタ情報のメモリ解放 DeleteProcPtrInfo(); //定数に関する情報を解放 extern CONSTINFO **ppConstHash; DeleteConstInfo(ppConstHash); //コンパイルダイアログのプログレスバーを上げる StepCompileProgress(); ////////////////////////// // 終了処理 EndCompile: if(bStopCompile){ PostMessage(GetDlgItem(hMainDlg,IDC_PROGRESS),PBM_SETPOS,0,0); //"コンパイルはユーザーにより中断されました。" CompileMessage(STRING_COMPILE_STOP); } else{ extern int CompileMsgNum; extern int WarningNum; if(bError==0){ //"コンパイルは正常に完了しました(エラー:%d、警告:%d)" sprintf(temp2,STRING_COMPILE_SUCCESS,ErrorNum-CompileMsgNum-WarningNum,WarningNum); } else{ //"コンパイルは中断されました(エラー:%d、警告:%d)" sprintf(temp2,STRING_COMPILE_ERROR,ErrorNum-CompileMsgNum-WarningNum,WarningNum); } CompileMessage(""); CompileMessage("-----------------------------------------------------"); CompileMessage(temp2); } //"閉じる" SetDlgItemText(hMainDlg,IDOK,STRING_CLOSE); //#include情報を解放 extern INCLUDEFILEINFO IncludeFileInfo; for(i2=0;i2