Currently I have a class of this kind, shortened for simplicity:
class MyClass {
public:
MyClass();
void* someFunc(void* param);
}
The difference between a C function and a C++ member function is that C function uses cdecl calling convention, while member functions uses thiscall calling convention (and you can't even take their address!).
As I understand, you actually want that secondFunc() to call the member function of a particular instance of class (let's call it this). Well, addresses of member functions of all the instances of a particular class are the same. In order to pass the pointer to the object, you will need a side channel. In this case it could be static variable. Or, if you want MT support, you'll have to use Thread Local Storage (TLS),
This requires one callback per SomeFunc-type member, but you would need a dispatcher somewhere anyway.