私は、LoadLibrary()
をDllMain [source]から呼び出すことは安全ではないことを読んだことがあります。main()からLoadLibraryを呼び出しても安全ですか?
ただし、コンソールアプリケーションのエントリポイントからの呼び出しは安全ですか?main()
?私はこれに関する情報を見つけることができないようです。
ありがとうございます!
私は、LoadLibrary()
をDllMain [source]から呼び出すことは安全ではないことを読んだことがあります。main()からLoadLibraryを呼び出しても安全ですか?
ただし、コンソールアプリケーションのエントリポイントからの呼び出しは安全ですか?main()
?私はこれに関する情報を見つけることができないようです。
ありがとうございます!
はい、安全です。 LoadLibrary
をmain
から呼び出せなかった場合は、コンソールプロセスのどこからでも呼び出すことができませんでした。
DllMain
は、呼び出し中に「ローダーロック」が保持され、プロセスが完全に初期化される前に(静的にリンクされたDLLの場合)呼び出されるため、特別です。あなた自身のリンクから
:
エントリポイント関数は、単純な初期化または終了のタスクを実行する必要があります。 は、DLLロード順序に依存ループを作成する可能性があるため、LoadLibrary関数またはLoadLibraryEx関数(またはこれらの関数を呼び出す関数)を呼び出さないでください。
コンソールアプリケーションはDLLのロードチェーンの一部ではないので、それは安全である