summaryrefslogtreecommitdiff
path: root/submodule.h
diff options
context:
space:
mode:
authorLibravatar Johannes Schindelin <johannes.schindelin@gmx.de>2017-09-25 18:06:24 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-09-26 11:02:49 +0900
commitdb2f7c48cb30f8fdcb2933aa7d9890b34e0c4e94 (patch)
tree10fafc47a8017524f7f106c176329b15598db2ae /submodule.h
parentRelNotes: further fixes for 2.14.2 from the master front (diff)
downloadtgif-db2f7c48cb30f8fdcb2933aa7d9890b34e0c4e94.tar.xz
Win32: simplify loading of DLL functions
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>
Diffstat (limited to 'submodule.h')
0 files changed, 0 insertions, 0 deletions