Access violation in module ‘DFWEDIT.DLL’

Você está trabalhando em um projeto no seu bom e velho Delphi, e sem qualquer cerimônia a IDE emite: “Access violation at address <...> in module ‘DFWEDIT.DLL’. Read of address <...>” ao abrir uma unit do projeto. Você pesquisa e descobre que esta biblioteca é do próprio Delphi. Fecha e reabre a IDE. Nada. Reinicia o micro. Nada. E agora?

Não sei exatamente do que se trata, mas os meus passos para fazer o problema aparecer, foram:

  • Criar um projeto com Delphi 5 Professional.
  • Abrir o mesmo projeto com Turbo Delphi Explorer.
  • Resolver alguns erros de compilação, deixar o código compatível com os dois compiladores, etc., etc. e salvar o projeto.
  • Voltar ao Delphi 5, reabrir o mesmo projeto e tentar abrir uma das units que foram abertas no Turbo Delphi.

Pronto. Se você teve sorte, ao abrir a unit você viu algo como isto aqui:

AV DFWEDIT.DLL

E depois disto a IDE não presta mais, você mal consegue fechá-la sem apelar para as vias de fato.

Este erro ocorre devido a um corrompimento do arquivo NomeDoGrupo.dsk, que é gravado na mesma pasta do .bpg, e este Arquivo é lido pela IDE para compor o menu File | Reopen. Porém, não adianta apenas remover o arquivo .dsk, a IDE faz um merge deste arquivo com informações do registro, é necessário também apagar as entradas “File*” da chave “HKEY_CURRENT_USER\Software\Borland\Delphi\5.0\Closed Files”. É uma chave do usuário, não precisa ter privilégio de administrador. Feito isto, basta fechar e reabrir a IDE para o erro desaparecer. Talvez problema semelhante possa ocorrer com outras versões antigas, então fica a dica.

5 thoughts on “Access violation in module ‘DFWEDIT.DLL’”

  1. Ai João obrigado pela dica, um dia sairei do grau de aprendiz e poderei retriuir, por em quanto muito obrigado.

  2. Olha, queria só avisar pro pessoal que ache essa pagina que no meu caso, mexendo com o Delphi 6 essa mensagem apareceu, mas foi porque eu fazia referencia a um formulário e não tinha criado ele no formulário em que estava mexendo. Pra quem nao entendeu…
    EX. errado:

    if qryMoveFotos.IsEmpty then
    MoverArquivo(‘C:\Inforlub\Images\Products\’);
    FormAguarde.BarraProgressao.StepIt;

    EX. CORRETO:
    FormAguarde := TFormAguarde.create(Application);
    FormAguarde.show;
    if qryMoveFotos.IsEmpty then
    MoverArquivo(‘C:\Inforlub\Images\Products\’);
    FormAguarde.BarraProgressao.StepIt;

  3. A mensagem que você recebeu foi um Access Violation, no entanto não foi no módulo DFWEDIT.DLL. O seu erro é causado através da sua aplicação, e o erro reportado neste post é causado dentro da IDE do Delphi.

  4. Cara… valeu pela dica.. tava no meio de um projeto e ja tava apavoradooo… ehehhe
    Abraço!!!

  5. Thank you so much! You saved my day! 🙂

    I’m developing hobby project (KaM Remake) and today I was going to work on it but the error appeared and I couldn’t find any solution but yours!

Comments are closed.