我編寫了我的Win32應用程序來測試和調試。我創建了一個具有運行TCP套接字和IBDatabase組件所需的全部功能的數據模塊。在服務應用程序中使用數據模塊
在Win32應用程序環境中成功測試Datamodule後,我試圖將Datamodule掛接到我創建的服務應用程序模板中,但無法使其運行。
有人可能會指出是否使用Datamodule與組件功能封裝主要服務功能的策略是可行的,並給出一個簡單的模板示例如何將它連接起來?
我編寫了我的Win32應用程序來測試和調試。我創建了一個具有運行TCP套接字和IBDatabase組件所需的全部功能的數據模塊。在服務應用程序中使用數據模塊
在Win32應用程序環境中成功測試Datamodule後,我試圖將Datamodule掛接到我創建的服務應用程序模板中,但無法使其運行。
有人可能會指出是否使用Datamodule與組件功能封裝主要服務功能的策略是可行的,並給出一個簡單的模板示例如何將它連接起來?
您必須在服務啓動事件中創建並初始化您的datamodule。要小心數據模塊不應該打開對話框或類似的東西,否則它將掛起等待永遠不會到來的輸入(有辦法讓服務與用戶桌面通信,但良好的服務應該避免它們)。 但是不看你的代碼,很難說出了什麼問題。
是的,您可以在服務應用程序中使用DataModule。
這正是我們的中間層應用服務器。
正如其他人所說,是的,這是絕對有可能的。對於我的實現,我實際上只是將我的數據模塊作爲項目選項中的自動創建。然後我的服務代碼是非常輕的重量和歸結爲這:
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-24 17:28:32
當然可以。您可以在其上放置任何非可視化組件。查看@ ldsandon的答案。 – 2010-05-24 18:29:23
我們通過代碼創建套接字... – 2010-05-24 18:29:33