我的代码在x86上运行得很好,但是一旦切换到x64,我会从第一个参数(堆句柄)的ntdll中获得读取访问异常。
if(!HeapSetInformation((HANDLE)heap->base, HeapCompatibilityInformation, &lfrag, sizeof(lfrag)))
heap-> base是一个与HANDLE大小相同的UINT_PTR。
lfrag只是ULONG lfrag = 2;
我在调用之前创建一个堆,像这样:heap->base = (UINT_PTR)HeapCreate(0, 0, 0);
有人知道这是什么原因吗?我希望我的程序与x64兼容。
也许我不能在x64上启用低碎片化功能?不过,我在MSDN上什么都看不到