问题是 Windows 没有dlopenAPI,因此没有dlfcn.h头文件。实际上,Windows 也有类似的 API,即LoadLibrary函数,并且这里写的大部分内容也适用于它。请参考 Microsoft Developer Network 网站 获取更多信息。
我不知道有任何这样的封装器,而且我认为永远不会有一个支持所有dlopendlopen 的选项。
不过,还有其他替代方案:libtltdl(libtool 的一部分),它封装了各种不同的动态加载 API,以及其他dlopen和LoadLibrary。另一个是 GLib 的动态模块加载功能。您可以使用其中一个来确保更好的跨平台兼容性。我从未使用过它们中的任何一个,所以我无法告诉您它们有多稳定以及它们是否真的有效。
您还应该阅读 Program Library HOWTO 的第 4 节“动态加载 (DL) 库”,以了解更多独立于平台加载库和创建类的技术。