mirror of
https://github.com/holub/mame
synced 2025-06-07 13:23:50 +03:00
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:
parent
13526f680b
commit
2e51110ebf
@ -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
|
||||||
{
|
{
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
{
|
{
|
||||||
|
@ -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
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user