SHGetFileInfo获取访问冲突当我使用gflags启用页面堆标志(完全不alignment的痕迹)

我的代码是这样的:

#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

应用程序得到以下exception:FileLock.exe 0x037b1a32上的未处理的exception0xC0000005:访问冲突读取位置0x03876ff4。

但是,如果我禁用像这样的命令页堆:

gflags.exe -p /禁用FileLock.exe Everythis会没事的。

PS:我的操作系统是Windows XP 32位。 而Windows Vista 64位也有相同的例外。

Solutions Collecting From Web of "SHGetFileInfo获取访问冲突当我使用gflags启用页面堆标志(完全不alignment的痕迹)"