小编Fra*_*vin的帖子

底部4GB满时FileDialog崩溃

为了捕获64位的指针截断错误,我添加了这里提到的代码片段,它保留了底部4GB的内存,因此allocs高于32位.在MFC x64测试应用程序中,我在InitInstance()中首先调用预留函数.然后我添加了一个简单的按钮:

CFileDialog dlg(TRUE);
dlg.DoModal();
Run Code Online (Sandbox Code Playgroud)

调用DoModal最终在某个地方遇到了一个"无人地带"的callstack:

>   000000018000163b()  
    0000000100000024()  
    0000000000000001()  
Run Code Online (Sandbox Code Playgroud)

这不是MFC特定的,因为我得到了与.NET FileDialog相同的行为.我认为这是我手中的事情,因为实际的fileDialog会短暂显示然后崩溃.感觉像一个shell扩展或者其他东西,但我无法得到它来自哪里,因为调用堆栈没有帮助 - 但我想知道我能做什么!

如果我删除了特殊预约功能,我就不会再崩溃了.

困惑!

c++ crash 64-bit winapi visual-c++

8
推荐指数
1
解决办法
361
查看次数

标签 统计

64-bit ×1

c++ ×1

crash ×1

visual-c++ ×1

winapi ×1