繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM