Bom dia engenheiros
Peço desculpa caso esteja postando em forum errado. Estou iniciando um projeto de um aplicativo comercial que ira trabalhar com o S@T. Já há alguns dias estou queimando a pestana na tentativa de comunicar meu aplicativo com a SAT.DLL disponibilizada para testes pelo SEFAZ. Meu aplicativo esta sendo desenvolvido em VB.NET. Ao acionar a DLL recebo o seguinte erro:
"Uma chamada para a função PInvoke 'TesteAcessoSAT!TesteAcessoSAT.Module1::ConsultarSAT' desbalanceou a pilha. Isso ocorreu provavelmente porque a assinatura gerenciada de PInvoke não corresponde à assinatura de destino não gerenciada. Verifique se a convenção e o parâmetro de chamada da assinatura de PInvoke são iguais aos da assinatura não gerenciada de destino."
O código que fiz para teste é bastante simples, criei um modulo e defini a DLL conforme abaixo:
Module SAT
Public Declare Ansi Function myConsultarSAT Lib "C:\SAT\SAT.DLL" Alias "ConsultarSAT" (ByVal numeroSessao As Integer) As String
End Module
Em seguida, criei um código para acessar esta DLL como segue:
Public Sub Main()
Dim strRetorno As String
Dim Randomizer As New Random
Dim Sessao As Integer
Sessao = Randomizer.Next(1, 1000000)
Try
strRetorno = myConsultarSAT(Sessao)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Ao executar verifico que a chamada até é feita pois aparece no log do emulador do SEFAZ, mas o erro que informei é demonstrado na tela e nenhum valor retorna para meu aplicativo.
alguém já passou por isso ou tem alguma dica ? Já procurei em diversos forums e sites especializados e atá agora não encontrei nada que pudesse me ajudar.
Fico imensamente grato caso alguém possa me auxiliar.