Форум программистов, компьютерный форум CyberForum.ru

Что такое CALLBACK функция...... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите нарисовать круг в окне. http://www.cyberforum.ru/cpp-beginners/thread476706.html
Нада нарисовать круг в окне, но не могу понять почему, так получается: HWND hwnd; hwnd =FindWindow('SciCalc','Калькулятор'); HDC hdc; dc=GetWindowDC(hwnd); int i; cin >> i; CPen pen(PS_SOLID,4,RGB(255,0,0)); SelectObject(hdc,pen);
C++ Кто работал *.MDB через CDaoDatabase подскажите, все работает, но ... Люди выручайте, очень надо, по данной ссылке зайти не могу, проболема такая же. Кто нить дайте работающую ссылку или расскажите как ее решить. Очень надо. http://www.cyberforum.ru/cpp-beginners/thread476690.html
C++ Ошибка: Failed to create emty document
Почему в отладочной конфигурации код работает, а в release выдаёт такую вот ошибку? Методом вставок сообщений определённо ошибка возникает тут: CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CPCServerDoc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CPCServerView)); AddDocTemplate(pDocTemplate);
C++ Помогите найти код игры Сокобан
...приперло найти код игры Сокобан (или похожей) на c++ под винды... они валяются по сети, - может кто подскажет где лежит неплохой вариант?
C++ Возникает ошибки при обработке исключений. http://www.cyberforum.ru/cpp-beginners/thread476665.html
MicrosoftDeveloperStudio. У меня есть try блок, в котором возникает ошибка. Catch(CException ex) это исключение не ловит. Ловит только catch(...), но мне хотелось бы узнать, что это за ошибка (деление на ноль, обращение к несуществующему объекту, ...) Кто знает, как вытащить эту информацию, помогите, пожалуйста. Заранее благодарен.
C++ Получение текущей даты? Люди,Помогите! MSDN-a нет. Как получить текущее время в VC++? подробнее

Показать сообщение отдельно
krandv
0 / 0 / 0
Регистрация: 20.06.2009
Сообщений: 13
02.07.2009, 02:06     Что такое CALLBACK функция......
Если ты разработал класс таким образом, что в случае CALLBACKа его методы нельзя использовать, то ты неправильно класс разработал.
Поясняю пример callback для функции qsort. Эта функция может сортировать любые данные - строки, дробные, целые, классы, структуры и т.д. Но сама эта функция не знает и не может знать как отсортировать например массив структур, созданных пользователем. Поэтому в качестве одного из параметров qsort передается указатель на функцию, которая будет выполнять сравнение 2х структур и говорить какая из них должна быть на первом месте, а какая на втором. Эту функцию должен написать программер, который знает что за структуры он сортирует и знает правила, по которым они должны сортироваться.
Таким образом это - callback функция. qsort ее вызывает (call), а она возвращает (back) результат.
Еще один пример callback - это использование MFC класса CListCtrl (список). Для него можно выставлять параметр, чтобы он не хранил значения элементов в себе а посылал месагу родительскому окну. В ответ на эту месагу родительское окно должно отдавать данные, которые будут выводиться на экран. В данном случае месага есть пример callback. Т.е окно посылает (call) месагу, а в ответ (back) приходят данные.
Если говорить в общем, то callback - это нарушение прямолинейного выполнения программы. Т.е. функции вызываются не из главного цикла и не в тот момент, когда этого хочет программа, а в тот момент, когда этого хочет функция (или другой процесс), с которой мы установили отношения. Система месаг винды в общем то ярчайший пример использования callback'ов.
 
Текущее время: 13:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru