Исключение приведения не легко объясняется проблемой с каталогом программы по умолчанию. Это все, что должно отличаться при запуске приложения из среды IDE VB6, а не напрямую.
Вам придется использовать отладчик, чтобы узнать, что происходит не так. К счастью, это легко, когда вы используете VB6. Начните с открытия вашего .NET проекта в Visual Studio. Проект + Свойства, вкладка Отладка. Выберите «Запустить внешнюю программу», нажмите кнопку с точками и перейдите к vb6.exe. Он должен находиться в каталоге c: \ program files \ microsoft visual studio \ vb98 \ vb6.exe, если вы использовали параметры установки по умолчанию.
Можно установить для параметра «Параметры командной строки» путь к вашему проекту .vbp, чтобы среда IDE автоматически загружала его. Не обязательно.
Отладка + Исключения, установите флажок «Исключение общего времени выполнения». Нажмите F5, чтобы запустить отладчик. Теперь откроется среда VB6, при необходимости загрузите проект VB6. Запустите проект и воссоздайте случай сбоя. Это должно вызвать точку останова в отладчике Visual Studio. Возможно, вам придется переключиться на него вручную, кнопка на панели задач должна мигать. Используйте обычные средства отладки, чтобы выяснить, почему возникло исключение.
Обратите внимание, что вы также можете установить точки останова в Visual Studio, что полезно, если вам нужно пошагово пройти по коду, чтобы выяснить, в чем дело. Когда вы нажимаете F5, индикатор точки останова становится пустым, так как DLL еще не загружена. Как только ваш проект VB6 создаст объект класса из вашего кода .NET, DLL будет загружена (отображается в окне «Вывод»), и индикатор точки останова загорится. Если этого не произойдет, вам может потребоваться запустить Regasm.exe с параметром / codebase, чтобы библиотека DLL в папке bin \ Debug проекта была зарегистрирована как COM-сервер.