2010-11-18 1 views
11

У моей компании есть приложение VB6 с использованием Crystal Reports 7, которое клиент попросил установить на Windows 7 32 бит. В настоящее время он установлен на компьютерах под управлением Windows XP 32 бит SP2 на клиенте. Соединение с БД выполняется с помощью экземпляра ODBC для SQL Server 2000 на другом сервере.Как устранить «Ошибка времени выполнения» 429: компонент ActiveX не может создать объект? »

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

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

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

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

  • 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. Это работает на Win XP SP2 VM, возможно ли что-то в SP3, которое могло бы вызвать это? Или это просто факт, что это режим XP?

+0

Установили ли вы Microsoft Scripting Engine? – kyndigs

+0

Разве это не для VBScript? Извините мое невежество, если это не так. – RLT

+0

Проверьте ссылки проекта в своей VB6 IDE и убедитесь, что все эти DLL/OCX проверены там. – MicSim

ответ

2

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

Согласно the Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008 and Windows 7, этот файл следует распространять вместе с приложением.

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

regsvr32 c:\windows\system32\msrdo20.dll 

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

0

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

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

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

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

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

+0

Я случайно загрузил этот файл ранее сегодня, к сожалению, после установки на XP SP3 приложение все еще не запускалось, и я не вижу другого распространяемого, более подходящего для XP. – RLT

+0

С тех пор я только что обнаружил три библиотеки DLL, отсутствующие на машине SP3, которые присутствуют на машине SP2 (и добавление их на машину SP3, и их регистрация позволяет запустить приложение!). Это msrdo20.dll, msbind.dll и msstdfmt.dll. Я пытаюсь найти теперь, откуда они пришли, и если они доступны в другом распространенном месте где-то. – RLT

+1

Сузить его до msrdo20.dll как причину проблемы. – RLT

1

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

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

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

1

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

 Смежные вопросы

  • Нет связанных вопросов^_^