gpt4 book ai didi

c++ - 底部 4GB 已满时 FileDialog 崩溃

转载 作者:可可西里 更新时间:2023-11-01 17:58:52 25 4
gpt4 key购买 nike

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

CFileDialog dlg(TRUE);
dlg.DoModal();

调用 DoModal 最终在“无人区”的某个地方崩溃,调用堆栈:

>   000000018000163b()  
0000000100000024()
0000000000000001()

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

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

不解!

最佳答案

我无法重现这次崩溃。我创建了一个 64 位项目,添加了 4 GB 预留空间,并在其中打开了一个文件对话框。没有崩溃。

要么我的重现与你的不匹配,要么你的系统上有一些不同的东西。您应该发布您的项目,以便我们可以删除其中一个变量。

很遗憾,我不记得 TppWorkerThread 是什么。

发布您的项目——所有源文件、资源文件、.vcxproj 文件和.sln 文件。然后我们可以进行调查。

关于c++ - 底部 4GB 已满时 FileDialog 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9414476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com