I like the typedefs for the prototypes.

I'm not sure what I think about this class.  In some ways it is quite nice.  However, what advantage does it have over having a member of type apr_generate_random_bytes_t?

You could have
    template <typename T>
    T SharedObjectFunction<T>::GetFuncSym(HINSTANCE hndl, const char *_funcName)
    {
        return (T)GetSharedProcedure(hndl, _funcName);
    }

as a template function, and in the constructor say

_generate_random_bytes = GetFuncSym(handle, "apr_generate_random_bytes");

then when it was called you would say

    _generate_random_bytes();

instead of 

   (_generate_random_bytes->getFuncPtr())()

The class has the disadvantage of using memory/extra heap allocations.  The only benefit is you can ask the name of the function - which I doubt you will ever do.