VB6 + компонентодно разработанное приложение в Windows7

Это вопрос устранения неполадок.

Среда разработки нашего приложения - VS2005 C/C++, графический интерфейс на основе VB6.

мы также используем компонент для управления ActiveX (vsflexgrid8).

Приложение хорошо работало в Windows XP, но в Windows 7 возникли проблемы с графическим интерфейсом.

перестроен почти весь код C/C++ и код VB6 в Windows 7

  • наша система сборки настолько плоха, и, поскольку я присоединился к этой команде месяц назад, сборка всех кодов немного сложна.

  • Но эта (может быть) последняя проблема не связана со сборкой, я думаю.

все остальные процессы и процесс графического интерфейса запускаются хорошо. но когда вы щелкаете какое-либо меню в графическом интерфейсе, все пользовательские элементы управления становятся недействительными.

сообщение об ошибке выглядит так:

«-2147417848 (80010108)» произошла ошибка времени выполнения.

Ошибка автоматики.

Вызванный объект отключен от клиента.

вышеприведенное сообщение не идентично реальному сообщению, поскольку настоящее сообщение является нашим родным языком (корейским).

при поиске в Google с этим сообщением я могу собрать некоторую информацию.

наиболее вероятным случаем является использование OLE-автоматизации для объектов Microsoft Office.

Но наш графический интерфейс (разработанный на VB6) не использует объекты Microsoft Office.

И вызывающие проблемы страницы/элементы управления обычно используют модули componentone.

Так что, если сталкивались с подобными проблемами, пожалуйста, помогите мне.

В режиме виртуальной машины Windows XP проблем нет. Но я очень хочу развиваться в этой среде.

Спасибо за помощь.


person heekyu    schedule 03.09.2010    source источник


Ответы (3)


«Ошибка автоматизации» просто означает, что ошибка возникла в элементе управления ActiveX, но разработчики не добавили к ней описание. Так что причина может быть в чем угодно. Распространенным источником таких ошибок являются ошибки записи в защищенную папку (например, в папку Program Files) или запрещенные действия чтения/записи реестра. Вы можете попробовать установить программу в другое место или запустить ее с повышенными правами.

Надеюсь, это хоть немного поможет.

person Dabblernl    schedule 04.09.2010
comment
Спасибо за помощь. К сожалению, я еще не знаком с программами VB6 или UI, и в дальнейшем у меня есть некоторые работы, которые необходимо выполнить до следующей недели. так что этот суд будет отложен - person heekyu; 07.09.2010

Как говорит Дабблер, это означает, что в компоненте ActiveX произошла ошибка.

  • Выполняется ли какой-либо из ваших кодов C или C++ до возникновения этой ошибки?
  • Вы используете последнюю версию элемента управления ComponentOne? Возможно, стоит проверить, поддерживается ли он на Windows 7, и обратиться в их техподдержку?
  • Вы можете отладить VB6 и C/C++ в Windows 7, чтобы отследить, какой фрагмент кода вызывает эту проблему. Это возможно с помощью Visual Studio 2005, которая, как вы говорите, у вас есть, или WinDbg, которая бесплатна.
person MarkJ    schedule 04.09.2010

Я решил эту проблему с помощью обновлений Windows.

Поскольку одновременно выполняется около 20–30 обновлений, я не могу знать, какое обновление решает эту проблему.

Я предполагаю, что обновления безопасности Visual Studio 2005 могут быть причиной этой проблемы.

Во всяком случае, мое приложение хорошо работает на моем компьютере с Windows 7.

Спасибо всем.

person heekyu    schedule 16.09.2010