Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: ActiveX и события  (Прочитано 8020 раз)
0 Пользователей и 1 Гость смотрят эту тему.
DaSharm
Гость
« : 20-03-2005 15:16 » new

Содздал событие для Активикс Контрола, но НЕ могу вызвать его из кода проги. Пример:

событие -  FireNetConnectOne()

BOOL CEasyCtrl::GoOnline()
{   
   FireNetConnectOne();   // вот здесь все без проблем, событие вызывается
   return GoOnlineB();   
}

BOOL a()
{
   FireNetConnectOne(); // а здесь нифига...не знает компилятор такого
}

Понимаю, FireNetConnectOne() это член класса CEasyCtrl. Но как его вызвать? Пробовал CEasyCtrl:: FireNetConnectOne() - не катит...
Записан
Anchorite
Гость
« Ответ #1 : 20-03-2005 15:28 » 

А экземпляр класса CEasyCtrl внутри функции BOOL a() у тебя где???
Если BOOL CEasyCtrl::GoOnline() не статический метод класса, то чтобы его вызвать нужен экземпляр этого класса.
Записан
DaSharm
Гость
« Ответ #2 : 20-03-2005 16:36 » 

хм...я не очень разбираюсь в классах, новенький я.

Короче, у меня есть поток, там код...в один момент мне нужно вызвать событие. Как эго вызвать?

пробовал через екземпляр класса:

   CEasyCtrl a;
   a.FireNetConnectOne();

компилятор говорит:

cannot access protected member declared in class 'CEasyCtrl'

член я сам не обявлял, за меня это сделал ClassWizard. Так как же вызвать событие?
« Последнее редактирование: 20-12-2007 19:10 от Алексей1153++ » Записан
Anchorite
Гость
« Ответ #3 : 20-03-2005 18:06 » 

Этот ЗАЩИЩЕННЫЙ метод класса. Доступ к нему имеется только внутри методов данного класса, классов порожденных от него, а так же классов и функций объявленных как "Дружественные".

Ты можешь поступить следующим образом:
1. Объявить метод FireNetConnectOne() как public.
2. Объявить нужную тебе функцию внутри класса CEasyCtrl как friend.
Записан
DaSharm
Гость
« Ответ #4 : 20-03-2005 18:34 » 

А как объявить дружественную функцию?
Записан
DaSharm
Гость
« Ответ #5 : 20-03-2005 19:03 » 

1. Объявить метод FireNetConnectOne() как public.

дуля. так и сделал, создал екземпляр класса и вызвал функцию FireNetConnectOne() - компилится без пробем, но не пашет Жаль(( т. е. события нет. В

BOOL CEasyCtrl::GoOnline()
{   
   FireNetConnectOne();   // вот здесь все без проблем, событие вызывается
   return GoOnlineB();   
}

есть, а из потока когда вызываю через екземпляр класса - нет....

вообще как это другие программеры делают???
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines