A function pointer argument would be written as void(*func)(char*, char*) or simply my_fun_ptr func if you write a typedef first : typedefvoid(*my_fun_ptr)(char*, char*);
void cannot be a reference, only a pointer. Try converting getfunc( ) to a template function. Then, when you pass func to CopyMemory( ), cast it to void *. For example:
that's just a void*, not a function pointer though. A function pointer would look more like this void(*func)(void)//a function that takes no argument and doesn't return anything