1 /* dynload.h - Wrapper functions for run-time dynamic loading
2 * Copyright (C) 2003, 2010 Free Software Foundation, Inc.
4 * This file is part of GnuPG.
6 * GnuPG is free software; you can redistribute it and/or modify it
7 * under the terms of either
9 * - the GNU Lesser General Public License as published by the Free
10 * Software Foundation; either version 3 of the License, or (at
11 * your option) any later version.
15 * - the GNU General Public License as published by the Free
16 * Software Foundation; either version 2 of the License, or (at
17 * your option) any later version.
19 * or both in parallel, as here.
21 * GnuPG is distributed in the hope that it will be useful, but
22 * WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 * General Public License for more details.
26 * You should have received a copies of the GNU General Public License
27 * and the GNU Lesser General Public License along with this program;
28 * if not, see <https://www.gnu.org/licenses/>.
31 #ifndef GNUPG_COMMON_DYNLOAD_H
32 #define GNUPG_COMMON_DYNLOAD_H
38 # include "utf8conv.h"
39 # include "mischelp.h"
43 dlopen (const char *name, int flag)
46 #ifdef HAVE_W32CE_SYSTEM
47 wchar_t *wname = utf8_to_wchar (name);
48 hd = wname? LoadLibrary (wname) : NULL;
51 hd = LoadLibrary (name);
58 dlsym (void *hd, const char *sym)
62 #ifdef HAVE_W32CE_SYSTEM
63 wchar_t *wsym = utf8_to_wchar (sym);
64 void *fnc = wsym? GetProcAddress (hd, wsym) : NULL;
67 void *fnc = GetProcAddress (hd, sym);
77 static inline const char *
81 snprintf (buf, sizeof buf, "ec=%lu", GetLastError ());
96 # endif /*__MINGW32__*/
97 #endif /*GNUPG_COMMON_DYNLOAD_H*/