1

tframeでdllを作成しました。アプリケーション内にロードするにはどうすればよいですか、bplsを使用したくない、アプリでexeとdllのみを配布したい

4

2 に答える 2

5

BPLはDLLであるため、BPLの方法を使用してください。はるかに簡単です。

于 2010-10-21T15:50:26.457 に答える
0

それは可能ですが、エラーやメモリの問題なしに動作させるのは大変な作業です。さらに悪いことに、アプリケーションで2つのVCLを使用します。1つは実行可能ファイルで、もう1つはDLLで使用します。フレームはDLLVCLを参照しようとしますが、これはEXEVCLとは非常に異なる情報を提供します。特に、グローバル画面変数とアプリケーション変数をチェックする場合。
それでも、フレームは、フォームと同じように、特別なウィンドウコントロールにすぎません。タイプTFrameの値を返す関数をDLLからエクスポートできます。アプリケーションはこの関数を呼び出してフレームを作成し、他のすべてのフレームを使用する方法で使用することができます。ただし、フレーム内の追加機能に関する特定の情報はありません。
次に取り組む必要があるのは、EXEとVCL関連のDLLの間でデータを同期することです。それはあまりきれいではありません。さらに、タブキーを使用して画面上のコントロールをタブで移動する場合、タブキーを使用してフレームの外側をタブ移動できないため、問題が発生する可能性があります。そして、あなたはこのようないくつかの奇妙なことに気付くでしょう。
私はこのようにフレームを使用する単純なアプリケーションに取り組んできました。私と他の2人は、メモリリークやその他の問題が発生することなく、適切に機能するソリューションを入手するために2か月を費やしました。そのプロジェクトを始める前は、それは良い考えのように思えました。その後、私たちはそれが私たちが望んでいた解決策ではないことが判明したので、DLLのコードを実行可能ファイルのコードとマージして1つの実行可能ファイルを作成しました。
ただし、別の方法を使用しました。メインフォームでwebbrowserコンポーネントの使用を開始しました。DLLには、適切にフォーマットされたHTMLページと、特定の関数が使用されたときに呼び出される一連のメソッドが含まれます。これは簡単なテストアプリケーションでうまく機能しましたが、会社は第11章に進みました...一部の顧客との取引がひどく失火したため、私の雇用主は破産し、会社に巨額の借金を残しました。そして、このようにして興味深いプロジェクトが終了しました...

于 2010-10-26T13:28:43.753 に答える