1

私のコードは次のようなものです:

#include <Windows.h>

int main () {
    TCHAR path[MAX_PATH] = {0};
    GetModuleFileName(0, path, MAX_PATH);

    SHFILEINFO sfi;
    ZeroMemory(&sfi, sizeof(SHFILEINFO));
    CoInitialize(NULL);
    SHGetFileInfo(path, 0, &sfi, sizeof(SHFILEINFO), SHGFI_ICON | SHGFI_LARGEICON);

    return 0;
}

gflags を使用して、次のようにページ ヒープ フラグを設定すると:

gflags.exe -p /FileLock.exe を有効にする /unaligned

アプリケーションは、次の例外を受け取ります: FileLock.exe 0xC0000005 の 0x037b1a32 で未処理の例外: ロケーション 0x03876ff4 を読み取るアクセス違反。

しかし、次のようなコマンドでページヒープを無効にすると:

gflags.exe -p /disable FileLock.exe これで問題ありません。

PS: 私の OS は Windows XP 32 ビットです。また、Windows Vista 64 ビットでも同じ例外が発生します。

4

0 に答える 0