Problema no Win98
Caros colegas,
Eis um dos problemas mais ´cabeludos´ que já peguei: Aqui na empresa temos um sistema que atualmente está com 352 forms. O problema é que o programa roda no WinXP e Win2K, mas não roda em Win98. Já ocorreram duas mensagens de erro no Delphi: ´Unable to create process: Espaço insuficiente de armazenamento para processar este comando´ e ´Unable create process: Foi feita uma tentativa de carregar um programa com um formato incorreto´. As mensagens do windows que aparecem são: ´Impossivel executar C:\Programa\Programa.exe´ e ´Não há memória suficiente para iniciar C:\Programa\Programa.exe. Encerre alguns programas e tente novamente´. Porém, se eu retirar dois forms ESPECÍFICOS o programa roda normalmente. Fazendo a depuração no 98, nem chegar a executar a primeira linha do projeto. E, mais estranho ainda é que em um desses form´s, se eu alterar o seu nome, o programa roda; seu eu deixar o nome normal não roda.
Já fiz um infinidade de testes e não consegui resolver o problema.
Alguém já passou por isso ou sabe de algo que possa me ajudar??
Desde já agradeço, :D
Eis um dos problemas mais ´cabeludos´ que já peguei: Aqui na empresa temos um sistema que atualmente está com 352 forms. O problema é que o programa roda no WinXP e Win2K, mas não roda em Win98. Já ocorreram duas mensagens de erro no Delphi: ´Unable to create process: Espaço insuficiente de armazenamento para processar este comando´ e ´Unable create process: Foi feita uma tentativa de carregar um programa com um formato incorreto´. As mensagens do windows que aparecem são: ´Impossivel executar C:\Programa\Programa.exe´ e ´Não há memória suficiente para iniciar C:\Programa\Programa.exe. Encerre alguns programas e tente novamente´. Porém, se eu retirar dois forms ESPECÍFICOS o programa roda normalmente. Fazendo a depuração no 98, nem chegar a executar a primeira linha do projeto. E, mais estranho ainda é que em um desses form´s, se eu alterar o seu nome, o programa roda; seu eu deixar o nome normal não roda.
Já fiz um infinidade de testes e não consegui resolver o problema.
Alguém já passou por isso ou sabe de algo que possa me ajudar??
Desde já agradeço, :D
Weverton
Curtidas 0
Respostas
Gandalf.nho
28/01/2005
Tem algum componente incomum nesses 2 forms problemáticos? Qual o nome do form que está causando problemas?
GOSTEI 0
Denis
28/01/2005
Uma outra coisa. Vc. está deixando o delphi criar os forms automaticamente quando inicia o sistema ? É bom criar o form e depois que usou limpar ele da memória. Isso tbm ajuda bem a economizar memória.
GOSTEI 0
Weverton
28/01/2005
Nenhum componente incomum. Usa os mesmos componentes dos demais forms do programa. O nome é frmParDarDF. Seu eu mudar para frmDar, funciona.
GOSTEI 0
Weverton
28/01/2005
São criados automaticamente somente os DataModules e o form principal. Todos os demais forms são criados em tempo de execução.
GOSTEI 0
Massuda
28/01/2005
[...]temos um sistema que atualmente está com 352 forms. O problema é que o programa roda no WinXP e Win2K, mas não roda em Win98. Já ocorreram duas mensagens de erro no Delphi: ´Unable to create process: Espaço insuficiente de armazenamento para processar este comando´ e ´Unable create process: Foi feita uma tentativa de carregar um programa com um formato incorreto´.
No Win98 existe um limite na quantidade e no tamanho total de forms contidos em um arquivo executável (mais precisamente, o limite se aplica aos recursos/resources nomeados contidos no executável). Esse limite não existe no WinNT/Win2K/WinXP.A solução seria dividir seu sistema em DLLs/BPLs e assim driblar o limite por arquivo imposto pelo Win98.
Para mais detalhes, veja [url=http://groups.google.com.br/groups?hl=pt-BR&lr=&frame=right&th=725d0412d68bfcf3&seekm=3af7acd9_1¬40dnews]esta thread no NG da Borland[/url]. Em particular, a mensagem 10 dessa thread explica porque mudar o nome do form resolve :o seu problema.
GOSTEI 0
Weverton
28/01/2005
Desde já quero agradeço pela resposta. Foi de grandia valia para mim.
Agora, tendo que dividir o executável, o q seria melhor: BPL ou DLL??
Mais uma vez obrigado.
Agora, tendo que dividir o executável, o q seria melhor: BPL ou DLL??
Mais uma vez obrigado.
GOSTEI 0
Massuda
28/01/2005
tendo que dividir o executável, o q seria melhor: BPL ou DLL??
Não tenho muita experiência nessa área para poder afirmar com certeza... Tenho a impressão que usar BPLs e runtime packages seja menos ´sofrido´ que usar DLLs, mas sei que forms em DLLs costumam dar umas boas dores de cabeça.GOSTEI 0