Возникла такая проблема.
Есть COM-объект написанный на VB6.0. Написан он довольно криво, в результате чего возникли утечки памяти.
По поводу их исправления я нашел два пути — устранить утечки либо перейти на VB.NET.
Первый путь меня не устраивает, т.к. кода очччень много и нет никаких средств найти утечки в коде (если есть, подскажите).
При реализации второго пути (посредством полуавтоматического конвертирования кода с помощью MSVS 7.0) возникла проблема вызова ф-ций этого объекта из C++ (нативного).
Кто подскажет как вызвать методы компонента .NET из обычной программы на C++, да так, чтобы компонент можно было распространять в дистрибе продукта?
Здравствуйте, kan_izh, Вы писали:
_>Возникла такая проблема.
_>Есть COM-объект написанный на VB6.0. Написан он довольно криво, в результате чего возникли утечки памяти.
_>По поводу их исправления я нашел два пути — устранить утечки либо перейти на VB.NET.
_>Первый путь меня не устраивает, т.к. кода очччень много и нет никаких средств найти утечки в коде (если есть, подскажите).
_>При реализации второго пути (посредством полуавтоматического конвертирования кода с помощью MSVS 7.0) возникла проблема вызова ф-ций этого объекта из C++ (нативного).
_>Кто подскажет как вызвать методы компонента .NET из обычной программы на C++, да так, чтобы компонент можно было распространять в дистрибе продукта?
Есть такая статья в MSDN "Packaging an Assembly for COM"
ms-help://MS.VSCC/MS.MSDNVS/cpguide/html/cpconpackagingassemblyforcom.htm. Там довольно подробно описано как из нетовской сборки сделать код доступным как COM-обЪект для клиентов на других языках.
Здравствуйте, KlimHawk, Вы писали:
_>>Возникла такая проблема.
_>>Есть COM-объект написанный на VB6.0. Написан он довольно криво, в результате чего возникли утечки памяти.
_>>По поводу их исправления я нашел два пути — устранить утечки либо перейти на VB.NET.
_>>Первый путь меня не устраивает, т.к. кода очччень много и нет никаких средств найти утечки в коде (если есть, подскажите).
_>>При реализации второго пути (посредством полуавтоматического конвертирования кода с помощью MSVS 7.0) возникла проблема вызова ф-ций этого объекта из C++ (нативного).
_>>Кто подскажет как вызвать методы компонента .NET из обычной программы на C++, да так, чтобы компонент можно было распространять в дистрибе продукта?
KH>Есть такая статья в MSDN "Packaging an Assembly for COM" ms-help://MS.VSCC/MS.MSDNVS/cpguide/html/cpconpackagingassemblyforcom.htm. Там довольно подробно описано как из нетовской сборки сделать код доступным как COM-обЪект для клиентов на других языках.
Я пытался сделать COM-объект, он даже работал. Но распространять его не получилось.
Дело в том, для того чтобы он мог вызываться, сборка должна быть подписана. Без этого я не смог заставить работать COM.
Но код использует msxml COM-объект, который не является подписаной сборкой, поэтому я не могу подписать свою сборку.
Это можно как-нибудь обойти?