我正在 代码项目的文件对话框文章中进行多项选择,此代码适用于 Visual Studio 2005,但是当我在 Visual Studio 2010 上运行它时,它给了我如下调试断言,
MultiSelect.exe 中 0x76f515de 处的未处理异常:0xC0000005:访问冲突读取位置 0x00000020。
在以下点,
int ret = CFileDialog::DoModal(); //**Point where assersion occures**
整个函数如下(注:-CFECFileDialog 继承自 CFileDialog)
int CFECFileDialog::DoModal()
{
if (Files)
{
delete[] Files;
Files = NULL;
delete[] Folder;
Folder = NULL;
}
int ret = CFileDialog::DoModal(); //**Point where assersion occures**
if (ret == IDCANCEL)
{
DWORD err = CommDlgExtendedError();
if (err == FNERR_BUFFERTOOSMALL/*0x3003*/ && Files)
ret = IDOK;
}
return ret;
}
我也向那篇文章的作者提问,但他没有回复。