Ok, fiz alguns testes e acho que o caminho para a soluçãoo do problema é esta forma de trabalho heim. Nos testes que fiz o simulador reconheceu as chamadas porém o programa fica sem controlenão retornando a linha logo abaixo da execução. segue o exemplo que é uma copia do original
Código: Selecionar todos
***********************************************************************************
* Chamadas para DLL Funções de manipulação do cupom fiscal eletrônico Sweda
***********************************************************************************
#include "fivewin.ch"
Function Main()
local xRet:=Consultarsat()
?"Resposta",xRet
Return Nil
Function EnviarDadosVenda(nNumeroSessao, cCodigoAtivacao, cDados)
Local cString:= SATENVIARDADOSVENDA(nNumeroSessao, cCodigoAtivacao, cDados), aString:= HB_ATOKENS(cString, [|])
Return (Iif(Valtype(aString) # [A] .or. len(aString) < 1, {[0], [], [SAT-CFe: Sem Retorno], [], []}, aString))
Function ConsultarSAT()
Local cString:= SATCONSULTAR(Random()), aString:= HB_ATOKENS(cString, [|])
Return (Iif(Valtype(aString) # [A] .or. len(aString) < 1, {[0], [], [SAT-CFe: Sem Retorno], [], []}, aString))
Function ConsultarStatusOperacionalSAT(nNumeroSessao, cCodigoAtivacao)
Local cString:= SATCONSULTARSTATUSOPERACIONAL(nNumeroSessao, cCodigoAtivacao), aString:= HB_ATOKENS(cString, [|])
Return (Iif(Valtype(aString) # [A] .or. len(aString) < 1, {[0], [], [SAT-CFe: Sem Retorno], [], []}, aString))
Function AtivarSAT(nNumeroSessao, subComando, cCodigoAtivacao, CNPJ, cUF)
Local cString:= SATATIVAR(nNumeroSessao, subComando, cCodigoAtivacao, CNPJ, cUF), aString:= HB_ATOKENS(cString, [|])
Return (Iif(Valtype(aString) # [A] .or. len(aString) < 1, {[0], [], [SAT-CFe: Sem Retorno], [], []}, aString))
Function AssociarAssinaturaSAT(nNumeroSessao, cCodigoAtivacao, CNPJ, CNPJSH )
Local cString:= SATASSOCIARASSINATURA(nNumeroSessao, cCodigoAtivacao, CNPJ, CNPJSH), aString:= HB_ATOKENS(cString, [|])
Return (Iif(Valtype(aString) # [A] .or. len(aString) < 1, {[0], [], [SAT-CFe: Sem Retorno], [], []}, aString))
Function ConsultarNumeroSessao(nNumeroSessao, cCodigoAtivacao, nNumeroSessao2)
Local cString:= SATCONSULTARNUMEROSESSAO(nNumeroSessao, cCodigoAtivacao,nNumeroSessao2), aString:= HB_ATOKENS(cString, [|])
Return (Iif(Valtype(aString) # [A] .or. len(aString) < 1, {[0], [], [SAT-CFe: Sem Retorno], [], []}, aString))
Function TesteFimAFim(nNumeroSessao, cCodigoAtivacao, cDados)
Local cString := SATTESTEFIMAFIM(nNumeroSessao, cCodigoAtivacao, cDados), aString:= HB_ATOKENS(cString, [|])
Return (Iif(Valtype(aString) # [A] .or. len(aString) < 1, {[0], [], [SAT-CFe: Sem Retorno], [], []}, aString))
Function CancelarUltimaVenda(nNumeroSessao, cCodigoAtivacao, chaveAcesso, cDados)
Local cString:= SATCANCELARULTIMAVENDA(nNumeroSessao, cCodigoAtivacao, chaveAcesso, cDados), aString:= HB_ATOKENS(cString, [|])
Return (Iif(Valtype(aString) # [A] .or. len(aString) < 1, {[0], [], [SAT-CFe: Sem Retorno], [], []}, aString))
Function ExtrairLogsSAT(nNumeroSessao, cCodigoAtivacao)
Local cString:= SATEXTRAIRLOGS(nNumeroSessao, cCodigoAtivacao), aString:= HB_ATOKENS(cString, [|])
Return (Iif(Valtype(aString) # [A] .or. len(aString) < 1, {[0], [], [SAT-CFe: Sem Retorno], [], []}, aString))
#pragma BEGINDUMP
#include "hbapi.h"
#include "windows.h"
typedef LPSTR (WINAPI *_CONSULTARSAT) ( INT nRandom );
typedef LPSTR (WINAPI *_ATIVARSAT) ( INT nRandom, INT nSubComando , LPSTR cCodAtivacao, LPSTR cCNPJ, INT nUF );
typedef LPSTR (WINAPI *_ASSOCIARASSINATURASAT) ( INT nRandom, LPSTR cCodAtivacao, LPSTR cCNPJ, LPSTR cAssCNPJ );
typedef LPSTR (WINAPI *_CONSULTARSECAOSAT) ( INT nRandom, LPSTR cCodAtivacao, LPSTR cNumSecao );
typedef LPSTR (WINAPI *_TESTEFIMAFIMSAT) ( INT nRandom, LPSTR cCodAtivacao, LPSTR cDadosVenda);
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( SATATIVAR )
{
HINSTANCE handle = LoadLibrary("sat.dll");
if (handle)
{
_ATIVARSAT pFunc;
pFunc = (_ATIVARSAT) GetProcAddress(handle, "AtivarSAT");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parni(2), hb_parc(3), hb_parc(4), hb_parni(5)) );
FreeLibrary( handle );
}
}
HB_FUNC( SATASSOCIARASSINATURA )
{
HINSTANCE handle = LoadLibrary("sat.dll");
if (handle)
{
_ASSOCIARASSINATURASAT pFunc;
pFunc = (_ASSOCIARASSINATURASAT) GetProcAddress(handle, "AssociarAssinatura");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2), hb_parc(3), hb_parc(4)) );
FreeLibrary( handle );
}
}
HB_FUNC( SATCONSULTARNUMEROSESSAO )
{
HINSTANCE handle = LoadLibrary("sat.dll");
if (handle)
{
_CONSULTARSECAOSAT pFunc;
pFunc = (_CONSULTARSECAOSAT) GetProcAddress(handle, "ConsultarNumeroSessao");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2), hb_parc(3)) );
FreeLibrary( handle );
}
}
HB_FUNC( SATTESTEFIMAFIM )
{
HINSTANCE handle = LoadLibrary("sat.dll");
if (handle)
{
_TESTEFIMAFIMSAT pFunc;
pFunc = (_TESTEFIMAFIMSAT) GetProcAddress(handle, "TesteFimAFim");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2), hb_parc(3)) );
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