![](/img/trans.png)
[英]Can't load dynamic shared library at runtime including another shared library in C++
[英]Load a dynamic shared library (DLL) on Mac in C++ using CFBundleCreate
如何使用 function 在 Mac OS 上使用 C++ 加载 dll(又名框架)?
void LoadFramework(const char* frameworkPath) { //frameworkPath is the absolute path of the framework }
编辑:
当我用谷歌搜索这个问题时,我大多以 dlopen 解决方案来加载框架。 我正在寻找的是使用CFBundleCreate来加载框架。 在我看来,需要调用一堆方法来从 const char * 路径构造一个 URL 。 我找到了需要的代码,无法编写一个全面的解决方案。
在 Mac 中打开框架通常只需几行简单的代码,大致如下:
bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault,
CFSTR("/System/Library/Frameworks/<your_framework_name.framework>"),
kCFURLPOSIXPathStyle, true);
bundle = CFBundleCreate(kCFAllocatorDefault, bundleURL);
assert(bundle != NULL);
该片段中的几乎所有内容都有据可查。 我建议在问题中添加更多详细信息,以了解哪些具体不适合您。
为什么不这样做?
using DLL_Namespace;
这应该可以让您访问 DLL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.