События и делегаты
От: chaika_sv Россия wmryb.ru
Дата: 29.10.10 07:04
Оценка:
Всем привет.

Помогите, пожалуйста, разобраться с событиями и делегатами.
С одной стороны, у меня есть dll, написанная на C++/CLI. DLL должна инициировать события.
С другой стороны — C#-приложение, которое должно обрабатывать события от dll.

Привожу часть кода DLL:

    public delegate void MyEventHandler();  //  делегат

    public ref class clDriverMgr: System::Object
    {
        public:
            event    MyEventHandler^ MyEvent;  //  событие
    ...


Теперь привожу код из C#-приложения:

    public delegate void MyEventHandler();  //  всё тот же делегат

    public event MyEventHandler MyEvent;  //  событие

    private void MyHandlerThrower()  //  обработчик события
    {
        ...
    }

    //  далее в коде есть строка, которая ищет событие в классе source (clDriverMgr) и добавляет к нему обработчик
    source.GetEvent("MyEvent")
        .AddEventHandler(instance,
            new MyEventHandler(MyHandlerThrower));


Так вот на последней строке появляется Exception:

Невозможно преобразовать объект типа "VideoLink.Links.MyEventHandler" к типу "nsDriverMgr.MyEventHandler"


Поясню, что "VideoLink.Links.MyEventHandler" — это в C#, а "nsDriverMgr.MyEventHandler" — это для dll.

В принципе, понимаю, что что-то не так с делегатами, но что именно? Заранее благодарю за помощь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.