25

3 つの機能の違いと、それらをいつ使用するか??

4

3 に答える 3

22

main()は、プログラムがコンソール アプリケーションであることを意味します。

WinMain()は、プログラムがGUI アプリケーションであることを意味します。つまり、コンソールを表示する代わりに、ウィンドウとダイアログ ボックスを表示します。

DllMain()は、プログラムがDLLであることを意味します。DLL は直接実行できませんが、上記の 2 種類のアプリケーションで使用されます。

したがって:

  • ウィンドウなどを表示するプログラムを作成する場合は、WinMain を使用します。
  • DLL を作成するときは、DLLMain を使用します。
  • その他の場合はすべて main を使用してください。
于 2009-01-06T14:37:32.523 に答える
10

WinMain は、プロセスが開始していることを示すためにアプリケーション (.exe を終了) に使用されます。プロセスのコマンド ライン引数を提供し、プロセスのユーザー コード エントリ ポイントとして機能します。WinMain (または別のバージョンのメイン) も必要な関数です。OS は、プロセスの実行 を開始するために呼び出す関数を必要とします。

DllMain は、さまざまなシナリオを示すために DLL に使用されます。最も注目すべきは、次の場合に呼び出されることです。

  1. DLL がプロセスにロードされます: DLL_PROCESS_ATTACH
  2. DLL はプロセスからアンロードされます: DLL_PROCESS_DETACH
  3. プロセスでスレッドが開始されます: DLL_THREAD_ATTACH
  4. スレッドはプロセスで終了します: DLL_THREAD_DETACH

DllMain はオプションの構成要素であり、それに関連付けられた多くの暗黙的なコントラクトがあります。たとえば、別の DLL を強制的にロードするコードを呼び出すべきではありません。一般に、これを正しく行うのはかなり難しい関数であり、非常に特別な必要がない限り避けるべきです。

于 2009-01-06T14:36:40.780 に答える