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