madExcept 3.0k para Delphi 2010

 

Mathias Rauen (Aka madshi ), acabou de disponibilizar o madExcept versão 2.5.11.1 com suporte ao Delphi 2010.

Eu estava esperando esta versão para poder compilar o Xananews com o Delphi 2010.

A lista de alterações desde a última versão:

- added Delphi/BCB 2010 support
- added detection for Win2008, Win7, Win2008r2
- fixed: cleartext disassembly missed instruction labels
- fixed: cleartext instruction labels were sometimes wrong
- madListProcesses: added gdi/user object count
- added %exceptClass%
- only exe modules hook/protect new threads by default now
- added HookThreads/DontHookThreads to overwrite default
- undocumented OnExceptBoxDestroy callback added
- fixed: in certain situations bug report wasn’t saved
  • added Delphi/BCB 2010 support
  • added detection for Win2008, Win7, Win2008r2
  • fixed: cleartext disassembly missed instruction labels
  • fixed: cleartext instruction labels were sometimes wrong
  • madListProcesses: added gdi/user object count
  • added %exceptClass%
  • only exe modules hook/protect new threads by default now
  • added HookThreads/DontHookThreads to overwrite default
  • undocumented OnExceptBoxDestroy callback added
  • fixed: in certain situations bug report wasn’t saved

Referências

 
 
 

4 Comments

 
  1. Anderson disse:

    Bom dia Cesar, fico feliz que há pessoas portando aplicações para o Delphi 2010 (me parece ser um bom produto que vale a pena pagar o upgrade e fazer os ajustes nos códigos).

    Topei com um problema e se puder me dar uma luz ou direção lhe agradeço. É o seguinte:

    Eu estou testando o Delphi 2010 e um código que funcionou no 2009 (uso a versão 7 para ambiente de produção) apresenta o erro JPEG error #51 ao ler a imagem do TClientDataSet (firebird2.1.2+drive delphi2010) para um componente Timage:

    ob_stream:TStream;
    ob_jpg:TJPegImage;
    ob_cld:TClientDataSet;
    .
    .
    ob_stream:=ob_cld.CreateBlobStream(ob_cld.FieldByName(‘FOTO’),bmRead);
    ob_jpg.LoadFromStream(ob_stream);
    ob_img.Picture.Assign(ob_jpg);
    .
    .
    e segue o código, mas o erro ocorre no trecho acima.

  2. Cesar disse:

    @Anderson:

    Quando tiver tempo eu vou testar pra ver o que acontece.

    Mas vão algumas dicas:

    • Você tentou usar um TDBImage? Dá o mesmo erro?
    • Você tem certeza de que a imagem foi salva corretamente?
    • Tem como testar o tamanho do blob salvo X o tamanho da imagem original, para ter certeza de que não está truncado?

    Aqui está uma tabela de alguns erros do JPEG

    • #36 : m:=m+’Output file write error — out of disk space?’;
    • #51 = JERR_NO_QUANT_TABLE: Quantization table 0x%02x was not defined
    • #52 : File is not a JPEG-File (for example if you try to read a GIF as a JPG)
    • #53 = JERR_OUT_OF_MEMORY: Insufficient memory (case %d)
    • #60 : JPEG file is incomplete
    • #67 : JPEG file is incomplete (like #60 – don’t know where the difference).

    Uma dica de como saber que erros são estes
    http://edn.embarcadero.com/article/20433

    Pela descrição do erro, parece que está faltando alguma informação do JPEG que deveria ser salvo junto com a imagem.

  3. Anderson disse:

    Cesar, não utilizo o componente TDBImage (mas farei testes com ele).

    Este mesmo código funciona no Delphi 2009 sem problemas (consigo salvar e ler a imagem – e trocar por outra, salvar de novo, ler de novo, etc.) – eu testei com drivers diferentes (upscene, devart) e tudo ok no 2009. No delphi 2010 testei com o próprio driver da Embarcadero e depois com um driver free do Chau Chee Yang (http://sites.google.com/site/dbxfirebird/) e o erro foi o mesmo.

    Acredito que algo mudou no TJPeg/TImage/TStream/TClientDataSet.CreateBlobStream que trata de forma diferente a informação, já que no vídeo sobre o Delphi 2010+Driver Embarcadero+Firebird+DBImage funcionou.

    Esta “quebra” de compatibilidade de código é prá matar, afinal, queremos produzir e não ficar consertando algo que já funcionava. E prá completar a Embarcadero ainda muda a política de licenciamento. Terei agora até o final do ano para comprar o upgrade, porque depois, só quem tiver delphi 2006 ou superior (No meu caso comprei o 2005 e solicitei downgrade para o 7). Isto foi uma decisão injusta, já que algumas das versões após o delphi 7 tiveram pouca aprovação.

  4. Anderson disse:

    Resolvida a questão de acesso a imagem. A rotina de acesso está ok, o problema era na definição do campo BLOB.

    Definido agora como: BLOB SUB_TYPE 0

    O driver da Devart me parece mais robusto, rápido (e mais experto), pois muitos dos problemas que se apresentaram com o driver da Embarcadero, o driver da Devart resolvia as questões internamente. Espero concluir os testes com os trials em 2 semanas.

 

Leave a Comment

 




XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>