我写的一个SERVICE的代码,可是运行时候没反应,请问是怎么回事?
Javpp 2004-10-23 11:34:23 //Main.h
//---------------------------------------------------------------------------
#ifndef MainH
#define MainH
//---------------------------------------------------------------------------
#include <SysUtils.hpp>
#include <Classes.hpp>
#include <SvcMgr.hpp>
#include <vcl.h>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TGetData : public TService
{
__published: // IDE-managed Components
void __fastcall ServiceExecute(TService *Sender);
private: // User declarations
public: // User declarations
__fastcall TGetData(TComponent* Owner);
TServiceController __fastcall GetServiceController(void);
friend void __stdcall ServiceController(unsigned CtrlCode);
};
//---------------------------------------------------------------------------
extern PACKAGE TGetData *GetData;
//---------------------------------------------------------------------------
#endif
//Main.cpp
//---------------------------------------------------------------------------
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TGetData *GetData;
HANDLE hComm;
//---------------------------------------------------------------------------
__fastcall TGetData::TGetData(TComponent* Owner)
: TService(Owner)
{
}
TServiceController __fastcall TGetData::GetServiceController(void)
{
return (TServiceController) ServiceController;
}
void __stdcall ServiceController(unsigned CtrlCode)
{
GetData->Controller(CtrlCode);
}
//---------------------------------------------------------------------------
void __fastcall TGetData::ServiceExecute(TService *Sender)
{
try
{
char *ComNo;
DCB dcb;
String Temp;
Temp = "COM1";
ComNo = Temp.c_str ();
hComm = CreateFile (ComNo, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, 0);
if (hComm == INVALID_HANDLE_VALUE)
{
ShowMessage ("Open Port Error");
}
GetCommState (hComm, &dcb);
dcb.BaudRate = CBR_9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
if (!SetCommState (hComm, &dcb))
{
ShowMessage ("Set Port Error");
CloseHandle (hComm);
}
ShowMessage ("OK");
while (!Terminated)
{
ServiceThread->ProcessRequests (false);
}
}
__finally
{
}
}
//---------------------------------------------------------------------------