Как устранить "ошибка выполнения '429': компонент ActiveX не может создать объект"?

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

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

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

  • регистрация всех файлов dll и ocx с помощью regsvr32. Некоторые не будут регистрироваться, поскольку они либо уже зарегистрированы, либо дано следующее сообщение "убедитесь, что "[имя].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 на dev машина (бит WinXP 32) 6.1.97.82. Однако если это проблема, то, конечно, она не будет работать в настоящее время?
  • http://support.microsoft.com/kb/184898 - я не уверен, как подтвердить, что это проблема

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

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

4 ответов


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

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

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

regsvr32 c:\windows\system32\msrdo20.dll

в идеальном мире вы бы пакет с распространяемый пакет.


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


эта загрузка исправила мой VB6 EXE и доступ к 2016 (используя ACEDAO.DLL) Ошибка времени выполнения 429. Мне потребовалось 2 долгих дня, чтобы решить это, потому что есть так много причин 429.

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

цитата из ссылки: "Эта загрузка установит набор компонентов, которые могут быть использованы для облегчения передачи данных между системными файлами Microsoft Office 2010 и приложениями, не относящимися к Microsoft Office"


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

среда выполнения VB6 по умолчанию не установлена в Windows.

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

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

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