使用CFBundleCreate在C++中的Mac上加载动态共享库(DLL)



如何使用C++在Mac OS上实现加载dll(又名框架(的函数?
void LoadFramework(const char* frameworkPath) { //frameworkPath is the absolute path of the framework }

编辑:
当我在谷歌上搜索这个问题时,我主要使用dlopen解决方案来加载框架。相反,我想要的是使用CFBundleCreate来加载框架。在我看来,需要调用一堆方法来从constchar*路径构建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。

最新更新