Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с CAsyncSocket.OnReceive, Не запускается 
:(
    Опции темы
VolanDeMort
Дата 7.11.2006, 03:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.10.2006

Репутация: нет
Всего: нет



Всем добррое время суток. 

Пишу простенького клиента, опираясь на класс CAsyncSocket

Проблема в том, что все функции тапа OnReceive, OnConnect и т.д, переопределенные в производном классе, не вызываются. Скажем данные поступают, их можно прочитать методом Receive, но функция OnReceive не срабатывает.  smile 

Может проблема в том, что консольное приложение? Хотя потдержка MFC включена.

PM MAIL   Вверх
_hunter
Дата 7.11.2006, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



virtual часом не забыл?..


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
VolanDeMort
Дата 7.11.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.10.2006

Репутация: нет
Всего: нет



Разве при замещении "virtual" обязателен? 

Цитата

"... в использовании ключевого слова virtual для маркировки виртуального метода , замещаемого в производном классе , нет необходимости, так как даже при его отсутствии соответствующий метод производного класса считается вируальным..."

Н.Н. Мартынов, "Программировние для Windows на С++", т2. стр 158.

PM MAIL   Вверх
Earnest
Дата 7.11.2006, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Дело, конечно, не в virtual, а, скорее всего, в отсутствии фреймворка: по-моему, именно оболочка вызывает эти методы. Что-то в этом роде обсуждалось не так давно, поищи.


--------------------
...
PM   Вверх
VolanDeMort
Дата 8.11.2006, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.10.2006

Репутация: нет
Всего: нет



Поясните пож. понятие фреймворка, или пните куда нибуть, где это хорошо написанно. А то встречаю часто, а что такое не знаю. smile 
PM MAIL   Вверх
Earnest
Дата 9.11.2006, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Framework - это каркас приложения. Т.е. код,  описывающий архитектуру программы - взаимодействие разных объектов. Тебе остается только обрабатывать определенные события - код по их ловле и направлению куда-следует уже есть.
Это так, вчерне. Когда ты пишешь консольное приложение, ты начинаешь с main и пустого листа. Если чистый WinApi - то тоже с чистого листа, только немного другого. 
А если, скажем, создаешь SDI-приложение на MFC, но каркас генерирует визард. Это уже готовое приложение (правда, ничего полезного не делающее). Но - работающее: окно открывается, документы загружаются и т.д.

В описании таких функций как OnRecеive обычно пишется "... вызываются фрейворком в ответ на событие XXX". Сами-то функции не могут вызываться: либо ТЫ пишешь код вызова, либо передаешь функции в качестве callback'а, либо их вызывает оболочка.


--------------------
...
PM   Вверх
VolanDeMort
Дата 13.11.2006, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.10.2006

Репутация: нет
Всего: нет



Спасибо, пояснил.

Помог цикл прокрутки сообщений:
Код

while (SMPPState == CONNECTED)
{
  ::PeekMessage (&msg, NULL, 0, 0, PM_REMOVE);
  if(msg.message == WM_QUIT) break;
  TranslateMessage (&msg);
  DispatchMessage (&msg);
  if (sendmes.smtimer.TimerElapse()) break;
}


    
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.