Может ли проект VB6 использовать .Net .dll

#.net #vb6 #asp-classic #vb6-migration

#.net #vb6 #asp-classic #vb6-миграция

Вопрос:

У меня есть проект VB6. Мой вопрос в том, могу ли я вызвать .NET .dll, который содержит все бизнес-правила проекта (из приложения VB6)?

В принципе, у меня есть проект VB6 с классическим проектом ASP, вызывающим vb6 / ActiveX .dll. Требование состоит в том, чтобы выяснить наилучший способ обновления приложения. Итак, если я обновлю ActiveX .dll, может ли приложение VB6 вызвать этот новый .NET .dll?

Я предполагаю, что тот же вопрос применим и к классическому проекту ASP…

Спасибо!

Ответ №1:

Да, но вам нужно создать .Сетевые типы Com видны. Также смотрите комментарий Мэтта ниже относительно индексов и строк массива. Тот факт, что это возможно, не делает это хорошей идеей…

Комментарии:

1. Похоже, в данном случае это может быть хорошей идеей. Начните с обновления бизнес-логики в новой .NET dll. Затем обновите другую часть и т.д., Пока не перепишете графический интерфейс.

2. Должен согласиться. Если проект не просто действительно большой, вероятно, потребуется больше работы для создания вызываемой Vb6 .net lib, чем для переноса вещей на .net и продвижения вперед. Перенос peicemeal всегда звучит великолепно, но обычно оно того не стоит, если размер проекта не достаточно велик.

3. 1 — Следует иметь в виду некоторые другие соображения. Как массивы на основе 1 в VB6 по сравнению с массивами на основе 0 в .NET. Строка фиксированной длины не полностью поддерживается в .NET, и типы данных имеют разные размеры для одного и того же типа (VB6 Long = .NET Int32)

4. но что, если вы переносите dll и хотите сохранить клиентское приложение нетронутым (без перекомпиляции)?

5. Возможно, это может помочь перевести членов классаизСЕТИвVisual Basic-6