Changeset 705 in dev for trunk/ab5.0/abdev/abdev/src


Ignore:
Timestamp:
Jul 21, 2008, 5:42:40 PM (16 years ago)
Author:
イグトランス (egtra)
Message:

ファイルハンドルが解放されず困ることがあるのでCHandleへ入れた。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/abdev/src/MainFrame.cpp

    r697 r705  
    549549    //エラー部分を反転表示
    550550    DWORD AccBytes;
    551     HANDLE fh;
    552     sprintf(temporary,"%spgm.tmp",pj_editor_Dir);
    553     fh=CreateFile(temporary,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    554     ReadFile(fh,temporary,MAX_PATH,&AccBytes,NULL);
    555     CloseHandle(fh);
     551    {
     552        sprintf(temporary,"%spgm.tmp",pj_editor_Dir);
     553        ATL::CHandle fh(CreateFile(temporary,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL));
     554        if(fh==INVALID_HANDLE_VALUE){
     555            fh.Detach();
     556            return 0;
     557        }
     558        ReadFile(fh,temporary,MAX_PATH,&AccBytes,NULL);
     559    }
    556560    temporary[AccBytes]=0;
    557561    HWND hChild=::GetWindow(hClient,GW_CHILD);
     
    11111115
    11121116    CreateProcess( NULL, args, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi );
     1117    CloseHandle( pi.hProcess );
     1118    CloseHandle( pi.hThread );
    11131119}
    11141120
     
    11301136        sprintf(temporary,"%s\r\n%s",projectInfo.szExePath,projectInfo.szCmdLine);
    11311137        sprintf(temp2,"%spgm.tmp",pj_editor_Dir);
    1132         HANDLE hFile=CreateFile(temp2,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_TEMPORARY,NULL);
    1133         DWORD dwAccessBytes;
    1134         WriteFile(hFile,temporary,lstrlen(temporary),&dwAccessBytes,NULL);
    1135         CloseHandle(hFile);
     1138        {
     1139            ATL::CHandle hFile(CreateFile(temp2,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_TEMPORARY,NULL));
     1140            if(hFile==INVALID_HANDLE_VALUE){
     1141                hFile.Detach();
     1142                MessageBox(TEXT("デバッグ用ファイルを開けませんでした。"));
     1143                return;
     1144            }
     1145            DWORD dwAccessBytes;
     1146            WriteFile(hFile,temporary,lstrlen(temporary),&dwAccessBytes,NULL);
     1147        }
    11361148
    11371149        //ソースファイル名をtemp2へ
Note: See TracChangeset for help on using the changeset viewer.