Хорошо, мой заголовок может быть недостаточно ясным. Я работаю с приложением, для которого мы можем разработать макросы VB6. Этот макрос должен работать с библиотекой .NET, которую я также разработал. Когда я запускаю приложение в режиме x86 и пытаюсь запустить макрос, он работает нормально, я могу получить доступ к методам класса и всему остальному.
Но когда я делаю то же самое в режиме x64, я получаю сообщение об ошибке: "Automation server can't create object"
Что действительно странно, так это то, что я не использую какие-либо неуправляемые библиотеки COM x86, что было бы проблемой для архитектуры x64. Когда я это делаю: "Dim myClass as new MyClass.App"
он работает, но когда я вызываю, например, метод myClass.Start()
, я получаю эту ошибку. И я попробовал просто использовать MsgBox('hello world')
в моем Start
методе, чтобы убедиться, что он не имеет ничего общего с моим кодом, но все равно не повезло. Я связываю свой макрос со своим классом с помощью TLB
файла.
Я попытался зарегистрировать свою DLL в RegAsm
, но она все еще не работает в x64. Есть ли способ сгенерировать как x86, так и x64 версии моего TLB
? Затем я бы добавил обе ссылки, и если версия x64 выдает ошибку в методе Start, я просто вызываю метод x86 (не идеальное решение, но все же ..).
Есть идеи, как решить эту проблему?