Fórum Erro estranho no system.pas #322430
29/05/2006
0
00404326 8BC0 mov eax,eax
Não sei o que está acontecendo, por isso peço ajuda de vcs para solucionar este problema, pois este sistema executa em algumas máquinas com XP, em outras oras executa e oras não; e em outras nem executa.
Desde já agradeço.
Alex Maia
Curtir tópico
+ 0Posts
29/05/2006
Alex Maia
system.pas. 8372:
00404325 C3 ret
00404326 8BC0 mov eax,eax
Gostei + 0
30/05/2006
Alex Maia
Fiz um levantamento aqui na empresa e descobri que as máquinas em que ocorreram os problemas são pentium. A maioria das máquinas aqui são AMD, a máquina onde compilo o sistema tambem é AMD e nelas não houve erro algum. Pergunto:
Será que o erro pode ser este mesmo?? Alguem já teve algum problema de incompatibilidade assim??
Desde já agradeço
Gostei + 0
30/05/2006
Amarildo
Gostei + 0
31/05/2006
Alex Maia
Gostei + 0
31/05/2006
Massuda
Uma fonte de erros na inicialização costuma ser ter componentes de acesso a banco de dados ativos quando você compila o programa; o ideal é você ter esses componentes desativados e, depois de configurá-los na inicialização do programa, ativar essas conexões.
Você não mencionou qual sua versão do Delphi, mas olhando no meu System.pas aparentemente o problema está ocorrendo ao manipular strings OLE; geralmente isso está relacionado com objetos COM. Você usa algum objeto COM no seu programa, por exemplo, WordApplication?
Gostei + 0
31/05/2006
Alex Maia
Já olhei a inicialização do sistema. Eu uso o Delphi 7 e na inicialização o meu DataModule é criado, porém nenhuma conexão com o banco de dados é estabelacida. Fora isso, somente a busca de valores armazenados em um arquivo INI é realizada. A conexão com o banco eu realizo através de tela de login depois que o usuário pede para validar usuário e senha. Sendo assim eu descarto a possibilidade de ter componentes de acesso a banco de dados ativos quando você compila o programa. Só pra esclarecer o que eu disse, o sistema é compilado normalmente na minha máquina que é um semprom, roda perfeitamente nas outras máquinas AMD aqui na empresa, contudo ora não executa e ora executa em máquinas com processadores P4.
Gostei + 0
31/05/2006
Massuda
Isso pode indicar algum problema em algum ponto da inicialização. Talvez não seja o caso, mas um detalhe importante, mas geralmente ignorado, é que em caso de exceção durante a criação de um objeto, o destrutor desse objeto é automaticamente chamado; por esse motivo, é bom testar no destrutor se os objetos a serem destruídos são válidos (ou use .Free) e nunca usar .Destroy.
Fora isso, não me ocorre mais nada que possa causar esse problema.
Gostei + 0
01/06/2006
Alex Maia
Segue abaixo o código de inicialização do meu sistema. Por favor, veja se há algo de errado.
.
.
.
var
SystemDir: array [0..144] of char;
Ini: TIniFile;
begin
try
Application.Initialize;
Application.Title := ´Nome Sistema´;
Application.CreateForm(TDM, DM);
//Pega o caminho do diretorio system do windows
GetSystemDirectory(SystemDir, 144);
Ini := TIniFile.Create(String(SystemDir + ´\TVNews.Ini´));
if Ini.ReadString(´Dados´,´Registry´,´´) <> ´T´ then begin
try
If F_Registro = Nil Then
Application.CreateForm(TF_Registro,F_Registro);
F_Registro.ShowModal;
FreeAndNil(F_Registro);
except
Application.MessageBox(´Erro ao criar tela de registro do sistema!´,
´Atenção´, MB_ICONEXCLAMATION + MB_OK);
end;
end;
p_AppPath := ExtractFilePath(Application.ExeName);
p_HostName := Ini.ReadString(´Dados´,´Host_Name´,´´);
p_DbPrincipal := Ini.ReadString(´Dados´,´DbPrincipal´,´´);
p_Password := Ini.ReadString(´Dados´,´Password´,´´);
p_UserName := Ini.ReadString(´Dados´,´User_Name´,´´);
Ini.Free;
Application.CreateForm(TF_Principal, F_Principal);
//Verifica se o sistema já esta aberto
SistemaAberto;
Application.CreateForm(TF_Login, F_Login);
F_Login.ShowModal;
FreeAndNil(F_Login);
Application.Run;
Except
Application.MessageBox(´Erro ao inicializar o sistema. Por favor, contate o suporte técnico!´,
´Atenção´, MB_ICONEXCLAMATION + MB_OK);
end;
end.
Gostei + 0
01/06/2006
Massuda
Você já executou passo-a-passo (na máquina que dá problema) para ver a sequencia de execução do seu programa?
Gostei + 0
01/06/2006
Alex Maia
Gostei + 0
01/06/2006
Massuda
[quote:404950bd77=´Alex Maia´]...ainda mais que ele nunca apresentou erro algum durante as compilações e execuções realizadas na máquina que trabalho.[/quote:404950bd77]Teste na máquina que dá o problema... não tem como corrigir um problema que você não consegue reproduzir.
Fora isso, não tenho mais sugestões.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)