我有一个使用 MFC 功能区的应用程序。它是在 Visual Studio 2010 中开发的。我遇到了一个奇怪的问题。该应用程序在 Windows 7 和 Windows 2008 R2 中运行良好。但是,当它尝试从资源加载功能区时,它会在 Windows 2008 中崩溃。确切的行是
功能区栏->LoadFromResource(IDR_RIBBON1); //IDR_RIBBON1 是资源id。
堆栈跟踪如下
gui.exe!ATL::CComPtrBase<IXMLDOMDocument>::~CComPtrBase<IXMLDOMDocument>() Line 162 + 0xa bytes C++
gui.exe!ATL::CComPtr<IXMLDOMDocument>::~CComPtr<IXMLDOMDocument>() + 0x11 bytes C++
gui.exe!ATL::CComQIPtr<IXMLDOMDocument,&_GUID_2933bf81_7b36_11d2_b20e_00c04f983e60>::~CComQIPtr<IXMLDOMDocument,&_GUID_2933bf81_7b36_11d2_b20e_00c04f983e60>() + 0x11 bytes C++
gui.exe!ATL::CXMLNode<IXMLDOMDocument>::~CXMLNode<IXMLDOMDocument>() Line 47 + 0xb bytes C++
gui.exe!ATL::CXMLDocument::~CXMLDocument() Line 269 + 0x13 bytes C++
gui.exe!CXMLParserRoot::~CXMLParserRoot() Line 423 + 0x43 bytes C++
gui.exe!CMFCRibbonInfo::Read(unsigned char * lpBuffer=0x013acb14, unsigned int nSize=83851) Line 703 + 0x15 bytes C++
gui.exe!CMFCRibbonInfoLoader::LoadFromBuffer(unsigned char * lpBuffer=0x013acb14, unsigned int nSize=83851) Line 112 + 0x1b bytes C++
gui.exe!CMFCRibbonInfoLoader::Load(const char * lpszResID=0x000005d8, const char * lpszResType=0x0000001c, HINSTANCE__ * hInstance=0x00400000) Line 85 + 0x1c bytes C++
gui.exe!CMFCRibbonBar::LoadFromResource(const char * lpszXMLResID=0x000005d8, const char * lpszResType=0x0000001c, HINSTANCE__ * hInstance=0x00000000) Line 740 + 0x17 bytes C++
gui.exe!CMFCRibbonBar::LoadFromResource(unsigned int uiXMLResID=1496, const char * lpszResType=0x0000001c, HINSTANCE__ * hInstance=0x00000000) Line 731 C++
非常感谢任何有关如何解决此问题的建议和建议。做,问你是否需要更多信息。