При загрузке совместно используемой библиотеки по ее имени, система ищет фактический файл (например, .dll) в некоторых каталогах, в зависимости от порядка поиска или в кэше.
Как программно получить разрешенный путь дляDLL дал свое имя, но не загружая его?Например, в Windows для kernel32
или kernel32.dll
это, вероятно, вернет C:\windows\system32\kernel32.dll
, тогда как для foo
это может быть C:\Program Files\my\app\foo.dll
.
Если это невозможно, есть ли другой способ определить, принадлежит ли определенная библиотека к системе?Например, user32.dll
или libc.so.6
являются системными библиотеками, а avcodec-55.dll
или myhelperslib.so
- нет.
Мне интересны решения, которые работают на Windows, Linux и Mac OS.