util/lib.c: Add module file path utility

This commit is contained in:
Felix Anderson 2021-10-25 09:30:34 +00:00
parent bbb7cdf4a5
commit 8412ee2c16
Signed by untrusted user: felix
GPG Key ID: 69ADF8AEB6C8B5D1
3 changed files with 36 additions and 0 deletions

29
util/lib.c Normal file
View File

@ -0,0 +1,29 @@
#include <windows.h>
#include <stdbool.h>
wchar_t *module_file_name(HMODULE module)
{
size_t buf_len;
DWORD len;
wchar_t *buf;
buf_len = MAX_PATH;
buf = malloc(buf_len * sizeof(*buf));
while (true) {
len = GetModuleFileNameW(module, buf, buf_len);
if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) {
buf_len = len;
buf = realloc(buf, buf_len * sizeof(*buf));
break;
}
buf_len *= 2;
buf = realloc(buf, buf_len * sizeof(*buf));
}
return buf;
}

5
util/lib.h Normal file
View File

@ -0,0 +1,5 @@
#pragma once
#include <windows.h>
wchar_t *module_file_name(HMODULE module);

View File

@ -17,6 +17,8 @@ util_lib = static_library(
'dprintf.h',
'dump.c',
'dump.h',
'lib.c',
'lib.h',
'str.c',
'str.h',
],