![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Guest |
|
|||
|
Unregistered |
Что-то у меня с событиями не клеится.
Почему то в приложение это событие не приходит. Спасибо. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
может просто обработчик не назначен?
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 6 Всего: 118 |
А ту уверен, что надо именно virtual ? Может правильнее override ? Хотя я в такую область не залезал, так что попытка чисто интуитивная. Если найдешь решение - большая просьба опубликовать. |
|||
|
||||
| Guest |
|
||||
|
Unregistered |
По моему я дошел до корней проблемы, но решения не знаю.
При создании компонента делается следующее:
Кто-нибудь знает в чем тут дело. На Delphi код следующий и работает:
|
||||
|
|||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
на сколько я понимаю: 1. метод Advise требует что бы первый параметр поддерживал интерфейс IAdviseSink, точнее это указатель на этот интерфейс. 2. this в данном случае класса CTestComp, следовательно CTestComp должен реализовывать интерфейс IAdviseSink, может как раз он и нереализован? з.ы может я ваще не в ту степь полез? -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Да, ты все верно говоришь
класс CTestComp объявлен как public class CTestComp : System.ComponentModel.Component, IDCCManSink{} IDCCManSink - это и есть тот самый интерфейс. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
Покажи как описан IDCCManSink.
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
using System;
using System.Runtime.InteropServices; namespace CTestCompLib { public delegate void DelegateLogIpAddr(uint dwIpAddr); [ComImport(), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), GuidAttribute("09994751-A5A2-4306-899C-A47E6C4525B7")] //[Guid("A7B88840-A812-11cf-8011-00A0C90A8F78")] public interface IDCCManSink { event DelegateLogIpAddr EventLogIpAddr; void OnLogIpAddr(uint dwIpAddr); void OnLogTerminated(); void OnLogActive(); void OnLogInactive(); void OnLogAnswered(); void OnLogListen(); void OnLogDisconnection(); void OnLogError(); } |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
хз, вроде все ок.
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
а что происходит? -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Когда кидаю компонент на форму вылетает ошибка:
An exception occurred while trying to create an instance of CTestCompLib.CTestComp. The exception was "Object reference not set to an instance of an object.". |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
т.е. FIDCCMan получается равен null ?
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Навернное.
|
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
фигурируют два объекта tmpIDCCManTestObj и FIDCCMan, может это должен быть один и тот же объект и одна переменная?
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
В коде на Delphi так и есть
но на C# у меня не получилось так сделать. Если ты знаешь как, пожалуйста подскажи. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |