実行ファイルかどうかを確認 [ATL]

(2004.04.22)
#include <atlfile.h>
 
 
    static bool IsPEFile(LPCTSTR lpFileName)
    {
        HRESULT hr = S_OK;
 
        CAtlFile file;
 
        hr = file.Create(lpFileName, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING);
        if (FAILED(hr))
        {
            return false;
        }
 
        IMAGE_DOS_HEADER dosHeader;
        hr = file.Read(&dosHeader, sizeof(IMAGE_DOS_HEADER));
        if (FAILED(hr))
        {
            return false;
        }
 
        return dosHeader.e_magic == 0x5A4D; /*MZ*/
    }
一覧に戻る
© 2003 WAC.com All Right Reserved.