Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 01.04.2015, 14:10   #1
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,394
По умолчанию Указатели на функцию

Среда MS Visual C++ 2010
Приложение Windows Forms

В основной форме есть функция вида:
Код:
void Test(void(*func)(char*))
{
// some code ... 
char* txt = "hhh";
func(txt);
}
также ест функция callback
Код:
void callbackF(char* message) {	
// some code ...
}
Как передать в тестовую функцию функцию колбэка??

Если сделать так:
Код:
Test(callbackF);

Ошибка: Ошибка	2	error C3867: NGUI::Form1::callbackF: в вызове функции отсутствует список аргументов; используйте "&NGUI::Form1::callbackF" для создания указателя на член	c:\ggui\src\NGUI\Form1.h	447	1	NGUI
Если так:
Код:
Test(&Form1::callbackF);

Ошибка: Ошибка	2	error C3374: невозможно получить адрес "NGUI::Form1::callbackF", пока не будет создан экземпляр делегата	c:\ggui\src\NGUI\Form1.h	447	1	NGUI
С использованием делегата:
Код:
delegate void Del(char *s);
...

Del ^d = gcnew Del(this, &Form1::callbackF);
Test(d);

Ошибка: Ошибка	2	error C2664: NGUI::Form1::Test: невозможно преобразовать параметр 1 из "NGUI::Form1::Del ^" в "void (__cdecl *)(char *)"	c:\ggui\src\NGUI\Form1.h	447	1	NGUI

Где я что упустил то??
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума   Ответить с цитированием
Старый 01.04.2015, 15:52   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 5,939
По умолчанию

Объявите callbackF как static
waleri вне форума   Ответить с цитированием
Старый 01.04.2015, 15:55   #3
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,394
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Объявите callbackF как static
Объявлял .. и тест статиком делал и колбэк ...
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование на С. Указатели на функцию Romchik1 Помощь студентам 2 15.02.2015 15:17
С++ Передача массива в функцию(указатели) Настя М Помощь студентам 0 22.05.2014 17:04
Указатели на функцию SteAlzzer Общие вопросы C/C++ 3 05.11.2011 15:16
Проблема с пепедачей аргументов в функцию (массивы + указатели) sekator Общие вопросы C/C++ 2 09.08.2010 13:03
Указатели на функцию. prikolist Общие вопросы C/C++ 9 05.06.2009 15:34


05:48.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.