db2f7c48cb
Dynamic loading of DLL functions is duplicated in several places in Git for Windows' source code. This patch adds a pair of macros to simplify the process: the DECLARE_PROC_ADDR(<dll>, <return-type>, <function-name>, ...<function-parameter-types>...) macro to be used at the beginning of a code block, and the INIT_PROC_ADDR(<function-name>) macro to call before using the declared function. The return value of the INIT_PROC_ADDR() call has to be checked; If it is NULL, the function was not found in the specified DLL. Example: DECLARE_PROC_ADDR(kernel32.dll, BOOL, CreateHardLinkW, LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES); if (!INIT_PROC_ADDR(CreateHardLinkW)) return error("Could not find CreateHardLinkW() function"; if (!CreateHardLinkW(source, target, NULL)) return error("could not create hardlink from %S to %S", source, target); return 0; Signed-off-by: Karsten Blees <blees@dcon.de> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> |
||
---|---|---|
.. | ||
nedmalloc | ||
poll | ||
regex | ||
vcbuild | ||
win32 | ||
apple-common-crypto.h | ||
basename.c | ||
bswap.h | ||
cygwin.c | ||
cygwin.h | ||
fopen.c | ||
gmtime.c | ||
hstrerror.c | ||
inet_ntop.c | ||
inet_pton.c | ||
memmem.c | ||
mingw.c | ||
mingw.h | ||
mkdir.c | ||
mkdtemp.c | ||
mmap.c | ||
msvc.c | ||
msvc.h | ||
obstack.c | ||
obstack.h | ||
pread.c | ||
precompose_utf8.c | ||
precompose_utf8.h | ||
qsort_s.c | ||
qsort.c | ||
setenv.c | ||
sha1-chunked.c | ||
sha1-chunked.h | ||
snprintf.c | ||
stat.c | ||
strcasestr.c | ||
strdup.c | ||
strlcpy.c | ||
strtoimax.c | ||
strtoumax.c | ||
terminal.c | ||
terminal.h | ||
unsetenv.c | ||
win32.h | ||
win32mmap.c | ||
winansi.c |