ошибка "429" AcitveX Component Не удается создать объект (в vb6) - PullRequest
1 голос
/ 11 марта 2012

У меня есть одна проблема в vb6. Я создал файл .tlb в VB.net 2005, добавив класс Com в проект. Я построил проект, я получил .tlb файл и .dll файлы при сборке проекта, я выбрал «Зарегистрироваться для Com Interop» из свойств проекта и построил. Он регистрируется автоматически, и я могу использовать созданный файл .tlb на этом ПК в Vb6, работающем нормально. если я развертываю приложение на другом ПК и запускаю, я получаю сообщение об ошибке «Ошибка 429 ActiveX Компонент не может создать объект» во время выполнения. Что я должен сделать? Пожалуйста, помогите мне как можно скорее. Я не могу развернуть приложение на клиенте из-за вышеуказанной ошибки.

Одним из возможных решений является установка фрейма .net на клиентском ПК. Я никогда не хочу устанавливать .net фреймворк. Любое другое решение будет наиболее полезным.

Ответы [ 2 ]

6 голосов
/ 11 марта 2012

Если вы создали DLL на языке .NET (например, VB.NET), на целевом компьютере должна быть установлена ​​.NET Framework для использования DLL.

Это жесткое и быстрое требование, не зависящее от того, как вы используете DLL, будь то приложение VB 6 через COM-взаимодействие или иное. Это также препятствие, с которым вам придется сначала перепрыгнуть, прежде чем беспокоиться о таких вещах, как регистрация компонентов COM, как подсказывает ответ Uday .

Если вам не нужна зависимость от .NET, вам нужно использовать другую среду для создания ActiveX DLL; Возможны варианты C ++ или VB 6.

0 голосов
/ 11 марта 2012

Один из вариантов может заключаться в том, что при развертывании вам необходимо зарегистрировать этот файл .tlb в системном реестре с помощью команды regsvr32 в командной строке.Обычно статические библиотеки не работают, пока они не зарегистрированы в системном реестре.Возможно, вы видели, как многие программы регистрируют компоненты во время установки, такие как «Регистрация компонентов типа» или «Регистрация компонентов COM» (для тех, кто особенно работает в сети).Эти компоненты - не что иное, как родные COM-библиотеки и библиотеки.поэтому при создании проекта развертывания добавьте несколько логинов сценариев для регистрации библиотек thode и tlb в системном реестре, используя:

regsvr32 <path to tlb/dll>

, вы должны рекурсивно вызывать эту команду для каждого dll / tlb, который вы хотите зарегистрировать в системе.Например, если у вас 4 dll и 2 tlbs, вы должны вызывать их 6 раз, указывая путь dll и tlb по одному.

...