1. 故事
听说 Boost 有一个跨平台的 shared_library 可以管理动态链接库,试试?
2. 尝试
1 |
|
3. 思考
上面的例子显然不合格,因为它并不跨平台!动态加载 Windows 特有的 ntdll.dll 应该用 Windows Implementation Library。
但作为范例,或者项目已经引入 Boost,却没有引入 wil,也是可以用用,只是它并不极致。比如说,ntdll.dll 其实并不需要 load,它必然被加载,只需要 GetModuleHandle 即可。
所以它其实还不如这个好用:https://github.com/UMU618/umu/blob/main/include/umu/module.hpp