Я написал сборку .net, используя c # для выполнения функций, которые будут использоваться как управляемым, так и неуправляемым кодом. У меня есть проект VB6, который теперь должен использовать сборку через COM.
Я создал сборку .net, убедился, что ComVisible имеет значение true и зарегистрировано для взаимодействия COM через свойства проекта.
public class MyClass
[ComVisible(true)]
public string GetResponse()
{
return "Testing Response"
}
}
Я собираю сборку и копирую файл в папку. TestInterop.dll
Затем я запускаю командный файл, чтобы зарегистрировать инструмент сборки, чтобы зарегистрировать объект для COM.
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\
regasm "c:\Program Files\TestApp\TestInterop.dll" /tlb:TestInterop.tlb
Я открываю новое приложение VB6 и ссылаюсь на TestInterop.dll
В VB6 я пишу следующий код, и он компилируется.
Dim obj as TestInterop.MyClass
Set obj = new TestInterop.MyClass
Dim strTest as string
strTest = obj.GetRespose()
Когда я запускаю программу, она выдает ошибку в строке obj.GetResponse ().
Run-time error' -2147024894 (80070002'):
Automation error
The system cannot find the file specified
Кроме того, intellesense не работает на obj. Мне пришлось набрать GetResponse
метод. Это нормально?
Кто-нибудь знает, что может быть не так или какие шаги я пропустил. Спасибо!