ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
2 июня
264824
MegaJohn (01.08.2011 17:10, просмотров: 11053)
Вот в ANSI C всё просто - вызвал какой-нить долгий процесс с callback`ом (к примеру иннициализация модема типо modem_init( modem_init_ok_func ); ) и потом обратный вызов на функцию modem_init_ok_func. Но в С++ нужно передавать не только указатель на статический метод, но еще this. А как вообще это принято делать в CPP-сообществе ? Вот смотрю на реализацию потоков в винде на примере _beginthreadex и вижу, что есть поле-указатель на список аргументов void* который как бы и реализует прозрачность передачи. То при первом вызове передаем (void*)this, а в callback уже получаем ТОТ ЖЕ void* который уже и приводим к чему надо ((Cusart*)myarg)->ReadThread(); И так вопрос (наконец то, скажете вы)! : на основе beginthreadex данный пример метода передачи указателя this на callback в CPP-сообществе является дефакто стандартом или есть еще вариации ???