我用VC++开发了windows应用程序。我使用一个CFileDialog来显示一个对话框。然而,当我右键单击对话框时,它就崩溃了。在XP中,相同的代码工作得很好。我读过一些Vista风格不再受支持的地方。因此,我对代码进行了如下修改。不过,我还是撞车了
CFileDialog dlg(FALSE, _T("*.xml"),strFileName ,OFN_HIDEREADONLY,
_T("(*.xml)|*.xml|(*.*)|*.*||"), NULL, 0,FALSE);
if (IDOK == dlg.DoModal()) //crash here on right click
{
//CString folder = dlg.GetFolderPath();
strFileName = dlg.GetPathName();
SetFileName ( T2CW (strFileName));
}下面是堆栈跟踪
ole32!CServerContextActivator::CreateInstance+245 ole32!ActivationPropertiesIn::DelegateCreateInstance+5e ole32!CApartmentActivator::CreateInstance+88 ole32!CProcessActivator::CCICallback+4e ole32!CProcessActivator::AttemptActivation+33 ole32!CProcessActivator::ActivateByContext+7f ole32!CProcessActivator::CreateInstance+77 CProcessActivator::ActivateByContext+7f ole32!ICoCreateInstanceEx+5f5 ole32!ICoCreateInstanceEx+5f5 ole32!ole32!en2 20!en23#!en25#!en2!en29#!en31#!:ShowContextMenu+1f1 shell32!CDefView::_OnContextMenu+110 shell32!CDefView::WndProc+889 shell32!CDefView::s_WndProc+7c user32!UserCallWinProcCheckWow+1ad user32!CallWindowProcAorW+dc user32!CallWindowProcW+18 comctl32_7fefbdd0000!CallOriginalWndProc+1d comctl32_7fefbdd0000!CallOriginalWndProc+1d!en0!en24#!en26#!en28#!en30#!ntdll!en33#!en35#!en37!uxtheme!uxtheme!uxtheme!en43!en45##46!#en46!shell32!CListViewHost::s_ListViewSubclassWndProc+31e comctl32_7fefbdd0000!en22#!en24#!en26#!en1!en30#!en32#!en34#!en38#!en40#en42#en44#en46##47!en34#!en38#!en40#en42#en44#en46#en32#!en34#!en38#!en40#en42#en44#en46#en32#!en34#!en38#!en40#en42#en44 en46 en32#!en34#!en38#!en40#en42#en44#en46#en32#!en34#!en38#en40#en42#en44::s_ListViewSubclassWndProc+31e comctl32_7fefbdd0000!CallNextSubclassProc+8c comctl32_7fefbdd0000!MasterSubclassProc+e7 user32!UserCallWinProcCheckWow+1ad user32!DispatchMessageWorker+3b5 user32!IsDialogMessageW+153 user32!DialogBox2+197 user32!InternalDialogBox+135 user32!InternalDialogBox+135 user32!DialogBoxIndirectParamAorW+58 InternalDialogBox+135 19#!en21#!!en26#!ntdll!
发布于 2013-10-03 06:44:38
如果我从上下文菜单禁用NVDIA CPL上下文菜单扩展,则此问题将得到解决。然而,这仍然是一个谜,因为同样的代码也适用于其他应用程序。
https://stackoverflow.com/questions/19043936
复制相似问题