crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> CallBack & Com
blondinka
  опции профиля:
сообщение 12.10.2009, 12:01
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 71
Регистрация: 8.4.2008
Из: Питер
Пользователь №: 144

Спасибо сказали: 0 раз(а)




Репутация:   3  


Привет! Ребята, не подскажите , как сделать callBack в com?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
kwisp
  опции профиля:
сообщение 13.10.2009, 10:35
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(blondinka @ 13.10.2009, 10:30) *
Просто не понятно одно, если есть средства в Qt для создания самого Com, то и должны быть средства для представления этих их сигналов.

не понятно о чём ты. :(

есть догадка что ты хочешь вызвать сигнал объекта Qt обернутого в COM.
если так то как и обычно т.к. сигналы в защищенной секции то для вызова сигнала из вне нужно в классе содержащем сигнал написать доступную функцию которая вызовет сигнал
public:
void callMe()
{
emit sgCall();
}

можно попробовать получить адресс самого сигнала(не пробовал не уверен) &sgCall; если сигналы имеют одинаковую сигнатуру пердают одни и теже аргументы, то можно их адреса засунуть в массив. Из вне можно вызывать функцию вида callMe()
signals:
void sg_0(const char*);
void sg_1(const char*);
void sg_2(const char*);
void sg_3(const char*);

private:
typedef void (ComObject::*SGPointer)(const char*);
static const SGPointer CallSG(const uint index) {
        static const SGPointer CallSGHandlers[] = {
            (SGPointer)&ComObject::sg_0,
            (SGPointer)&ComObject::sg_1,
            (SGPointer)&ComObject::sg_2,
            (SGPointer)&ComObject::sg_3
        };
        return index>ARSIZE(CallSGHandlers)?NULL:CallSGHandlers[index];
    }

public:
void callMe(const uint indexSg, const char* data)
{
     SGPointer pointer = CallSG(indexSg);
     if(pointer) { emit (this->*pointer)(data); }//??? это полёт фантазии в этом не уверен.
}

вызываешь callMe(...) COM внутри него вызываются сигналы.
если не получится получить и корректно использовать указатель на сигналы в конце концов можно использовать стандартный switch().
сам так делать не пробовал.

можно посмотреть QAxObject и прочие классы.
документацию конкретного COM объекта можно получить с помощью generateDocumentation ()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- blondinka   CallBack & Com   12.10.2009, 12:01
- - blondinka   Ну хоть кто-нибудь знает, как обернуть сигналы, чт...   12.10.2009, 16:52
- - kwisp   а подробнее можно? указатель на функцию можно исп...   12.10.2009, 17:04
- - blondinka   А к какому объекту обращаться?   12.10.2009, 17:27
- - kwisp   Цитата(blondinka @ 12.10.2009, 18:27) А к...   12.10.2009, 17:46
- - blondinka   AClass, я так понимаю, это класс-клиент. так из Co...   12.10.2009, 18:19
- - kwisp   Цитата(blondinka @ 12.10.2009, 19:19) ACl...   12.10.2009, 18:45
- - blondinka   Обратиться к серверу можно и без callBack'a Ка...   12.10.2009, 18:47
- - kwisp   в какой то форме тебе нужен по-любому указатель на...   12.10.2009, 18:57
- - blondinka   Нельзя, потому что информация, в свою очередь, при...   12.10.2009, 18:59
- - kwisp   Цитата(blondinka @ 12.10.2009, 19:59) как...   12.10.2009, 19:04
- - blondinka   Ну передать я смогу,а как принять и запомнить? т....   12.10.2009, 21:16
- - kwisp   слушай а если всё это это прочитать. столько интер...   13.10.2009, 7:58
- - blondinka   Т.е как обернуть сигнал никто не знает..Просто не ...   13.10.2009, 9:30
- - kwisp   Цитата(blondinka @ 13.10.2009, 10:30) Про...   13.10.2009, 10:35
- - blondinka   Именно про эти классы я и говорила..Но документаци...   13.10.2009, 10:45
- - kwisp   Цитата(blondinka @ 13.10.2009, 11:45) Я н...   13.10.2009, 11:20
- - blondinka   Спасибо, попробую высылать события   13.10.2009, 12:14
- - kwisp   Цитата(blondinka @ 13.10.2009, 13:14) поп...   13.10.2009, 12:37
- - blondinka   т.к. я пишу сервер, вместо сигналов думала выслать...   13.10.2009, 12:43
- - kwisp   см. выше   13.10.2009, 13:04
- - blondinka   И что?)) Генерируются они с каким типом??)) Или эт...   13.10.2009, 13:08
- - kwisp   еще раз повторюсь. думаю Qt автоматически преобраз...   13.10.2009, 13:14
- - blondinka   Я это поняла с первого раза. Но я про это вскользь...   13.10.2009, 13:37
- - kwisp   Цитата(blondinka @ 13.10.2009, 14:21) QAp...   13.10.2009, 13:38
- - blondinka   Дело так обстоит: у меня есть qt-класс, написанный...   13.10.2009, 13:40
- - kwisp   тыж должна оставить хоть какуюто спецификацию прих...   13.10.2009, 13:42
- - blondinka   Конечно,я ее составлю, когда сама буду знать во чт...   13.10.2009, 13:43
- - kwisp   ладно по следняя попытка. к примру в делфях есть о...   13.10.2009, 13:52
- - blondinka   Да все понятно. Уже давно ответила))НЕ прокатывает...   13.10.2009, 14:01
- - kwisp   жаль в делфи не шарю. напиши на чем сможешь на MFC...   13.10.2009, 15:04


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.12.2024, 12:13