Как устранить ошибку «Ошибка выполнения 429: компонент ActiveX не может создать объект»? - PullRequest
12 голосов
/ 18 ноября 2010

В моей компании есть приложение VB6, использующее Crystal Reports 7, которое клиент попросил установить в Windows 7 32-разрядную версию. В настоящее время он установлен на компьютерах с Windows XP 32bit SP2 на клиенте. Подключение к БД осуществляется через ODBC к экземпляру SQL Server 2000 на другом сервере.

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

Я смотрел на следующее:

  • Регистрация всех dll и ocx файлов с использованием regsvr32. Некоторые не будут регистрироваться, так как они либо уже зарегистрированы, либо появится следующее сообщение «Убедитесь, что« [name] .dll »является допустимым файлом DLL или OCX, а затем повторите попытку». Я читаю эту ветку форума относительно этого: http://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/0653f685-4526-45d9-89f3-8c479a6b4c62
  • Контролировал открытие приложения с помощью приложения ProcessMonitor, чтобы попытаться определить, есть ли отсутствующий файл dll или ocx - похоже, это не так.
  • Рассмотрела заявку в соответствии с этим списком и, похоже, ничто не противоречит этим рекомендациям

Я заметил два элемента в базе знаний, которые относятся к этому

  • http://support.microsoft.com/kb/281848 - comdlg32.ocx, входящий в комплект приложения, имеет версию 6.0.81.69, а в папке system32 на компьютере разработчика (32-разрядная версия WinXP) - 6.1.97.82. Однако, если это было проблемой, то, конечно, это не будет работать в настоящее время?
  • http://support.microsoft.com/kb/184898 - Я не уверен, как подтвердить, что это проблема

Наконец, из-за сложностей мне не разрешено вносить изменения в код этого приложения. Даже если бы я был, я не программист VB6, просто парень, который получил ужасно поддерживающий проект! Если потребуется изменение кода, мне придется исследовать режим WinXP.

Обновление : я получаю ту же ошибку в режиме XP. Это Win XP с SP3 VM. Это работает на виртуальной машине Win XP с пакетом обновления 2 (SP2), есть ли в SP3 что-то, что могло бы вызвать это? Или это просто факт, что это XP Mode?

Ответы [ 4 ]

6 голосов
/ 22 августа 2016

Я получил ту же ошибку, но решил ее с помощью regsvr32.exe в C: \ Windows \ SysWOW64.Потому что мы используем систему x64.Так что, если ваша машина также x64, ocx / dll должны быть зарегистрированы также с regsvr32 x64 версии

3 голосов
/ 22 ноября 2010

Файл msrdo20.dll отсутствует в установке.

Согласно Заявлению о поддержке Visual Basic 6.0 для Windows Vista, Windows Server 2008 и Windows 7 этот файл должен распространяться вместе с приложением.

Я не уверен, почему это не так, но мое решение - разместить файл где-нибудь на машине и зарегистрировать его, используя regsvr32 в командной строке, например:

regsvr32 c:\windows\system32\msrdo20.dll

В идеальном мире вы можете объединить это с распространяемым.

1 голос
/ 06 декабря 2015

Эта загрузка исправила мою ошибку во время выполнения VB6 EXE и Access 2016 (с использованием ACEDAO.DLL) 429. У меня ушло 2 долгих дня, чтобы ее устранить, потому что существует так много причин 429.

http://www.microsoft.com/en-ca/download/details.aspx?id=13255

ЦИТАТА по ссылке: «Эта загрузка установит набор компонентов, которые могут использоваться для облегчения передачи данных между файлами Microsoft Office 2010 и приложениями, не относящимися к Microsoft Office» *

0 голосов
/ 22 ноября 2010

Вы говорите, что это работает после установки IDE VB6, поэтому проблема, вероятно, заключается в том, что используемые вами компоненты зависят от устанавливаемой среды выполнения VB6.Windows по умолчанию.

Установка среды IDE - один из способов получить среду выполнения.Для компьютеров, не являющихся разработчиками, вместо этого следует использовать «распространяемый» установочный пакет от Microsoft.

Вот один установщик VB6 от Microsoft.Я не уверен, что это будет правильная версия для ваших компонентов:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7b9ba261-7a9c-43e7-9117-f673077ffb3c

...