От работы преобразования для моей компании CAD/CAM приложений. Я не рекомендую идти снизу вверх, заменяя базовую DLL или добавляя основные функциональные возможности через .NET.
У меня было намного лучшие результаты, работающие сверху вниз, начиная с замены форм и работы в Core DLL.
Самым большим препятствием было обеспечение подходящего принтера и графического интерфейса. Но Microsoft выпустила комплект совместимости с принтером, который решил обе проблемы. К счастью, когда .NET был всего лишь проблеском на горизонте, я поместил все графические и печатные вызовы VB6 за интерфейс.
Снова начните с замены формата на сборку .NET, вызывая ваши основные библиотеки COMM.
Если ваша логика переплетается с формами, я настоятельно рекомендую отделить ее от новой COM DLL IN VISUAL BASIC SIX. Попросите новую DLL взаимодействовать с формой через интерфейс. Форма будет тонкой оболочкой, передающей события в DLL и выполняющей различные операции (рисование, повторная компоновка и т. Д.
Если вы не можете избежать использования сборки .NET для предоставления новой функциональности, то создайте серию четко определенных и ограниченные интерфейсы для управления взаимодействием между стороной .NET и стороной VB6/COM.
Например, мы хотели добавить программное обеспечение для управления офисами/работой для нашей отрасли в спектр программного обеспечения, которое мы продаем. .NET framework.Он должен был взаимодействовать с нашим программным обеспечением CAD/CAM, поэтому мы создаем серию интерфейсов, где каждый может вытаскивать необходимую информацию или запускать действие друг от друга.
Наконец, если .NET-классы реализуют COM-интерфейсы, большая проблема заключается в том, что вам необходимо убедиться, что любые параметры, являющиеся частью свойств в COM, должны быть объявлены. ByVal или .NET не смогут реализовать свойство и не выполнить для реализации интерфейса. Это включает в себя параметр ценностный подведенный или Set
Даун-голос все, что вы хотите, но с использованием коллекций .NET и т. Д., Поскольку процедура из VB6 * действительно * не является хорошей идеей. –