2012-04-16 8 views
0

私は、LoadLibrary()をDllMain [source]から呼び出すことは安全ではないことを読んだことがあります。main()からLoadLibraryを呼び出しても安全ですか?

ただし、コンソールアプリケーションのエントリポイントからの呼び出しは安全ですか?main()?私はこれに関する情報を見つけることができないようです。

ありがとうございます!

答えて

2

はい、安全です。 LoadLibrarymainから呼び出せなかった場合は、コンソールプロセスのどこからでも呼び出すことができませんでした。

DllMainは、呼び出し中に「ローダーロック」が保持され、プロセスが完全に初期化される前に(静的にリンクされたDLLの場合)呼び出されるため、特別です。あなた自身のリンクから

1

エントリポイント関数は、単純な初期化または終了のタスクを実行する必要があります。 は、DLLロード順序に依存ループを作成する可能性があるため、LoadLibrary関数またはLoadLibraryEx関数(またはこれらの関数を呼び出す関数)を呼び出さないでください。

コンソールアプリケーションはDLLのロードチェーンの一部ではないので、それは安全である