2

テストとデバッグのために Win32 アプリを作成しました。TCP ソケットと IBDatabase コンポーネントを実行するために必要なすべての機能を備えたデータモジュールを作成しました。

Win32 アプリケーション環境でデータモジュールのテストに成功した後、作成したサービス アプリケーション テンプレートにデータモジュールをフックしようとしていますが、どこにも実行できません。

主要なサービス機能をカプセル化するコンポーネント機能を備えたデータモジュールを使用するこの戦略が実行可能かどうかを誰かが示し、実行可能である場合にそれを接続する方法の簡単なテンプレートの例を示すことができますか??

4

3 に答える 3

7

サービス開始イベントでデータモジュールを作成して初期化する必要があります。データモジュールがダイアログボックスなどを開かないように注意してください。そうしないと、決して来ない入力を待ってハングします(サービスをユーザーのデスクトップと通信させる方法はありますが、優れたサービスはそれらを回避する必要があります)。しかし、コードを見ずに、何が問題になっているのかを判断するのは困難です。

于 2010-05-24T18:19:26.740 に答える
2

他の人が述べたように、はい、これは間違いなく可能です。私の実装では、実際にはプロジェクト オプションでデータ モジュールを自動作成するだけです。次に、私のサービスコードは非常に軽量で、要約すると次のようになります。

procedure TMyService.ServiceStart(Sender: TService; var Started: Boolean);
begin
  Started := myDataModule.Startup;
end;

procedure TMyService.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
  myDataModule.Cleanup;
  Stopped := True;
end;
于 2010-05-24T19:47:25.707 に答える
1

はい、サービスアプリケーションでDataModuleを動作させることができます。
それはまさに私たちの中間層のアプリサーバーのために持っているものです。

于 2010-05-24T16:57:41.067 に答える