Создать приложение VB6, используя класс в DLL, а затем заменить его после сборки? - PullRequest
7 голосов
/ 17 ноября 2011

Так что мой вопрос относительно прост, могу ли я создать приложение VB6, которое ссылается на класс в dll, а затем заменить этот dll другим во время выполнения?

Теперь мое первоначальное предположение ... нет шансов в VB6.

Так что мои мысли обратились к dll взаимодействия VB.net. Могу ли я сделать это здесь, а затем вызвать Interll DLL из VB?

Опять же, я думаю, что нет ... но я был бы счастлив, если бы кто-то знал по-другому.

Единственное, что я думаю, на самом деле сработает, это DI в .Net, но я ограничен .net 2 или 3.5 при большом толчке, поэтому я не знаю, возможно ли это.

Так что для фона ....

У меня есть dll, который использует конкретный сайт, но мы не хотим, чтобы это распространялось среди всех. Вместо этого мы хотим создать dll-клон, который имеет только настройку интерфейсов, чтобы завершить сборку VB6. Когда он попадает на сайт, который в этом нуждается, они хотят заменить фиктивную dll и вместо этого добавить свою версию.

Примечание: мы используем RegFreeCOM, когда он устанавливается, поэтому у меня есть файлы манифеста, с которыми я мог бы поиграть при необходимости.

Любые идеи будут высоко оценены.

Ник

Ответы [ 2 ]

9 голосов
/ 17 ноября 2011

Это COM dll, так что он не связан статически с VB6 exe, при условии, что clsids и идентификаторы интерфейса одинаковы в библиотеке типов для обеих DLL, вы можете поменять их местами, как считаете нужным. (Если это dll VB6, то это тривиально, если вы используете опцию сборки «двоичная совместимость»)

0 голосов
/ 17 ноября 2011

Вы могли бы также использовать позднюю привязку вместо того, чтобы делать ссылку непосредственно в своем коде VB6, вы должны создать объект, а затем установить этот объект для экземпляра. Примеры и информация:

MVPS

Microsoft

...