6a6kin писал(а):*this надо возвращать, потому что можно написать a = b = c;
Сомневаюсь, что возникнет необходимость прямого присваивания классов в данном случае.
То есть, как я понял, this нужно возвращать для того, чтобы можно было сделать так:
- Код: Выделить всё
CSymb<cl_enginefuncs_t> cl_enginefuncs;
CSymb<engine_studio_api_s> IEngineStudio;
cl_enginefuncs=IEngineStudio
Думаю, понимаешь, что в данном контексте такая ситуация весьма абсурдна.
Несколько позабавил такой момент.
cl_enginestudio. - работаем с классом
cl_enginestudio->=работаем со структурой cl_enginestudio_t.
6a6kin писал(а):Есть такое понятие, как функтор. Ещё иногда видел название функционал. Перегружается operator() и можно вызывать как функцию. У тебя так и есть, только добавь параметры и вызывай Call(param1, param2)
Так вся проблема в том, что я не знаю, сколько у меня параметров будет...
Делать вариативные параметры не хочется. Тогда исчезнет одно из удобств VS- подсказка, какие параметры эта функция принимает.
Так же, хотелось бы сделать автоматический хук функции после того, как она вызвалась, но что-то мне подсказывает, что без жёсткого углубления в ASM тут не обойтись.
Кстати, если не заметил, это engFunc из FloodBlocker-a. Только немного переделанный. (нифига се немного...)