Darryl Major Ответов: 3

Сбой выполнения приложения MDI с использованием visual studio 2010.


Я успешно компилирую, связываю и выполняю приложение MDI с помощью Microsoft Visual Studio 2010. Visual Studio (pro edition) работает под управлением Windows XP. Однако после автоматического обновления afxwin.h корпорацией Майкрософт приложение строится без ошибок, но завершается неудачей во время выполнения. Появится диагностическое сообщение Windows (например, "описание файла обнаружило ошибку. Извините за неудобства").

Я был бы признателен узнать, сталкивались ли другие с этой проблемой. Во время сеанса отладки я обнаружил, что точкой отказа была линия:

По cruntimeclass* pClassThis = GetRuntimeClass() ;

содержащийся в функции CObject:: IsKindOf(const RuntimeClass* pClass) ;

Функция "IsKindOf" содержится в компоненте Windows, objcore.cpp, и вызывается во время выполнения функции InitInstance приложения MDI.

Я не могу определить, решит ли восстановление предыдущей версии afxwin.h эту проблему, так как мне не удалось регулярно создавать резервные копии файлов поддержки Visual Studio.

Что я уже пробовал:

Я пробовал выполнять более старые версии приложения из резервных библиотек. Они исполняют без сбоев. Однако, если я перестрою эти старые версии приложения, используя их исходный код, с которым они были построены, возникает та же ошибка.

3 Ответов

Рейтинг:
2

barneyman

у вас есть исходный код MFC в каталоге \atlmfc\src\mfc - так что отладьте функцию и найдите, где она взрывается

GetRunTimeClass это виртуальный Тхо, так что, вероятно, что-то сломано в вашем импл, прямо или косвенно


Рейтинг:
2

Darryl Major

Спасибо вам обоим (Карсенку и барнейману) за то, что нашли время предложить свои предложения. Я думаю, что лучше всего, в свете моих неудачных попыток (если не считать "клуджинга" кода) исправить эту проблему, переустановить Visual Studio 2010 с моего дистрибутивного диска. Если он будет продолжать терпеть неудачу, я сделаю то, что, как я знал, мне в конечном итоге придется сделать, а именно, обновиться до Windows 7 и Visual Studio 2015 (или 2017, хотя я боюсь иметь дело с ошибками, которые обычно заражают новые и нестабильные версии программного обеспечения).

С уважением,
Дэррил Основных


Рейтинг:
0

KarstenK

Попробуйте "перестроить все" после "очистить все файлы сборки". Иногда MS меняла некоторые файлы, поэтому данные становились непоследовательными. В качестве экстренного исправления вы можете изменить код, чтобы избежать сбоя.

Но основная проблема-это Windows XP: она устарела. Если проблема останется, вам понадобится более старая версия Visual Studio 2010. Вы можете найти какую-то установку и переустановить ее после деинсталляции. (Иногда лучше использовать чистый ПК).

Подумайте об обновлении до Windows 7, Если это возможно.