[FFmpeg-devel] [PATCH] win32_dlfcn: Support WinRT/UWP.
wm4
nfxjfg at googlemail.com
Wed Jul 12 13:31:15 EEST 2017
On Sat, 1 Jul 2017 23:18:25 +1000
Matt Oliver <protogonoi at gmail.com> wrote:
> This only enables dlls that are packaged with the application to be
> loaded. Due to the limitations of WinRT/UWP it is not allowed to load
> external/system dlls so this cannot be used as a complete replacement
> for normal win32 dll loading.
> ---
> compat/w32dlfcn.h | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/compat/w32dlfcn.h b/compat/w32dlfcn.h
> index bc9bb8c9f5..eeabfe4ee0 100644
> --- a/compat/w32dlfcn.h
> +++ b/compat/w32dlfcn.h
> @@ -21,7 +21,7 @@
>
> #ifdef _WIN32
> #include <windows.h>
> -#if _WIN32_WINNT < 0x0602
> +#if (_WIN32_WINNT < 0x0602) || HAVE_WINRT
> #include "libavutil/wchar_filename.h"
> #endif
> /**
> @@ -71,7 +71,14 @@ exit:
> #ifndef LOAD_LIBRARY_SEARCH_SYSTEM32
> # define LOAD_LIBRARY_SEARCH_SYSTEM32 0x00000800
> #endif
> +#if !HAVE_WINRT
Why not remove the ! and swap the if/else?
> return LoadLibraryExA(name, NULL, LOAD_LIBRARY_SEARCH_APPLICATION_DIR
> | LOAD_LIBRARY_SEARCH_SYSTEM32);
> +#else
> + wchar_t *name_w = NULL;
> + if (utf8towchar(name, &name_w))
> + return NULL;
> + return LoadPackagedLibrary(name_w, 0);
Leaks memory?
> +#endif
> }
> #define dlopen(name, flags) win32_dlopen(name)
> #define dlclose FreeLibrary
> --
More information about the ffmpeg-devel
mailing list