В предыдущем вопросе я пытался заставить класс C # функционировать как COM-объект для VB5 и 6. Мне удалось заставить COM-объект работать с приложением VB6, но у меня возникли проблемы с его работой с VB5 - - на одной машине.
Для справки, предыдущий вопрос: ЗДЕСЬ .
Моя конечная цель - заставить этот COM-объект работать на VB5, но при запуске он выдает исключение: Ошибка выполнения 80070002. Исследование Stackoverflow указывает ЗДЕСЬ , что этот код ошибки является исключением из файла не найден , Программа VB6 может работать на той же машине, что и программа VB5 (идентичный код), COM DLL правильно зарегистрирована (с помощью regasm.exe), и TLB отображается в списке ссылок в VB5. Код выполнения:
Dim arcom As ARCOMObject.ARCOM_Class
Set arcom = New ARCOMObject.ARCOM_Class
Dim s As String
s = arcom.GetServiceResponse()
MsgBox (s)
Исключение выдается при выполнении строки, создающей экземпляр класса.
В других местах, которые я обнаружил, особенно во второй ссылке на SO, которую я сделал выше, было предложено использовать утилиту depen.exe, чтобы увидеть, какая зависимость может отсутствовать. К сожалению, я не могу найти ни одной такой утилиты ни на своей машине .Net dev, ни на машине VB5. Я не уверен, что это все равно скажет мне что-нибудь, но ...
Итак, что VB5 не может видеть, что VB6 либо видит, либо не нуждается?
ИЗМЕНЕНО В ДОБАВИТЬ:
Важное предостережение - Поскольку он выдает ошибку при запуске из IDE, я никогда не создавал исполняемый файл для его запуска, но когда я наконец сделал снимок и сделал это, потому что это нужно DependencyWalker, я обнаружил сам исполняемый файл работал нормально! Теперь DependencyWalker выдает мне сообщение «Предупреждение: по крайней мере один модуль имеет неразрешенный импорт из-за отсутствия функции экспорта в модуле, зависящем от задержки и загрузки». Вау, это круто, что на самом деле означает это предложение? LOL.
В любом случае, я не уверен, что у меня есть проблема, которую нужно решить в данный момент, но любые предложения приветствуются!