Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Hacker_
11 / 11 / 0
Регистрация: 10.09.2009
Сообщений: 261
#1

Не могу зарегистрировать событие. - C++

01.12.2009, 14:43. Просмотров 529. Ответов 1
Метки нет (Все метки)

Здравствуйте.
Помогите пожалуйста.
Скачал библиотеку для работы с блютуз, подключил .h файлы и написал следующее:
C++
1
2
3
4
5
6
7
8
class Blth
{
 public:
        //Функция регистрирующая событие
        void RegAppIndCallback(void);
        //Функция обрабатывающая событие
        void AppInquiryInd(void);
};
Реализовал функцию RegAppIndCallback:
C++
1
2
3
4
5
6
7
8
void Blth::RegAppIndCallback(void)
{
    BtSdkCallbackStru cb = {0};
    cb.type = BTSDK_INQUIRY_RESULT_IND;
    cb.func = (void*)AppInquiryInd;
           //функция непостредственно регитрирующая события для блютуза, в системе
    Btsdk_RegisterCallback4ThirdParty(&cb);
}
BtSdkCallbackStru - Струкрура описаная в подключаемом .h файле, в ней два поля:
1. Тип регистрируемого события.
2. Функция обрабатывающая данное событие
BTSDK_INQUIRY_RESULT_IND - Тип события.(В данном случае конец запроса к блютуз устройству)
Btsdk_RegisterCallback4ThirdParty - Фнкция регистрирующая событие.
Соответственно теперь я могу обработать это событие в функции AppInquiryInd.
Я написал следующее:
C++
1
2
3
4
void Blth::AppInqCompInd(void)
{
//Здесь я хочу написать свой код по обработке запроса к блютуз устройству
}
Но прога не компилируется, ругается на строчку:
cb.func = (void*)AppInquiryInd;
Выдает ошибку:
[C++ Error] Unit1.cpp(66): E2235 Member function must be called or its address taken
Но если написать так, то все работает.
C++
1
2
3
4
void AppInqCompInd(void)
{
//Здесь я хочу написать свой код по обработке запроса к блютуз устройству
}
Но мне нужно что бы все было в обекте.
Как это зделать?
P.S.
Делать метод статинческим, не вариант, поскольку мне нежно испльзовать this.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2009, 14:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу зарегистрировать событие. (C++):

Зарегистрировать левую клавишу мышки с пoмощью RegisterHotKey? - C++ Builder
Надо зарегистрировать как горячую клавишу левую кнопку мышки.Что только не пробовал RegisterHotKey(Handle,0,0,VK_LBUTTON); ...

Как в MFC зарегистрировать базу данных Access и сжать ее? - Visual C++
И еще пара вопросов знатокам: 1). Как в MFC зарегистрировать базу данных Access?; 2). Можно ли сжать базу данных Access из под...

Не могу зарегистрировать класс окна. Не принимает имя класса. Почему? - C++ WinAPI
создал клас окна. WNDCLASSEX wndclass; wndclass.cbSize = sizeof(wndclass); wndclass.style = CS_HREDRAW | CS_VREDRAW; ...

Ошибка "Не удалось зарегистрировать дочерний класс" - C++ WinAPI
Не создается дочернее окно.Помогите.Ошибка "Не удалось зарегистрировать дочерний класс" #include "stdafx.h" #include "windows.h" ...

Не могу сделать событие на изменение данных в переменной , int или CString - C++
как сделать что бы генерировалось событие ? если делать через while то в отдельном потоке надо да и не очень удобно это все , может можно...

Как зарегистрировать VS - C++
Здравствуйте я скачал microsoft visual c++ 2008 express edition и установил, но она требует зарегистрироватся. Помогите как разобратся в...

1
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
01.12.2009, 14:46 #2
Hacker_,

вот об этом:

cb.func = (void*)AppInquiryInd;

если AppInquiryInd - не-статическая функция класса, можешь сразу забыть.

решение - точно такое же как и в случае с потоками. юзай поиск.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2009, 14:46
Привет! Вот еще темы с ответами:

Как зарегистрировать VS 2010 Exspres - C++
У меня по чему то требует VS 2010 Exspres , регистрации . как ее зарегистрировать

Как программно зарегистрировать DSN? - C++
чтобы не через Control Panel, а программно...например, к базе ACCESS помогите, please !

Как быстро зарегистрировать COM-объект? - C++
Моя программа использует COM-объект, живущий в DLL. Создаёт через CoCreateInstance, всё нормально. Но если объект на этом компьютере ещё не...

Как зарегистрировать OLE Control через regsvr32? - C++
Здравствуйте! Возник у меня детский вопрос. Ответ должен быть простым, но может кто сталкивался, и думать не придется:-). Короче,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.