“Обнаружен неправильный аргумент” при запуске ленточного приложения MFC для Windows XP

StackOverflow https://stackoverflow.com/questions/514535

  •  21-08-2019
  •  | 
  •  

Вопрос

Я разработал ленточное приложение для Vista, используя VS 2008.Это прекрасно работает в Vista.Я статически связываю MFC, чтобы я мог запустить его и на XP.

Но когда я запускаю его в XP, появляется диалоговое окно с сообщением "Требуемый ресурс был недоступен".Позже, если я нажму OK в этом диалоговом окне, появится еще одно сообщение с надписью "Обнаружен неправильный аргумент".Многие такие диалоги ("Столкнулся с ....") следуют (один за другим), пока я не завершу его из диспетчера задач.

Интересная вещь, которую я заметил, это то, что этот сценарий возникает, когда я просто навожу указатель мыши на панель ленты.Я больше ничем не занимаюсь.Затем я открываю диспетчер задач и вижу, что объем используемой памяти увеличивается на 8 байт с каждой секундой.В конечном итоге последовал описанный выше сценарий.

?????

Это было полезно?

Решение 2

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

Я вызвал GetDC() при обновлении элементов управления ленточной панелью (ON_UPDATE_COMMAND_UI), но не выпустил его.Выпустив его с помощью ReleaseDC (..), проблема была исправлена.

Спасибо за все ответы.

Другие советы

Вполне возможно, что лента является частью общих элементов управления Win32 в Vista (следовательно, недоступна в XP).Другими словами, хотя у вас есть статически связанный MFC, это может быть не MFC, который содержит ресурс, который вы ищете.

Создаю сообщество wiki, поскольку я действительно понятия не имею, правильно ли это :-).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top