como liberar memória
bom galera, meu problema é o seguinte:
Estou usando uma procedure que esta em uma ´DLL´ e estou fazendo assim:
até ai beleza, a consigo executar a procedure da dll.
porem quando fecho o aplicativo da um erro: abre uma tela ´CPU´ e o erro:
[b:cbc2dafe4c]obs:[/b:cbc2dafe4c] o programa faz tudo que precisa fazer apenas não consigo eliminar essa mensagem ao fechar o programa
Estou usando uma procedure que esta em uma ´DLL´ e estou fazendo assim:
type
Reg_Tabela = packed record
Tab_Arquivo: array[0..19] of Char;
Tab_Registros: Integer;
end;
procedure DLLNCR(var ATabela: Reg_Tabela); stdcall; external ´gerancr.dll´;
procedure TfrmTabela.btnGeraTabela;
var Tabela: Reg_Tabela;
begin
try
Tabela.Tab_Arquivo := ´´;
Tabela.Tab_Registros := 0 ;
{ : Aqui executo a dll }
DLLNCR(Tabela);
TxtArquivo.Text := Tabela.Tab_Arquivo;
TxtRegistros.Text := IntToStr(Tabela.Tab_Registros);
except
Application.MessageBox(´ERRO ao compactar a tabela [ NOS.SEM ]´, ´DllNcr´,
MB_OK+MB_ICONERROR);
end;
end;
até ai beleza, a consigo executar a procedure da dll.
porem quando fecho o aplicativo da um erro: abre uma tela ´CPU´ e o erro:
faulted with message: ´access violation at 0X61046d46 read of address 0X00000000´
[b:cbc2dafe4c]obs:[/b:cbc2dafe4c] o programa faz tudo que precisa fazer apenas não consigo eliminar essa mensagem ao fechar o programa
Fabiano Góes
Curtidas 0
Respostas
Nerdex
26/12/2006
Goes, se vc usa o Delphi 7.1, 7.0 ou inferiores, sugiro que vc introduza a FastMM, que é o novo gerenciador de memória, este mesmo usado no Delphi 2005/2006. Vc também, poderá configurá-lo para capturar os vazamentos de memória que casualmente poderão vir a existir. E outra coisa, pq vc não tenta dar um DISPOSE / FREE nesse packed record após seu uso?
GOSTEI 0
Fabiano Góes
26/12/2006
NerdeX, obrigado pela atenção, vou procurar pelo ´FastMM´.
mais como eu faço:
valeu !!!
mais como eu faço:
DISPOSE / FREE nesse packed record após seu uso?
valeu !!!
GOSTEI 0