Доступна ли функция m_cRedundencyManager
для использования функций-членов? Большинство обратных вызовов настроены на использование регулярных функций или статических функций-членов.
Обновление: Объявление функции, которое вы указали, показывает, что m_cRedundencyManager
ожидает, что функция вида: void yourCallbackFunction(int, void *)
. Поэтому функции-члены неприемлемы как обратные вызовы в этом случае. Статическая функция-член может работать, но если это неприемлемо в вашем случае, будет работать и следующий код. Обратите внимание, что он использует злое действие из void *
.
// in your CLoggersInfra constructor:
m_cRedundencyManager->Init(myRedundencyManagerCallBackHandler, this);
// in your CLoggersInfra header:
void myRedundencyManagerCallBackHandler(int i, void * CLoggersInfraPtr);
// in your CLoggersInfra source file:
void myRedundencyManagerCallBackHandler(int i, void * CLoggersInfraPtr)
{
((CLoggersInfra *)CLoggersInfraPtr)->RedundencyManagerCallBack(i);
}
Существует несколько вещи, которые доминируют над успешностью кода. Все они должны быть достигнуты для малейшего шанса принятия.
Я думаю, что единственным наиболее важным фактором является число пользователей, которые используют Ваш проект. Иначе его просто действительно правильно написанный, полезный и хорошо зарегистрированный набор материала, который находится на сервере, не делающем очень...
Для получения вкладчиков Вам сначала нужны пользователи, затем Вам нужна некоторая неполнота. Необходимо инициировать, "Это прохладно, но мне действительно жаль, что это не имело это или отличалось таким образом". При пропавших без вести очевидной функции чрезвычайно вероятно, что пользователь станет участником для добавления его.
В рассмотрении этих проблем Вы могли бы интересоваться проверкой интерактивной версии курса об открытом исходном коде в Беркли UC, названном Разработкой С открытым исходным кодом и Распределением Цифровой информации: Технические, Экономические, Социальные, и Легальные Перспективы. Это - co-taught Mitch Kapur (основатель Lotus) и Paula Samuelson, преподаватель юридической школы. Я имею длинную поездку на работу и поместил аудио курса о моем iPod в прошлом году – они говорят много о том, какие работы, что не делает и почему от очень широкого (хотя очевидно академический) перспектива.
Самая важная вещь состоит в том, что программа хороша. Если не хороший, никто не будет использовать его. Вы не можете надеяться, что курица-и-яйцо инвертирует и что люди примут как очевидное, пока это не станет хорошим.
Конечно, "хороший" просто означает "лучше, чем какая-либо другая практическая опция для значительного количества людей", это не означает, что строго лучшее, только что это имеет некоторые функции, которые делают его, для многих людей, лучше, чем другие опции. Иногда программа не имеет никакого эквивалента больше нигде, в этом случае в этом отношении нет почти никакого требования.
Когда программа будет хороша, люди будут использовать ее. Очевидно, это должно иметь рынок среди пользователей - хорошая программа, которая делает что-то, что никто не хочет, не действительно хорошо, неважно, как хорошо его разработанный. Можно было высказать мнение о маркетинге, но действительно хорошие продукты, в какой-то степени, иметь тенденцию представить себя на рынке. Намного тяжелее для продвижения чего-то, что не хорошо так ясно, первоочередная задача должна быть самим продуктом, не продвинув продукт.
Реальный вопрос затем - как Вы делаете его хорошим? И ответ на это является специализированной, квалифицированной группой разработчиков. Один человек может редко создавать хороший продукт самостоятельно; даже если они намного лучше, чем другие разработчики, разнообразные перспективы имеют невероятно полезное действие на проекте. Поэтому наличие корпоративных спонсоров так полезно - оно помещает других разработчиков (от корпорации) умы на проблеме для предоставления их собственного мнения. Это особенно полезно в случае, что разработка программы требует значительных экспертных знаний, которые не обычно доступны в сообществе.
Конечно, я говорю это все на основе опыта. Я - один из основных разработчиков на x264 (в настоящее время самый активный), один из самых популярных видео кодеров. У нас есть два основных разработчика, различные младшие разработчики в сообществе, которые вносят патчи и корпоративное спонсорство от Joost (Gabriel Bouvigne, который поддерживает ratecontrol алгоритмы), от Avail Media (на кого я работаю иногда по контракту и кто в настоящее время нанимает кодеры по контракту для добавления MBAFF, чередующего поддержку), и от немногих других то всплывающее окно время от времени.
Один хороший разработчик не делает проект - многие хорошие разработчики делают. И конечным результатом этого является программа, которая кодирует видео быстрее и в намного лучшем качестве, чем большинство коммерческих конкурентов, аппаратных средств или программного обеспечения, даже те, которые имеют совершенно огромные бюджеты на разработку.
Я просто читал сегодня вечером превосходное сообщение на аспекте удобства использования успешных по сравнению с неудачными проектами с открытым исходным кодом.
Выборка:
Много пропускной способности было потрачено впустую, споря по отсутствию удобства использования в программном обеспечении/бесплатном программном обеспечении с открытым исходным кодом (впредь “OSS”). Дебаты продолжаются в данный момент на блогах, форумах и потоках комментария Slashdot. Некоторые люди говорят, что плохое удобство использования является местным для всего мира OSS, в то время как другие говорят, что удобство использования OSS является большим, но что настоящей проблемой являются консервативные пользователи, которые ожидают, что каждая программа клонирует Microsoft. Некоторые люди утверждают, что проблемами UI является временная болезнь роста, в то время как другие говорят, что модель разработки OSS систематически производит плохой UI. Некоторые люди даже утверждают, что GPL косвенно вознаграждает программное обеспечение, которое это трудно использовать! (Для записи я не соглашаюсь.)
Книги были записаны на предмете. На самом деле можно найти бесплатную книгу здесь: создание программного обеспечения с открытым исходным кодом
Действительно, я думаю, что ответ, 'как Вы выполняете проект'.
Весь Ваш вопрос в качестве примера, да, но ключевые вещи - то, как взаимодействием между разработчиками управляют, как патчи и т.д. обрабатываются/принимаются, кто является главным и как они обрабатывают ту ответственность и т. д. и т. п.
Сравните и контрастируйте (историю не трудно разыскать!) управление разработкой Класса:: DBI и DBIx:: Класс в Perl.
Просто открытый исходный код это. По всей вероятности никто не начнет способствовать все же. Но по крайней мере можно записать на пресс-релизах, что продуктом является GPL или что бы то ни было.
Первый шаг - то, что люди начинают использовать его...
И возможно затем, после того, как пользователи становятся удобными, они начнут способствовать.
Общие ответы были хороши до сих пор, но существует одна вещь пропавшие без вести, и это - хороший контроль. Ничто не уничтожает проект с открытым исходным кодом быстрее, чем не наличие своего рода управления проектами. Не сказать людям, что сделать так много, чтобы просто добавить некоторую структуру и определяющий задачу для разработчиков, которых Вы надеетесь притянуть.
Неорганизованные проекты разваливаются быстро. Это не птица, Вы просто отпускаете и наблюдаете, что он улетает.