1

C++ を使用して Mac OS で dll (別名フレームワーク) をロードする関数を実装するにはどうすればよいですか?
void LoadFramework(const char* frameworkPath) { //frameworkPath is the absolute path of the framework }

編集:
この問題をグーグルで検索したところ、フレームワークをロードするための dlopen ソリューションがほとんどでした。代わりに探しているのは、CFBundleCreateを使用してフレームワークをロードすることです。const char * パスから URL を構築するために呼び出す必要があるメソッドがたくさんあるように思えます。必要なコードが断片的に見つかり、1 つの包括的なソリューションを作成できませんでした。

4

2 に答える 2

1

通常、Mac でフレームワークを開くには、数行の簡単なコードで済みます。次のようなものです。

bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault,
    CFSTR("/System/Library/Frameworks/<your_framework_name.framework>"),
    kCFURLPOSIXPathStyle, true);

bundle = CFBundleCreate(kCFAllocatorDefault, bundleURL);
assert(bundle != NULL);

そのスニペットのほとんどすべてが十分に文書化されています。正確に機能していないものの詳細について、質問に詳細を追加することをお勧めします。

于 2019-11-25T13:01:06.807 に答える