none
PAF-ECF: Função md5FromFile na sign_bema.dll RRS feed

  • Discussão Geral

  • Pessoal,

    Criamos na sign_bema.dll uma função que gera o MD5 do executável - a função "md5FromFile".

    Olha como é fácil usa-la e de como ela pode nos ajudar na geração do MD5.

    1) Declaração da função:

    - VB
    Private Declare Function md5FromFile Lib "sign_bema.dll" (ByVal cNomeArquivo As String, ByVal MD5 As String) As Integer

    - Delphi
    function md5FromFile( NomeArq: String; MD5: String ): integer; stdcall; external 'sign_bema.dll';

    2) Utilização:

    - VB
    (...)
    cNomeArquivo = "C:\App.exe"
    cMD5 = space(33)
    iRetorno = md5FromFile(cNomeArquivo, cMD5)
    (...)

    - Delphi
    (...)
    cNomeArquivo := "C:\App.exe";
    For iConta := 1 to 33 do cMD5 := cMD5 + ' ';
    (...)

    A variável cMD5 deve ser iniciada com 33 espaços, pois é nela que a dll ira gravar o MD5 do arquivo executável, no tamanho de 32 bytes + NULL.

    Para baixar a sign_bema.dll com esta feature, acesse:

    http://www.bematech.com.br/suporte/downloads/fisc_win/bemaFI32.zip

    Forte abraço,

    André Munhoz
    Marketing de Parcerias - Bematech Software Partners (BSP)
    andre.munhoz@bematech.com.br

    Siga-nos no TWITTER: http://twitter.com/partnerbematech
    Visite nosso site: http://www.bematech.com.br
    Suporte ao Desenvolvedor: 0800 644 SBSP (7277)
    Central de Atendimento: 0800 644 BEMA (2362)

    . Seja um Bematech Software Partners e venha participar da maior comunidade de desenvolvedores de software para Automação Comercial do Brasil! (http://www.bematech.com.br/partners_asp/sobre.asp)

    . Acesse nosso Fórum de Automação e tire suas dúvidas! (http://partners.bematech.com.br/forum)

    . Acesse nosso BemaCast e fique por dentro das novidades da Bematech! (http://partners.bematech.com.br)

    quinta-feira, 17 de setembro de 2009 13:29

Todas as Respostas

  • Bom dia André, iniciei a minha aplicação e não consigo gerar o md5 pra ela, dá o erro -1.. veja como implementei:

    Delphi
    (...)

    function TECF.GerarMD5(nmPath, MD5 : String): string;
    var
      _MD5 : String;
    begin
      if _isBematech then
      begin
        _MD5   := MD5;
        setlength(_MD5, 33);
        tpRetorno := md5FromFile(nmPath, _MD5);
        verificaRetorno(tpRetorno);
        if(tpRetorno > 0) then
          Result := _MD5
        else
          Result := '';
      end;
    end;

    (...)

    Consigo gerar para outras aplicações, menos para a que está executando esta função. É normal?

    segunda-feira, 31 de dezembro de 2012 16:36
  • Descobri que este erro ocorre quando eu tento buscar o md5 de um aplicativo em execução no windows... 
    Eu devo gravar o md5 em alguma tabela e buscar quando lançar o cupom?

    quarta-feira, 2 de janeiro de 2013 17:43