Foi feito um amplo refactoring no ACBr permitindo acabar com o uso da Capicom no ACBr, isso já era um pedido antigo, visto que a Capicom encontra-se marcada como deprecated a um bom tempo pela Microsoft, agora o ACBr passa a utilizar diretamente as APIs acabando de vez com essa dependência.
Para informações mais completas e explicação detalhada das mudanças visite o link: http://www.projetoacbr.com.br/forum/topic/35727-bye-bye-capicom/
Regys, li o topico postado pelo Daniel, alias estão todos de parabéns, afinal realmente os problemas no uso da Capicom eram de amargar o coração de qualquer um. O cliente que via a gente tentando fazer funcionar um certificado e essa m. de capicom dando um baile, o cliente achava que a gente não sabia resolver o problema. Eram tantas combinações para sua funcionalidade que chegamos a fazer uma lista de verificações quando a maldita não registrava.
Bom mas o fato é que embra o Daniel tenha descrito como fazer, percebi que algo ainda não está de acordo.
W10-D7-32B
Então vamos fazer um check list
Meu desejo:
1) Eliminar o uso da Capicom.DLL
2) Para que isso ocorra preciso apenas fazer o que ?
a) Acbr.Configuracoes.Geral.SSLib:=libWinCrypt; //libCapicom;
b) Abrir Acbr.Inc Eliminar o ponto em (.$DEFINE DFE_SEM_CAPICOM} deixando assim {$DEFINE DFE_SEM_CAPICOM}
c) Com isso, excluir as DLLs antigas cujas as similares com novos nomes estão na pasta D:\CD\ACBr\DLLs\XMLSec\MinGW\32 e excluindo as seguinte DLLs
(Capicom.DLL,
MsXml5.DLL,
MsXml5r.DLL,
Icon.DLL,
IconV.DLL,
ibxmlsec-openssl.dll,
libeay32.dll,
libxml2.dll.
libxmlsec.dll,
libxslt.dll,
ssleay32.dll,
zLib.DLL,
ZLib1.DLL),
deixando na pasta da aplicação apenas as DLLs
(libcharset-1.dll,
libeay32.dll,
libexslt-0.dll,
libgcc_s_dw2-1.dll,
libiconv-2.dll,
libintl-8.dll,
libltdl-7.dll,
libwinpthread-1.dll,
libxml2-2.dll,
libxmlsec1.dll,
libxmlsec1-openssl.dll,
libxslt-1.dll,
ssleay32.dll,
zlib1.dll)
Ao compilar dessa forma, o Delphi, quando tento rodar a aplicação me da a mensagem de que “Suporte a libCapicom foi desativado por compilação {$DEFINE DFE_SEM_CAPICOM}”.
E não segue adiante, então coloquei o ponto novamente e assim compilou, está enviando normalmente em quase 98% dos clientes. Só que dessa forma, eu acredito que não foi eliminado totalmente o Capicom embora, dessa forma, tenha funcionado sem a capicom.dll.
Não sei se voce percebeu a confusão que está minha cabeça.
Então peço a voce, que sempre mastigou as configurações e as manteve em seu blog de forma maravilhosa, que pudesse descrever passo a passo para nós que não temos tanto conhecimento de programação de componentes.
Agradeço imensamente e de certa forma não só pra mim, mas para muitos outros que estão na mesma situação que eu.
abraço
Marcelo Narezzi
Na verdade a Capicom continua como opção no ACBr, mas foi substituída por outras opções, quando você escolhe uma das outras opções não é mais utilizada a Capicom.
Alterei e dá o mesmo erro descrito acima, como resolver?
Se você utilizar Capicom ou algo relativo a ela em qualquer lugar do seu projeto, o erro vai persistir, você deve remover qualquer configuração relativa a Capicon.
Revise as opções de SSLLib no componente ACBrNFe.
ACBrNFe1.Configuracoes.Geral.SSLLib := libWinCrypt;
ACBrNFe1.Configuracoes.Geral.SSLXmlSignLib := xsLibXml2;