0

Windowsで任意のDynamic Link Libraryを実行するために使用できます。

どうすれば任意の dll のエントリ ポイントを知ることができますか?

4

3 に答える 3

1

答えは、必要な詳細の量によって異なります。基本的には、次のようになります。

DLL は、必要に応じてエントリポイント関数を指定できます。存在する場合、プロセスまたはスレッドが DLL をロードまたはアンロードするたびに、システムはエントリポイント関数を呼び出します。

[...]独自のエントリ ポイントを提供する場合は、DllMain 関数を参照してください。DllMain という名前は、ユーザー定義関数のプレースホルダーです。DLL をビルドするときに使用する実際の名前を指定する必要があります。

(MSDN の記事Dynamic-Link Library Entry-Point Functionから引用。)

基本的に、エントリ ポイントは DLL 内で指定でき、オペレーティング システムの DLL ローダーはこれを検索する方法を知っています。

于 2010-09-18T09:40:30.053 に答える
0

IMAGE_OPTIONAL_HEADERWindowsマシン上のポータブル実行可能ファイルのヘッダーの一部)には、AddressOfEntryPoint呼び出すエントリポイント(ローダーなど)を探すプログラムによって呼び出されるのRVAが含まれています。

の詳細については、こちらIMAGE_OPTIONAL_HEADERをご覧ください。そして、このペーパーは、一般的な体育の知識だけに適しています。

于 2010-09-18T15:32:25.503 に答える
0

「DLL を実行する」とはどういう意味ですか? DLL は通常のプログラムではなく、単なる関数の集まりです。通常、エントリ ポイント自体は、DLL 内の他の関数で必要とされるものを初期化する以外には、あまり機能しません。エントリ ポイントは、DLL がロードされるときに自動的に呼び出されます (LoadLibraryこれを行うために を使用できます)。

DLL をロードした後に特定の関数を呼び出したい場合は、 を使用して、必要なGetProcAddress関数へのポインターを取得できます。

于 2010-09-18T15:40:31.030 に答える