Corrijir:Ref. o item 3, não entendi bem qual a correção a ser feita.
Código: Selecionar todos
_IMPRIMIRCFESAT pFunc;
pFunc = (_EXTRAIRLOGS...
Moderador: Moderadores

Corrijir:Ref. o item 3, não entendi bem qual a correção a ser feita.
Código: Selecionar todos
_IMPRIMIRCFESAT pFunc;
pFunc = (_EXTRAIRLOGS...

Mirando el Link del manual pdf que posteó Rochita la función ConsultarSAT posee solo un parametro, al llamar una función dll con mas parametros de los definidos puede generar resultados impredecibles.Edvaldo escreveu:Ok, ref. o item 1, fiz a alteração e antes o funcionava no simulador e após a alteração não funciona nem no simulador e nem no equipamento SAT. A rotina é compilada porém dar um erro de execução do Windows e só fechando.
typedef LPSTR (WINAPI *_CONSULTARSAT) ( INT nRandom, LPSTR cCodAtivacao);
HB_FUNC( SATCONSULTAR )
{
HINSTANCE handle = LoadLibrary("Sat.dll");
if (handle)
{
_CONSULTARSAT pFunc;
pFunc = (_CONSULTARSAT) GetProcAddress(handle, "ConsultarSAT");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2)) );
FreeLibrary( handle );
}
}
Ref. o item 2, o erro é apenas de digitação o correto é LPSTR, mas conntinua sem compilar e não cria o arquivo .Obj.
Ref. o item 3, não entendi bem qual a correção a ser feita.
Obrigado

Código: Selecionar todos
/* OK */ DLL32 FUNCTION SATConsultar( numeroSessao AS _INT ) AS STRING PASCAL FROM "ConsultarSAT" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATAtivar( numeroSessao AS _INT, subComando AS _INT, codigoDeAtivacao AS STRING, CNPJ AS STRING, cUF AS _INT ) AS STRING PASCAL FROM "AtivarSAT" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATAssociarAssinatura( numeroSessao AS _INT, codigoDeAtivacao AS STRING, CNPJ AS STRING, AssinaturaCNPJ AS STRING ) AS STRING PASCAL FROM "AssociarAssinatura" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATDesligar() AS STRING PASCAL FROM "DesligarSAT" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATConsultarNumeroSessao( getRandom AS _INT, codigoAtivacao AS STRING, numeroSessao AS STRING) AS STRING PASCAL FROM "ConsultarNumeroSessao" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATTesteFimAFim( numeroSessao AS _INT, codigoAtivacao AS STRING, dados AS STRING) AS STRING PASCAL FROM "TesteFimAFim" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATEnviarDadosVenda( numeroSessao AS _INT, codigoAtivacao AS STRING, dados AS STRING) AS STRING PASCAL FROM "EnviarDadosVenda" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATCancelarUltimaVenda( numeroSessao AS _INT, codigoAtivacao AS STRING, chaveAcesso AS STRING, dados AS STRING) AS STRING PASCAL FROM "CancelarUltimaVenda" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATConsultarStatusOperacional( numeroSessao AS _INT, codigoAtivacao AS STRING ) AS STRING PASCAL FROM "ConsultarStatusOperacional" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATExtrairLogs( numeroSessao AS _INT, codigoAtivacao AS STRING ) AS STRING PASCAL FROM "ExtrairLogs" LIB hSATDLL

Edvaldo,Edvaldo escreveu:1-A função SATCONSULTAR está faltando o segundo parâmetro código de ativação mas quando o coloco a função é compilada sem erros porém dá erro na execução do programa.
Esto ocurre porque porque el compilador no encuentra alguna definición:Edvaldo escreveu:2-A função SATTROCARATIVACAO compila sem erros (no arquivo de logs) porém não consegue linkar e não gera o .Exe


Código: Selecionar todos
Function ConsultarSAT()
Local cString:= SATCONSULTAR( HB_RandomInt(999999) ), aString:= HB_ATOKENS(cString, [|])
alert( valtoprg( aString ) )
Return
Código: Selecionar todos
#pragma BEGINDUMP
#include "hbapi.h"
#include "windows.h"
typedef LPSTR (WINAPI *_CONSULTARSAT) ( INT nRandom );
typedef LPSTR (WINAPI *_ENVIARVENDASAT) ( INT nRandom, LPSTR cCodAtivacao, LPSTR cDadosVenda);
typedef LPSTR (WINAPI *_CANULTIMAVENDASAT) ( INT nRandom, LPSTR cCodAtivacao, LPSTR cChave, LPSTR cDadosVenda);
typedef LPSTR (WINAPI *_CONSULTARSTATUSSAT) ( INT nRandom, LPSTR cCodAtivacao);
typedef LPSTR (WINAPI *_ATUALIZARSOFTWARE) ( INT nRandom, LPSTR cCodAtivacao);
typedef LPSTR (WINAPI *_EXTRAIRLOGS) ( INT nRandom, LPSTR cCodAtivacao);
HB_FUNC( SATCONSULTAR )
{
HINSTANCE handle = LoadLibrary("sat.dll");
if (handle)
{
_CONSULTARSAT pFunc;
pFunc = (_CONSULTARSAT) GetProcAddress(handle, "ConsultarSAT");
hb_retc( ( LPSTR ) pFunc(hb_parni(1)) );
FreeLibrary( handle );
}
}
HB_FUNC( SATENVIARDADOSVENDA )
{
HINSTANCE handle = LoadLibrary("sat.dll");
if (handle)
{
_ENVIARVENDASAT pFunc;
pFunc = (_ENVIARVENDASAT) GetProcAddress(handle, "EnviarDadosVenda");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2), hb_parc(3)) );
FreeLibrary( handle );
}
}
HB_FUNC( SATCANCELARULTIMAVENDA )
{
HINSTANCE handle = LoadLibrary("sat.dll");
if (handle)
{
_CANULTIMAVENDASAT pFunc;
pFunc = (_CANULTIMAVENDASAT) GetProcAddress(handle, "CancelarUltimaVenda");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2), hb_parc(3), hb_parc(4)) );
FreeLibrary( handle );
}
}
HB_FUNC( SATCONSULTARSTATUSOPERACIONAL )
{
HINSTANCE handle = LoadLibrary("sat.dll");
if (handle)
{
_CONSULTARSTATUSSAT pFunc;
pFunc = (_CONSULTARSTATUSSAT) GetProcAddress(handle, "ConsultarStatusOperacional");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2)) );
FreeLibrary( handle );
}
}
HB_FUNC( SATATUALIZARSOFTWARE )
{
HINSTANCE handle = LoadLibrary("sat.dll");
if (handle)
{
_ATUALIZARSOFTWARE pFunc;
pFunc = (_ATUALIZARSOFTWARE) GetProcAddress(handle, "AtualizarSoftwareSAT");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2)) );
FreeLibrary( handle );
}
}
HB_FUNC( SATEXTRAIRLOGS )
{
HINSTANCE handle = LoadLibrary("sat.dll");
if (handle)
{
_EXTRAIRLOGS pFunc;
pFunc = (_EXTRAIRLOGS) GetProcAddress(handle, "ExtrairLogs");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2)) );
FreeLibrary( handle );
}
}
#pragma ENDDUMP
Código: Selecionar todos
<CFe>
<infCFe versaoDadosEnt="0.06">
<ide>
<CNPJ>22222222222222</CNPJ>
<signAC>11111111111111222222222222221111111111111122222222222222111111111111112222222222222211111111111111222222222222221111111111111122222222222222111111111111112222222222222211111111111111222222222222221111111111111122222222222222111111111111112222222222222211111111111111222222222222221111111111111122222222222222111111111111112222222222222211111111</signAC>
<numeroCaixa>001</numeroCaixa>
</ide>
<emit>
<CNPJ>11111111111111</CNPJ>
<IE>111111111111</IE>
<cRegTribISSQN>1</cRegTribISSQN>
<indRatISSQN>N</indRatISSQN>
</emit>
<dest>
</dest>
<det nItem="1">
<prod>
<cProd>0802</cProd>
<xProd>KIT AMORT TRAS ESCORT 92 PC</xProd>
<NCM>00000000</NCM>
<CFOP>5102</CFOP>
<uCom>PC</uCom>
<qCom>1.0000</qCom>
<vUnCom>10.00</vUnCom>
<indRegra>A</indRegra>
</prod>
<imposto>
<ICMS>
<ICMSSN102>
<Orig>0</Orig>
<CSOSN>102</CSOSN>
</ICMSSN102>
</ICMS>
<PIS>
<PISSN>
<CST>49</CST>
</PISSN>
</PIS>
<COFINS>
<COFINSSN>
<CST>49</CST>
</COFINSSN>
</COFINS>
</imposto>
<infAdProd>Informacoes Adicionais do Produto</infAdProd>
</det>
<det nItem="2">
<prod>
<cProd>0036</cProd>
<xProd>KIT HOMOC UNO CAMB 91-95 KITSB</xProd>
<NCM>00000000</NCM>
<CFOP>5102</CFOP>
<uCom>PC</uCom>
<qCom>1.0000</qCom>
<vUnCom>9.00</vUnCom>
<indRegra>A</indRegra>
</prod>
<imposto>
<ICMS>
<ICMSSN102>
<Orig>0</Orig>
<CSOSN>102</CSOSN>
</ICMSSN102>
</ICMS>
<PIS>
<PISSN>
<CST>49</CST>
</PISSN>
</PIS>
<COFINS>
<COFINSSN>
<CST>49</CST>
</COFINSSN>
</COFINS>
</imposto>
<infAdProd>Informacoes Adicionais do Produto</infAdProd>
</det>
<total>
</total>
<pgto>
<MP>
<cMP>01</cMP>
<vMP>20.00</vMP>
</MP>
<vTroco>1.00</vTroco>
</pgto>
</infCFe>
</CFe>
Código: Selecionar todos
<CFe>
<infCFe versaoDadosEnt="0.06">
<ide>
<CNPJ>15715792000158</CNPJ>
<signAC>i5CxeIA6mAAMgddVpfArY6MTZC7V5lpwPi4us2L+xKrJTvEF+aUgmxO8/3Pik6Y2kEbGMOQB6g7uEzodA9SfpU4hy34ffhB7OxYPpy3ONjPz+1qMMj3Z18KpjvOC/j4qOFM1f37hw8fXTF/X31v4zXbEQjzq1cbtKjlWZPPQB8MCFBNLWcMznFiefH7c2rs9Qam3DiIeAtb3UlLBYT0GsWhq89bKy5+V3x68xS8pyumS9HqnWHt2lUSbcJLEijsn9u2Gobb43Mhj2D3/cMrKB+s1XTZ7oiJP7opu/xqDOEfxSCqJUX+YXZjwQKz4H0RD2EtHGmAyFleX3AqqZTz7qg==</signAC>
<numeroCaixa>001</numeroCaixa>
</ide>
<emit>
<CNPJ>15715792000158</CNPJ>
<IE>623045121111</IE>
<cRegTribISSQN>1</cRegTribISSQN>
<indRatISSQN>N</indRatISSQN>
</emit>
<dest>
</dest>
<det nItem="1">
<prod>
<cProd>0802</cProd>
<xProd>KIT AMORT TRAS ESCORT 92 PC</xProd>
<NCM>00000000</NCM>
<CFOP>5102</CFOP>
<uCom>PC</uCom>
<qCom>1.0000</qCom>
<vUnCom>10.00</vUnCom>
<indRegra>A</indRegra>
</prod>
<imposto>
<ICMS>
<ICMSSN102>
<Orig>0</Orig>
<CSOSN>102</CSOSN>
</ICMSSN102>
</ICMS>
<PIS>
<PISSN>
<CST>49</CST>
</PISSN>
</PIS>
<COFINS>
<COFINSSN>
<CST>49</CST>
</COFINSSN>
</COFINS>
</imposto>
<infAdProd>Informacoes Adicionais do Produto</infAdProd>
</det>
<det nItem="2">
<prod>
<cProd>0036</cProd>
<xProd>KIT HOMOC UNO CAMB 91-95 KITSB</xProd>
<NCM>00000000</NCM>
<CFOP>5102</CFOP>
<uCom>PC</uCom>
<qCom>1.0000</qCom>
<vUnCom>9.00</vUnCom>
<indRegra>A</indRegra>
</prod>
<imposto>
<ICMS>
<ICMSSN102>
<Orig>0</Orig>
<CSOSN>102</CSOSN>
</ICMSSN102>
</ICMS>
<PIS>
<PISSN>
<CST>49</CST>
</PISSN>
</PIS>
<COFINS>
<COFINSSN>
<CST>49</CST>
</COFINSSN>
</COFINS>
</imposto>
<infAdProd>Informacoes Adicionais do Produto</infAdProd>
</det>
<total>
</total>
<pgto>
<MP>
<cMP>01</cMP>
<vMP>20.00</vMP>
</MP>
<vTroco>1.00</vTroco>
</pgto>
</infCFe>
</CFe>
Código: Selecionar todos
<cRegTrib>1</cRegTrib>
<cRegTribISSQN>N</cRegTribISSQN>
<indRatISSQN>N</indRatISSQN>