1

私は最近、コードがいくつかのライブラリを動的にロードし、それらを配線してから、「アプリケーション エントリ ポイント」と呼ばれるものを呼び出す状況に遭遇しました (ライブラリの 1 つは IApplication.Run() を実装する必要があります)。

これは有効な「アプリケーション エントリ ポイント」ですか?

アプリケーションのエントリ ポイントはライブラリをロードする前にあると常に考えていましたが、かなりの量の作業の後に IApplication.Run() が呼び出されていることがわかりました。

4

5 に答える 5

1

アプリケーションおよびシステムという用語は、非常に広く多様に使用される用語であるため、事前に会話相手とその意味について合意する必要があります。たとえば、アプリケーションは UI を備えたものであり、システムは「UI のない」ものである場合があります。一般的には、あなたがじゃがいも、私がじゃがいもと言った場合です。

使用する例については、これはランタイム (.NET や Java など) が行うことです: ライブラリのセットをロードし、アプリケーション エントリ ポイント、つまり「メイン」メソッドを呼び出します。

したがって、あなたの場合、ライブラリをロードするコードはまったく同じことを行っており、おそらくインターフェイスでメソッドを呼び出しているため、ロード コードをそのアプリケーションのランタイムと見なすことができます。それは単なる視点の問題です。

于 2008-09-30T11:17:15.280 に答える
0

おそらく、あなたが言及しているのは、C/C++ コードの main() 関数または Windows アプリの WinMain だと思います。つまり、アプリで実行が通常開始されるポイントです。あなたの質問は非常に広く漠然としています-たとえば、これを実行しているOSはどれですか-しかし、これはあなたが探しているものかもしれません. これはまた、質問に対処するかもしれません。

質問をするときは、詳細があなたの友達であることを心に留めておいてください。詳細を提供すると、人々はより適切で、より多くの情報に基づいた回答を提供できます。

編集: より広いコンテキストで、OS の観点から何が起こらなければならないかを検討してください。ユーザーがアプリを実行することを指定すると、OS はハード ドライブからアプリをロードする必要があり、アプリがメモリにロードされると、新しくロードされたアプリによって占有されているメモリ内のブロックされたポイントに制御を渡す必要があります。 app が実行を継続します。それが「アプリケーション エントリ ポイント」になります。アプリが動的にリンクされたコードで構築されている場合、OS は、正しいアプリ イメージをメモリに取得するために、動的にリンクされたすべてのコードを読み込む必要があります。これらの共有コードをロードしても、アプリがメモリにロードされるときに制御を渡すポイントが OS に必要であるという事実は変わりません。

于 2008-09-30T11:18:47.117 に答える
0

「アプリケーション」という用語は、あなたが何を意味したいかを意味することができます。「アプリケーション」とは、問題を解決するために連携して機能するリソース (ライブラリ、コード、画像など) の集まりを意味します。

したがって、あなたの質問に答えるには、はい、「アプリケーション」という用語の有効な使用法です。

于 2008-09-30T11:12:04.217 に答える
0

アプリケーション自体は、実際には何も意味しません。ユーザーに何らかの価値を提供するコンピューター プログラムについて話すときによく使われます。より正確な用語はアプリケーション ソフトウェアであり、これには次の定義があります。

アプリケーション ソフトウェアは、コンピュータの機能を直接的かつ徹底的に利用して、ユーザーが実行したいタスクを実行するコンピュータ ソフトウェアのサブクラスです。これは、コンピュータのさまざまな機能の統合に関与するシステム ソフトウェアとは対照的ですが、通常、ユーザーに利益をもたらすタスクの実行にそれらを直接適用することはありません。このコンテキストでは、アプリケーションという用語は、アプリケーション ソフトウェアとその実装の両方を指します。

アプリケーションとは実際にはアプリケーション ソフトウェアを意味し、ソフトウェアはコンピューター上であらゆる種類のタスクを実行する任意のコードであるため、ライブラリもアプリケーションになり得ると言えます。

とにかく、ほとんどの用語は人工的な性質のものです。プラグインはアプリケーションではありませんか? お使いのブラウザのフラッシュプラグインは適用されていませんか? いいえ、それは単なるプラグインです。なんで?単独では実行できないため、実際のプロセスにロードする必要があります。しかし、「勝手に動くもの」だけがアプリケーションだという定義はありません。ライブラリについても同じことが言えます。コア アプリケーションは単なる空のコンテナーであり、すべてのロジックと機能は、ユーザーとの対話も含めて、プラグインまたはライブラリによって実行される可能性があります。実行するアプリケーション。これをJavaと比較してください。Javaアプリケーション単独で実行することはできません。Java 仮想マシン (JVM) 内で実行する必要があります。つまり、JVM はアプリケーションであり、Java コードは単に...何ですか? Java コードは実際のアプリケーションであり、JVM はロードされた Java コードなしではエンド ユーザーに何も提供しない単なる空のランタイム環境ではないでしょうか?

于 2008-09-30T11:14:59.060 に答える
0

このコンテキストでの「アプリケーション エントリ ポイント」とは、「アプリケーション (コード) がライブラリに入るポイント」を意味すると思います。

于 2008-09-30T11:34:43.707 に答える