2014-11-24 3 views
0

У меня есть aC# com видимая dll, и я хочу вызвать эту DLL в проекте vb6, которая также генерирует dll.Я не использую regasm.exe для этого вместо этого я использую манифестное поколение для C# dll, а затем создаю его tlb и вызывая его из vb6. Я создал два интерфейса в C# dll, один из них - Itest, а другой - Itest2, сделал оба интерфейса совместимыми и добавил Guid для обоих интерфейсов, есть два класса с именем testimp и classimp, которые реализуют оба интерфейса с уважением. Эти оба класса являются приемлемыми, Classinterface типа как нет и иметь свой соответствующий идентификатор GUID.Как я могу ссылаться на C# dll в проекте библиотеки vb6

Проблема в том, что я могу создать экземпляр только класса testimp из моего проекта vb6, а не класса classimp.

+0

VB6 ** очень ** враждебен любой попытке сделать манифестную работу. Главные проблемы состоят в том, что он не поддерживает поддержку встраивания манифеста в качестве ресурса и что манифест не может работать, когда вы используете VB6 IDE для отладки. Единственный выстрел, который у вас есть, - это только попробовать это * после того, как вы отлаживали и тестировали свой код и готовы к развертыванию. Используйте mt.exe, чтобы вставить манифест в качестве идентификатора ресурса № 2 в dll VB6. И подумайте, что вам еще нужно зарегистрировать dll VB6, чтобы его можно было найти в клиентской программе, чтобы вы не были на самом деле впереди. –

ответ

1

регистрации COM обычно ссылаются из TLB GUID - который должен быть зарегистрирован в реестре

Обратите внимание, что в Windows Vista и выше (IIRC), это также возможно, чтобы развернуть с регистрации COM-приложений локальной в .manifest файле:

+0

Не могли бы вы рассказать о последней строке своего ответа? – raunak

+0

Я думаю, вам нужно подробно остановиться на вашей цели/проблемах. Последняя строка - гиперссылка, она не требует пояснений. На SO мы можем помочь людям, которые застряли с конкретными шагами в решении. – sehe

+0

Я отредактировал весь вопрос. Упование это может объяснить мою проблему ясно. – raunak

0

Если ваша проблема установлена ​​на пользователя, используйте Regasm для создания regfile, а затем отредактируйте regfile, чтобы изменить ссылки на HKCR на HKCU \ Software \ Classes.