5

Windowsには、DllMainフラグとDLL_PROCESS_ATTACH / DLL_PROCESS_DETACHフラグがあり、 DLLがプロセスにアタッチされた後にリソースを初期化/解放できます...では、OS Xの場合にエントリポイントを指定するにはどうすればよいですか?いつものように、私はAppleのドキュメントで役立つものを見つけることができません:(

4

4 に答える 4

4

AppleのWeb サイトにあるDynamic Library Programming Topicsのドキュメントでは、

__attribute__((constructor))

__attribute__((destructor))

動的ライブラリにイニシャライザとファイナライザを実装します。

于 2011-06-02T06:41:08.723 に答える
2

私はマルキア(賛成)とババリアスが正しい答えを持っていると思いますが、私はすでにそれを調べたので:これを行う1つの方法は、initルーチンを設定することです. ライブラリの Xcode ビルド設定で「初期化ルーチン」を探します。関数名の前にアンダースコアを付けます。つまり、init ルーチンが DllMain と呼ばれる場合は、「_DllMain」と入力します。

また、以前に obj-c++ を使用して次のような初期化を行いました。

class LibraryInit
{
    public LibraryInit()
    {
        // do some init stuff here
    }
} ;
static LibraryInit sLibraryInit();
于 2011-06-02T06:54:30.847 に答える