Module: vkd3d Branch: master Commit: d087b9ea5b4fffcd03e3c4925c2eb83ab8d1f39e URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=d087b9ea5b4fffcd03e3c492...
Author: Zebediah Figura zfigura@codeweavers.com Date: Mon Apr 18 20:28:42 2022 -0500
include: Implement vkd3d_dl*() wrappers for Win32 platforms.
Signed-off-by: Zebediah Figura zfigura@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
include/private/vkd3d_common.h | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/include/private/vkd3d_common.h b/include/private/vkd3d_common.h index 7aabe8ab..c041b52d 100644 --- a/include/private/vkd3d_common.h +++ b/include/private/vkd3d_common.h @@ -27,6 +27,7 @@ #include <limits.h> #include <stdbool.h> #include <stdint.h> +#include <stdio.h>
#ifdef _MSC_VER #include <intrin.h> @@ -246,7 +247,33 @@ static inline void vkd3d_parse_version(const char *version, int *major, int *min
HRESULT hresult_from_vkd3d_result(int vkd3d_result);
-#ifdef HAVE_DLFCN_H +#ifdef _WIN32 +static inline void *vkd3d_dlopen(const char *name) +{ + return LoadLibraryA(name); +} + +static inline void *vkd3d_dlsym(void *handle, const char *symbol) +{ + return GetProcAddress(handle, symbol); +} + +static inline int vkd3d_dlclose(void *handle) +{ + return FreeLibrary(handle); +} + +static inline const char *vkd3d_dlerror(void) +{ + unsigned int error = GetLastError(); + static char message[256]; + + if (FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, NULL, error, 0, message, sizeof(message), NULL)) + return message; + sprintf(message, "Unknown error %u.\n", error); + return message; +} +#elif defined(HAVE_DLFCN_H) #include <dlfcn.h>
static inline void *vkd3d_dlopen(const char *name)