Я вхожу в новую для меня область, но в основном мне нужно реализовать обратные вызовы в C ++. Я создаю набор инструментов для себя, чтобы упростить мою жизнь. По сути, это плагин .dll, который будет предоставлять множество функций другим моим плагинам .dll.
Одной из этих функций является HookEvent (const char * event_name, void * callback), который позволит мне перехватывать различные события, которые запускаются. Вот пример ...
Example_Plugin1.dll делает HookEvent ("player_spawn", & Plugin1 :: Event_PlayerSpawn);
Example_Plugin2.dll делает HookEvent ("player_spawn", & Plugin2 :: Event_PlayerSpawn);
Мне нужно выяснить лучший (и желательно самый простой) метод настройки системы обратного вызова, которая будет хорошо работать для этого. Я уже несколько часов читаю обратные вызовы C ++ и нашел довольно много разных подходов.
Полагаю, проще всего было бы создать шаблон и использовать typedef bool (ClassName :: * EventHookCallback) (IGameEvent, bool); После этого я немного туманно.
Я также читал, что делегатами или системой событий в стиле .NET являются другие возможные подходы. Я уже несколько сбит с толку, поэтому я не хочу больше путать себя, но решил, что стоит спросить.
Вот ссылка на систему событий в стиле C ++ .NET, о которой я читал.
http://cratonica.wordpress.com/2010/02/19/implementing-c-net-events-in-c/
Так что вы, ребята, предлагаете? Любые советы, касающиеся его реализации, были бы весьма полезны.