RES: RES: RES: [firebase-br] Processo Firebird Server consumindo CPU

Marcio Morais otherpan em yahoo.com.br
Ter Mar 22 14:02:56 -03 2005


Desculpa Pablo, mas realmente haviam erros no codigo estou mandando para 
seu email.

[]'s
Marcio Morais

Pablo Madi Dias escreveu:

>	Márcio, compilei a função que você passou, mas está apresentando
>alguns erros... será que vc podeia me dar uma ajuda? 
>
>	Alguem que saiba C sabe o porque desse erro? Sei que é
>incompatibilidade de tipos, no momento da conversão, mas como resolver?
>
>	Segue o log do compilador:
>
>Compiler: Default compiler
>Executing  g++.exe...
>g++.exe "C:\RegServ.cpp" -o "C:\RegServ.exe"
>-I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include"
>-I"C:\Dev-Cpp\include\c++\3.4.2\backward"
>-I"C:\Dev-Cpp\include\c++\3.4.2\mingw32"  -I"C:\Dev-Cpp\include\c++\3.4.2"
>-I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib" 
>C:\RegServ.cpp: In function `BOOL InstallService()':
>C:\RegServ.cpp:43: error: invalid conversion from `void*' to `SC_HANDLE__*'
>C:\RegServ.cpp:43: error:   initializing argument 1 of `SC_HANDLE__*
>CreateServiceA(SC_HANDLE__*, const CHAR*, const CHAR*, DWORD, DWORD, DWORD,
>DWORD, const CHAR*, const CHAR*, DWORD*, const CHAR*, const CHAR*, const
>CHAR*)' C:\RegServ.cpp:48: error: invalid conversion from `void*' to
>`SC_HANDLE__*' C:\RegServ.cpp:48: error:   initializing argument 1 of `BOOL
>CloseServiceHandle(SC_HANDLE__*)' C:\RegServ.cpp: In function `BOOL
>DeleteService()':
>C:\RegServ.cpp:61: error: invalid conversion from `void*' to `SC_HANDLE__*'
>C:\RegServ.cpp:61: error:   initializing argument 1 of `SC_HANDLE__*
>OpenServiceA(SC_HANDLE__*, const CHAR*, DWORD)' C:\RegServ.cpp: In function
>`int main(int, char**)':
>C:\RegServ.cpp:98: error: invalid conversion from `const TCHAR*' to `CHAR*'
>Execution terminated
>
>	[]´s
>
>-----Mensagem original-----
>De: Marcio Morais [mailto:otherpan em yahoo.com.br]
>Enviada em: sexta-feira, 18 de março de 2005 17:37
>Para: FireBase
>Assunto: Re: RES: RES: [firebase-br] Processo Firebird Server consumindo
>CPU
>
>
>Essa função abaixo eu utilizo para registrar um serviço desenvolvido por 
>mim no win XP, para compilar é só usar o Mingw, se prefirirem podem 
>utilizar o Dev-C++ que quebra um galho.
>
>Note que no cabeçalho se encontra o caminho do exe do serviço o nome e a 
>ser exibido e o nome do serviço propriamente dito, não se vai qual exe 
>que tem q declara do firebird, mas talvez dê para ajudar.
>
>Se tiverem dificuldades, posso depois compilar com uma interface grafica 
>e mandar para interessados.
>
>[]'s
>Marcio Morais
>
>
>/***************************************************************************
>********************/
>#include <Windows.h>
>#include <stdio.h>
>#include <stdlib.h>
>#include <Winsvc.h>
>#include <tchar.h>
>
>SERVICE_STATUS m_ServiceStatus;
>SERVICE_STATUS_HANDLE m_ServiceStatusHandle;
>BOOL bRunning=1;
>void WINAPI ServiceMain(DWORD argc, LPTSTR *argv);
>void WINAPI ServiceCtrlHandler(DWORD Opcode);
>BOOL InstallService();
>BOOL DeleteService();
>LPCTSTR   lpszDisplayName="a_Marcio_service";
>LPCTSTR   lpszServiceName="marcio_service";
>LPCTSTR   szPath="C:\\Dev-Cpp\\servico.exe";
>
>//--------------------------------------------------------------------------
>-----------------------------------------------------
>BOOL InstallService()
>{
>  char strDir[1024];
>  HANDLE schSCManager,schService;
>  GetCurrentDirectory(1024,strDir);
>
>  schSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
>
>  if (schSCManager == NULL)
>    return 0;
>
>  schService = CreateService(
>     schSCManager,
>     lpszServiceName,
>     lpszDisplayName, // service name to display
>     SERVICE_ALL_ACCESS, // desired access
>     SERVICE_WIN32_OWN_PROCESS, // service type
>     SERVICE_DEMAND_START, // start type
>     SERVICE_ERROR_NORMAL, // error control type
>     szPath,    // service's binary
>     NULL, // no load ordering group
>     NULL, // no tag identifier
>     NULL, // no dependencies
>     NULL, // LocalSystem account
>     NULL); // no password
>
>  if (schService == NULL)
>    return 0;
>
>  CloseServiceHandle(schService);
>  return 0;
>}
>//--------------------------------------------------------------------------
>-----------------------------------------------------
>BOOL DeleteService()
>{
>  HANDLE schSCManager;
>  SC_HANDLE hService;
>
>  schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
>
>  if (schSCManager == NULL) { return 0; }
>
>  hService=OpenService(schSCManager,lpszServiceName,DELETE);
>
>  if (hService == NULL) { return 0; }
>
>  if(! DeleteService(hService)) { return 0; }
>
>  if(CloseServiceHandle(hService)==0) { return 0; }
>
>return 1;
>}
>//--------------------------------------------------------------------------
>-----------------------------------------------------
>int main(int argc, char* argv[])
>{
>  if(argc>1)
>  {
>    if(strcmp(argv[1],"-i")==0)
>    {
>      if(InstallService())
>        printf("\n\nService Installed Sucessfully\n");
>      else
>        printf("\n\nError Installing Service\n");
>    }
>    if(strcmp(argv[1],"-d")==0)
>    {
>      if(DeleteService())
>        printf("\n\nService UnInstalled Sucessfully\n");
>      else
>        printf("\n\nError UnInstalling Service\n");
>    }
>    else
>    {
>      printf("\n\nUnknown Switch Usage\n\nFor Install use Srv1 -i\n\nFor 
>UnInstall use Srv1 -d\n");
>    }
>  }
>  else
>  {
>    SERVICE_TABLE_ENTRY DispatchTable[]= 
>{{lpszDisplayName,ServiceMain},{NULL,NULL}};
>    StartServiceCtrlDispatcher(DispatchTable);
>  }
>  return 0;
>}
>
>/***************************************************************************
>*******************/
>
>
>
>
>Pablo Madi Dias escreveu:
>
>  
>
>>	Eu já procurei bastante, mas não encontrei nada referente a isto
>>também...
>>
>>-----Mensagem original-----
>>De: Carlos H. Cantu [mailto:listas em warmboot.com.br]
>>Enviada em: sexta-feira, 18 de março de 2005 16:34
>>Para: FireBase
>>Assunto: Re: RES: [firebase-br] Processo Firebird Server consumindo CPU
>>
>>
>>Acho que sim... de uma procurada na Internet pra saber como registrar
>>um serviço no windows. Eu acredito que vc dá o nome que quiser pra
>>ele.
>>
>>[]s
>>Cantu
>>http://www.warmboot.com.br
>>FireBase - http://www.FireBase.com.br
>>
>>
>>PMD>         Cantu, o problema é que o sistema não fui eu quem desenvolveu,
>>e não
>>PMD> tenho os fontes... será que existiria alguma maneira de registrar o
>>serviço
>>PMD> do firebird 1.5.2 como Firebird Server, ao invés de "Firebird Server -
>>PMD> Default Instance" ?
>>
>>
>>
>>______________________________________________
>>FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>Para editar sua configuração na lista, use o endereço
>>http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>
>>Esta mensagem, incluindo seus anexos, pode conter informações privilegiadas
>>e/ou de caráter confidencial, não podendo ser retransmitida sem autorização
>>do remetente. Se você não é o destinatário ou pessoa autorizada a
>>    
>>
>recebê-la,
>  
>
>>informamos que o seu uso, divulgação, cópia ou arquivamento são proibidos.
>>Portanto, se você recebeu esta mensagem por engano, por favor, nos informe
>>respondendo imediatamente a este e-mail e em seguida apague-a.
>>
>>______________________________________________
>>FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>Para editar sua configuração na lista, use o endereço
>>    
>>
>http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>  
>
>> 
>>
>>    
>>
>
>
>
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>Para editar sua configuração na lista, use o endereço
>http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
>Esta mensagem, incluindo seus anexos, pode conter informações privilegiadas
>e/ou de caráter confidencial, não podendo ser retransmitida sem autorização
>do remetente. Se você não é o destinatário ou pessoa autorizada a recebê-la,
>informamos que o seu uso, divulgação, cópia ou arquivamento são proibidos.
>Portanto, se você recebeu esta mensagem por engano, por favor, nos informe
>respondendo imediatamente a este e-mail e em seguida apague-a.
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
>
>  
>







Mais detalhes sobre a lista de discussão lista