jjzjj

ALLOWMULTISELECT

全部标签

c++ - 当 OFN_ALLOWMULTISELECT 时,Windows API 函数 GetOpenFileName() 的字符限制是否有解决方法?

根据MSDN文档,函数GetOpenFileName()当使用Windows2000及更高版本为Unicode编译时,选项OFN_ALLOWMULTISELECT没有字符限制。但是,在WindowsXPx64SP2上,我发现尽管使用了Unicode,但32kANSI限制仍然有效。我在网上看到过其他关于此问题的投诉,但没有解决方案。有谁知道一个简单的解决方法吗?为了完整起见,我使用的是VisualStudio2010,并使用C++进行编码。 最佳答案 文档可能有误。GetOpenFileName()在某种程度上已被弃用,它不再支持最新

c++ - 设置了 OFN_ALLOWMULTISELECT 标志的 GetOpenFileName()

我正在尝试使用GetOpenFileName()通用对话框调用来弹出一个对话框并允许用户选择多个文件。我已经设置了OFN_ALLOWMULTISELECT标志,以及OFN_EXPLORER设置,所以我得到了“新样式”文件选择框。当我设置我的OPENFILENAME结构时,我将ofn.lpstrFile指向分配用于保存结果的缓冲区,并将ofn.nMaxFile设置为它的长度。我遇到的问题是,如果用户选择的文件名太多以至于缓冲区会溢出,则对GetOpenFileName的调用会返回FALSE,然后CommDlgExtendedError()会返回FNERR_BUFFERTOOSMALL。这