Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 12.08.2013
Сообщений: 23
1

Метод класса не работает как callback-функция

01.08.2014, 12:51. Просмотров 1512. Ответов 2
Метки нет (Все метки)


Всем привет! Помогите разобраться с синтаксисом.

Есть gui-прога, в которой содержится функция
C++
1
2
3
4
5
6
7
TForm4::kau2_2_callback(float value)
 {
 char buffer[10];
 sprintf(buffer,"%.2f\r\n",value);
 Form4->Memo1->SetSelText(buffer) ;
 return 0;
 }
Объявленная в классе формы в public:
C++
1
int kau2_2_callback(float value);
Есть dll, в которой лежит функция
C++
1
2
3
4
5
6
int kau2_2(int pt, int kau2_2_callback(float value)) 
{
<...>
float value=3.14 //например
kau2_2_callback(value);
return 0;
предварительно объявленная в header'e
C++
1
extern "C" __declspec(dllexport) int kau2_2(int pt, int kau2_2_callback(float value));//возможно, уже тут косяк
из gui-проги вызывается dll-функция:
C++
1
2
kau2_2(1,int * (float) (kau2_2_callback);//и вот тут компилятор говорит expression syntax.
//kau2_2(1,int (*kau2_2_callback(float value)); //и тут выдает то же самое
и в ещё нескольких вариантах компилятор по разному ругается.

Если функцию, которая вызывается из gui, объявить без callback-функции, dll ругается на необъявленную функцию kau2_2_callback.
Что я делаю не так?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.08.2014, 12:51
Ответы с готовыми решениями:

Вызвать callback как метод класса
class xam{ public static function __callStatic($name, $arguments) { ...

Метод класса как callback(поясните asm)
Всем привет! Как то давно нашёл на просторах нэта интересный код, который использует метод...

Шаблоны и функторы как callback для класса свойства объекта. Код работает - но не должен
Здравствуйте! Хочу написать реализацию класса свойства на шаблоне. Т.е есть объект, он инициирует...

Не работает метод интерфейса callback
у меня есть &quot;чат&quot;,например 2 пользователя конектяться и становятся онлайн, 2-ой пользователь хочет...

2
Модератор
Эксперт по электронике
8356 / 6202 / 834
Регистрация: 14.02.2011
Сообщений: 21,551
01.08.2014, 13:35 2
Цитата Сообщение от romasv Посмотреть сообщение
int kau2_2_callback(float value);
не знаю как в CLI , а в нормальном С++ callback должны быть или глобальными или статическими

Добавлено через 6 минут
Цитата Сообщение от romasv Посмотреть сообщение
extern "C" __declspec(dllexport) int kau2_2(int pt, int kau2_2_callback(float value));//возможно, уже тут косяк
не возможно а точно
нужно не имя функции а её тип
типа так
C++
1
extern "C" __declspec(dllexport) int kau2_2(int pt, int (*fnc)(float));
Для чего нужны callback-функции
1
0 / 0 / 1
Регистрация: 12.08.2013
Сообщений: 23
01.08.2014, 14:52  [ТС] 3
Цитата Сообщение от ValeryS Посмотреть сообщение
не знаю как в CLI , а в нормальном С++ callback должны быть или глобальными или статическими
нужно не имя функции а её тип
типа так

extern "C" __declspec(dllexport) int kau2_2(int pt, int (*fnc)(float));
Спасибо большое, помогло!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.08.2014, 14:52

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

CallBack функция работает не корректно
Иными словами я не могу понять, почему при отсутствии данных в базе выполнение просто подвисает....

Метод класса void-функция, как параметр функции glfwSetScrollCallback(.)
Здравствуйте, кодеры. Появилась проблема. Использую GLSL и GLFW. У меня есть класс Game....

Callback как член класса
В общем, захотел я немного поработать с библиотекой libgit2. Эта библиотека предоставляет API...

Методы класса как callback функции
Всем привет. Пытаюсь разобраться как передавать методы класса в качестве callback. Я конечно...


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

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

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