注意:抱歉,我忘记了我在x86上使用visual studio编译器
答案 0 :(得分:2)
您的问题没有一般性答案。这取决于您是否需要跨平台。
然而,既然你提到“x86上的visual studio编译器”,我打赌你的目标是Windows。在这种情况下,您有两种选择:
官方推荐方式:将您的dll作为资源嵌入可执行文件中;然后,当您的程序启动时,您将磁盘上的某些dll作为临时文件提取(注意文件权限),然后使用LoadLibrary
+ GetProcAddress
hackish方式:你编写一个PE可执行加载程序,以避免Windows API只提供从磁盘上的文件LoadLibrary
的方法这一事实。通过编写自己的PE加载器,您将能够直接从内存流加载DLL。然后,我只是提到它作为参考,但它绝不是应该做的事情
最后,您需要遵守您正在使用的开源项目所选择的许可证。我的回答提供了有关如何实现目标的技术指导;这并不意味着您正在使用的项目的许可证允许您这样做。