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