The calling convention goes inside the brackets of pointers to functions. Allows compiling with MSVC (nw)

Revision: 58dc78b6eb
Author: Giuseppe Gorgoglione <gorgogsp@gmail.com>
Date: 28/05/2016 03:14:15
Message:
Introduce dynamic_module

This is a central cross-platform facility to dynamically bind functions from shared libraries.
    Updated all OSD modules to use it.
This commit is contained in:
smf- 2016-06-15 15:10:54 +01:00
parent 13526f680b
commit 2e51110ebf
5 changed files with 23 additions and 23 deletions

View File

@ -28,15 +28,15 @@
#include <windows/winutil.h> #include <windows/winutil.h>
// Typedefs for dynamically loaded functions // Typedefs for dynamically loaded functions
typedef BOOL WINAPI (*StackWalk64_fn)(DWORD, HANDLE, HANDLE, LPSTACKFRAME64, PVOID, PREAD_PROCESS_MEMORY_ROUTINE64, PFUNCTION_TABLE_ACCESS_ROUTINE64, PGET_MODULE_BASE_ROUTINE64, PTRANSLATE_ADDRESS_ROUTINE64); typedef BOOL (WINAPI *StackWalk64_fn)(DWORD, HANDLE, HANDLE, LPSTACKFRAME64, PVOID, PREAD_PROCESS_MEMORY_ROUTINE64, PFUNCTION_TABLE_ACCESS_ROUTINE64, PGET_MODULE_BASE_ROUTINE64, PTRANSLATE_ADDRESS_ROUTINE64);
typedef BOOL WINAPI (*SymInitialize_fn)(HANDLE, LPCTSTR, BOOL); typedef BOOL (WINAPI *SymInitialize_fn)(HANDLE, LPCTSTR, BOOL);
typedef PVOID WINAPI (*SymFunctionTableAccess64_fn)(HANDLE, DWORD64); typedef PVOID (WINAPI *SymFunctionTableAccess64_fn)(HANDLE, DWORD64);
typedef DWORD64 WINAPI (*SymGetModuleBase64_fn)(HANDLE, DWORD64); typedef DWORD64 (WINAPI *SymGetModuleBase64_fn)(HANDLE, DWORD64);
typedef BOOL WINAPI (*SymFromAddr_fn)(HANDLE, DWORD64, PDWORD64, PSYMBOL_INFO); typedef BOOL (WINAPI *SymFromAddr_fn)(HANDLE, DWORD64, PDWORD64, PSYMBOL_INFO);
typedef BOOL WINAPI (*SymGetLineFromAddr64_fn)(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINE64); typedef BOOL (WINAPI *SymGetLineFromAddr64_fn)(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINE64);
typedef PIMAGE_SECTION_HEADER WINAPI (*ImageRvaToSection_fn)(PIMAGE_NT_HEADERS, PVOID, ULONG); typedef PIMAGE_SECTION_HEADER (WINAPI *ImageRvaToSection_fn)(PIMAGE_NT_HEADERS, PVOID, ULONG);
typedef PIMAGE_NT_HEADERS WINAPI (*ImageNtHeader_fn)(PVOID); typedef PIMAGE_NT_HEADERS (WINAPI *ImageNtHeader_fn)(PVOID);
typedef VOID WINAPI (*RtlCaptureContext_fn)(PCONTEXT); typedef VOID (WINAPI *RtlCaptureContext_fn)(PCONTEXT);
class stack_walker class stack_walker
{ {

View File

@ -79,7 +79,7 @@ struct osd_deleter
typedef std::unique_ptr<char, osd_deleter> osd_utf8_ptr; typedef std::unique_ptr<char, osd_deleter> osd_utf8_ptr;
// Typedefs for dynamically loaded functions // Typedefs for dynamically loaded functions
typedef HRESULT WINAPI (*d2d_create_factory_fn)(D2D1_FACTORY_TYPE, REFIID, const D2D1_FACTORY_OPTIONS *, void **); typedef HRESULT (WINAPI *d2d_create_factory_fn)(D2D1_FACTORY_TYPE, REFIID, const D2D1_FACTORY_OPTIONS *, void **);
typedef HRESULT (*dwrite_create_factory_fn)(DWRITE_FACTORY_TYPE, REFIID, IUnknown **); typedef HRESULT (*dwrite_create_factory_fn)(DWRITE_FACTORY_TYPE, REFIID, IUnknown **);
// Debugging functions // Debugging functions

View File

@ -45,9 +45,9 @@ public:
// Typedef for dynamically loaded function // Typedef for dynamically loaded function
#if DIRECTINPUT_VERSION >= 0x0800 #if DIRECTINPUT_VERSION >= 0x0800
typedef HRESULT WINAPI (*dinput_create_fn)(HINSTANCE, DWORD, LPDIRECTINPUT8 *, LPUNKNOWN); typedef HRESULT (WINAPI *dinput_create_fn)(HINSTANCE, DWORD, LPDIRECTINPUT8 *, LPUNKNOWN);
#else #else
typedef HRESULT WINAPI (*dinput_create_fn)(HINSTANCE, DWORD, LPDIRECTINPUT *, LPUNKNOWN); typedef HRESULT (WINAPI *dinput_create_fn)(HINSTANCE, DWORD, LPDIRECTINPUT *, LPUNKNOWN);
#endif #endif
class dinput_api_helper class dinput_api_helper

View File

@ -38,10 +38,10 @@
//============================================================ //============================================================
// Typedefs for dynamically loaded functions // Typedefs for dynamically loaded functions
typedef UINT WINAPI (*get_rawinput_device_list_ptr)(PRAWINPUTDEVICELIST, PUINT, UINT); typedef UINT (WINAPI *get_rawinput_device_list_ptr)(PRAWINPUTDEVICELIST, PUINT, UINT);
typedef UINT WINAPI (*get_rawinput_data_ptr)( HRAWINPUT, UINT, LPVOID, PUINT, UINT); typedef UINT (WINAPI *get_rawinput_data_ptr)( HRAWINPUT, UINT, LPVOID, PUINT, UINT);
typedef UINT WINAPI (*get_rawinput_device_info_ptr)(HANDLE, UINT, LPVOID, PUINT); typedef UINT (WINAPI *get_rawinput_device_info_ptr)(HANDLE, UINT, LPVOID, PUINT);
typedef BOOL WINAPI (*register_rawinput_devices_ptr)(PCRAWINPUTDEVICE, UINT, UINT); typedef BOOL (WINAPI *register_rawinput_devices_ptr)(PCRAWINPUTDEVICE, UINT, UINT);
class safe_regkey class safe_regkey
{ {

View File

@ -17,14 +17,14 @@
#include "modules/lib/osdlib.h" #include "modules/lib/osdlib.h"
// Typedefs for dynamically loaded functions // Typedefs for dynamically loaded functions
typedef PROC WINAPI (*wglGetProcAddress_fn)(LPCSTR); typedef PROC (WINAPI *wglGetProcAddress_fn)(LPCSTR);
typedef HGLRC WINAPI (*wglCreateContext_fn)(HDC); typedef HGLRC (WINAPI *wglCreateContext_fn)(HDC);
typedef BOOL WINAPI (*wglDeleteContext_fn)(HGLRC); typedef BOOL (WINAPI *wglDeleteContext_fn)(HGLRC);
typedef BOOL WINAPI (*wglMakeCurrent_fn)(HDC, HGLRC); typedef BOOL (WINAPI *wglMakeCurrent_fn)(HDC, HGLRC);
typedef const char * WINAPI (*wglGetExtensionsStringEXT_fn)(void); typedef const char * (WINAPI *wglGetExtensionsStringEXT_fn)(void);
typedef BOOL WINAPI (*wglSwapIntervalEXT_fn)(int); typedef BOOL (WINAPI *wglSwapIntervalEXT_fn)(int);
typedef int WINAPI (*wglGetSwapIntervalEXT_fn)(void); typedef int (WINAPI *wglGetSwapIntervalEXT_fn)(void);
class win_gl_context : public osd_gl_context class win_gl_context : public osd_gl_context
{ {