Gente, consegui resolver o problema !!
Estou postando os trechos código da Class ACBrECFFiscNET alterado, para que o(s) desenvolvedores do projeto possam analisar as mudanças, ou possa optar por outras melhorias e atualizar nos fontes do projeto.
Lembrando, que eu não testei essas mudanças na DataRegis, somente na termoprinter.
Troquei em alguns pontos o PAnsiChar por AnsiString e Resolveu. Gerou o AtoCotep perfeitamente.
Trecho do código :
//dataregis | termoprinter
xGera_PAF : Function ( ComPort : AnsiString;
Modelo : AnsiString;
RegFileName : AnsiString;
COOInicial : AnsiString;
COOFinal : AnsiString) : integer; stdcall;
//xGera_PAF : Function ( ComPort : PAnsiChar;
// Modelo : PAnsiChar;
// RegFileName : PAnsiChar;
// COOInicial : PAnsiChar;
// COOFinal : PAnsiChar) : integer; stdcall;
xGera_AtoCotepe1704_Periodo_MFD : Function ( ComPort : AnsiString;
Modelo : AnsiString;
RegFileName : AnsiString;
DataReducaoInicial : AnsiString;
DataReducaoFinal : AnsiString) : integer; stdcall;
//xGera_AtoCotepe1704_Periodo_MFD : Function ( ComPort : PAnsiChar;
// Modelo : PAnsiChar;
// RegFileName : PAnsiChar;
// DataReducaoInicial : PAnsiChar;
// DataReducaoFinal : PAnsiChar) : integer; stdcall;
---------------------------------------------------------------------------------------------------
else if pos(fsMarcaECF, 'dataregis|termoprinter') > 0 then
begin
DiaIni := FormatDateTime('dd/mm/yyyy', DataInicial);
DiaFim := FormatDateTime('dd/mm/yyyy', DataFinal);
iRet := xGera_AtoCotepe1704_Periodo_MFD( PortaSerial,
ModeloECF,
NomeArquivo,
DiaIni,
DiaFim );
//iRet := xGera_AtoCotepe1704_Periodo_MFD( PAnsiChar( PortaSerial ),
// PAnsiChar( ModeloECF ),
// PAnsiChar( NomeArquivo ),
// PAnsiChar( DiaIni ),
// PAnsiChar( DiaFim ) );
if iRet <> 0 then
raise Exception.Create( ACBrStr( 'Erro ao executar Gera_AtoCotepe1704_Periodo_MFD.'+sLineBreak+
'Cod.: '+IntToStr(iRet) + ' - ' +
GetErroAtoCotepe1704(iRet) )) ;
--------------
else if pos(fsMarcaECF, 'dataregis|termoprinter') > 0 then
begin
//iRet := xGera_PAF( PAnsiChar( PortaSerial ) ,
// PAnsiChar( ModeloECF ),
// PAnsiChar( NomeArquivo ),
// PAnsiChar( CooIni ),
// PAnsiChar( CooFim ) );
iRet := xGera_PAF( PortaSerial ,
ModeloECF,
NomeArquivo,
CooIni,
CooFim );
if iRet <> 0 then
raise Exception.Create( ACBrStr( 'Erro ao executar Gera_PAF.'+sLineBreak+
'Cod.: '+IntToStr(iRet) + ' - ' +
GetErroAtoCotepe1704(iRet) )) ;
if not FileExists( NomeArquivo ) then
raise Exception.Create( ACBrStr( 'Erro na execução de Gera_PAF.'+sLineBreak+
': "'+NomeArquivo + '" não gerado' ))
end
if not FileExists( NomeArquivo ) then
raise Exception.Create( ACBrStr( 'Erro na execução de Gera_AtoCotepe1704_Periodo_MFD.'+sLineBreak+
'Arquivo: "'+NomeArquivo + '" não gerado' ))
end
-----------------------
OBS, eu não estou muito familiarizado com os fontes do projeto, aos poucos vamos contribuindo para melhorar cada vez mais...
Importante: Fiz um contato com o suporte da Termoprinter, com Sr Vinicius, que ajudou e muito nos problemas.
Outra coisa que fica aqui, para o pessoal não bater a cabeça, é que a extração do cotepe, sempre da falha com conversor usb-serial, pelo menos nos que testtei.
Após corrigir o fonte acima, erros e mais erros de violação até, que resolvemos fazer o teste em uma serial..
Abraços;