Fixes -Wpedantic errors associated with casting between pointer-to-function and pointer-to-object present in some sanitizer DLL lookups.
windows.h GetProcAddress returns pointer-to-function through type FARPROC (https://msdn.microsoft.com/en-us/library/windows/desktop/ms683212(v=vs.85).aspx). Casting this to a void* is invalid in ISO C++.
Changed return value of LookupSymbolFromMain to a basic function pointer that returns void, that can then be reinterpreted during the call. The problem is that dlsym [3] returns a void*. This is a known problem with this function, as any use of this function must do a pointer-to-object -> pointer-to-function cast before using it.
Possible solutions to this problem are casting via an integral type (the chosen method) or a union cast. As a union cast is undefined behaviour, the best method is to cast through the integral type, uint64_t in this case.
See https://web.archive.org/web/20061214100447/http://www.trilithium.com/johan/2004/12/problem-with-dlsym/ for more information (archive.org linked as the original article is no longer available).