3

ユーザーがいくつかのオプションを選択してボタンをクリックできるようにするアプリを作成する必要があり、コンパイルされた別のアプリが作成されます。これは可能ですか?Delphi 7 と 2010 を使用しています。

返信ありがとうございます。ここにもう少し情報があります。

グラフィカル アプリであり、グラフィカル アプリを作成する必要があります。

私が望むのは、ユーザーが「App A」(私が最初に作成したもの)を起動し、いくつかのオプションを選択できるようにすることです(秘密にして申し訳ありません。これはおそらく3人が役立つと思うかもしれない100万ドルのアイデアだと思います:)プログラムを使用して「アプリ B」を作成します。その後、「アプリ B」をエンド ユーザーに配布できます。「アプリ B」は、コンパイルされたアプリと構成データを含む単一の実行可能ファイルです。方法はどうでもいいのですが、「アプリ B」を単一の実行可能ファイルにする必要があります。

最終的にコンパイルされたアプリに Delphi を使用する必要さえありません。プリコンパイルされたexeと別の構成ファイルを単一の実行可能ファイルに結合する、Delphiから呼び出すことができるある種の「疑似コンパイラ」がある場合。それもうまくいくでしょう。

返信とヘルプをありがとう。

ありがとうございました。

4

5 に答える 5

6

私もかつて似たような状況に直面しました。exeを使用してexeを作成する必要がありました。複雑さとライセンスの問題から、ソース コードのコンパイルに行きたくありませんでした。

親アプリ P と子アプリ C を呼び出しましょう。また、オプション C が必要とするものはすべて構成ファイル (XML/INI など) にまとめることができると仮定します。私がやったことは次のとおりです。

  1. P と C を作成します。P のリソース データに C を挿入します。
  2. ユーザーがオプションを選択した後にボタンをクリックすると、P はそのリソース データから C を抽出します。
  3. ユーザーが選択したオプションを含む XML ファイルを作成し、C のリソース データに挿入しました。

したがって、C が実行されるときはいつでも、それに詰め込まれた XML ファイルで指定されたオプションが使用されます。複雑でハッキーに見えますが、信頼性が高くシンプルです。「Delphi Embedding Resource in exe」でグーグルを実行すると、上記の記事がたくさん見つかります。

于 2010-08-30T06:12:17.763 に答える
2

必要なすべてのロジックを実装し、独自のローカル リソースから構成を読み取る別のスタブ実行可能ファイルを作成します (実行時にリソースをロードするのに役立つ TResourceStream クラスを参照してください)。

コンパイル時に、そのスタブ実行可能ファイルを RCDATA リソースとしてメイン アプリのリソースに含めます。

実行時に、メイン アプリは、必要に応じてリソースからスタブ実行可能ファイルを抽出し、それをディスクに保存し、Win32 API UpdateResource() 関数を使用して必要な構成データをスタブのリソースに挿入できます。

于 2010-08-31T06:48:25.203 に答える
2

Delphi コンパイラは再配布できないため、ユーザーが Delphi のコピーを持っていない場合の 1 つの解決策は、スクリプト エンジン(RemObjects PascalScript などがありますが、他にもあります)を使用し、そのコードを生成し、そのコードを埋め込むことです(つまり、リソース内) で、起動時にそれを実行します。

于 2010-08-30T08:30:42.910 に答える
2

可能です。ターゲット マシンには、Delphi 7 (または互換) コンパイラ (少なくともコマンド ライン) が必要です。また、コンパイルされたアプリケーションのすべてのソース コードが必要になり、使用する場合はすべてのサード パーティ ライブラリが含まれます。

すべての設定が完了したら、適切なパラメータとパスを指定してコマンド ライン コンパイラ (DCC32.EXE) を呼び出すだけです。

これには、次の 2 つの方法を使用できます。

  • ShellExecute を呼び出す
  • CreateProcess を呼び出す

CreateProcess を使用すると、実行をより細かく制御できます。また、この方法でコンパイラを使用する場合は、法的な問題とライセンスに注意する必要があります。

于 2010-08-30T05:52:08.970 に答える
0

これを行う必要があると考える理由について詳しく知らなければ、実際にはこれを行う必要はないと思います。前述の要件を考えると、Delphi で記述された、構成データ (.ini ファイル、レジストリなど) の存在を検索するアプリを 1 つ用意するだけです。ユーザーはいくつかのオプションを選択し、ボタンをクリックします。」次に、オプションが .ini ファイルに保存され、プログラムの残りの部分が続行され、それらのオプションが使用されます。

または、TMS が提供するパスカル スクリプトを使用することもできます。

アプリのカスタム ブランド バージョンを作成する方法を探している場合は、ResHacker ステップで Inno Setup を使用してください。つまり、Inno で要件を収集し、.exe を一時ディレクトリに吐き出し、ResHacker を使用して .exe を変更し、プログラム フォルダにコピーします。

于 2010-08-30T11:57:58.637 に答える