Я написал сборку .net с помощью C# для выполнения функций, которые будут использоваться как управляемым, так и неуправляемым кодом. У меня есть проект VB6, который теперь должен использовать сборку через COM.Ссылка на сборку .NET в VB6 не будет работать
Я создал свою сборку .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
. Это нормально?
Кто-нибудь знает, что может быть неправильным или какие шаги я пропустил. Благодаря!
Работал как очарование.Большое спасибо! Я запустил инструмент regasm с помощью команды/codebase./Codebase также создает для вас файл tlb. Спасибо всем за ваши ответы. – dretzlaff17