gpt4 book ai didi

c++ - 为什么 CFileDialog::GetNextPathName 在文件路径很长时不起作用?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:35:04 25 4
gpt4 key购买 nike

使用 CFileDialog 类,我选择了放置在一个长路径目录中的多个文件。当我只选择一个或两个文件时就可以了;但是当我同时选择三个文件时,它只返回第三个文件路径的一部分。 (看起来可能限制为 512 个字符)我该如何解决这个问题?

最佳答案

MFC 使用大小为 _MAX_PATH 的默认缓冲区,这就是您看到该行为的原因。查看 dlgfile.cpp 以了解 CFileDialog::CFileDialog 的实现,您将看到 m_ofn.lpstrFilem_ofn.nMaxFile正在设置。

如果需要,您可以指定更大的缓冲区。在调用 DoModal 之前,您可以访问 CFileDialog::m_pOFN 成员以获取指向 OPENFILENAME 的指针,该 CFileDialog 将直接使用和更新它或调用 CFileDialog::GetOFN 以获取对结构的引用并更新它。

无论哪种方式,您都会发现这很有帮助:http://msdn.microsoft.com/en-US/library/ms646839(v=vs.80).aspx

关于c++ - 为什么 CFileDialog::GetNextPathName 在文件路径很长时不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14903496/

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