Ir para conteúdo
  • Cadastre-se

ricaalm

Membros
  • Total de ítens

    4
  • Registro em

  • Última visita

Community Answers

  1. ricaalm's post in Erro No Acesso A Sat.dll was marked as the answer   
    Boa noite engenheiros
    Esta noite vou finalmente conseguir dormir porque encontrei a solução. O problema é que a SAT.DLL foi construída em C e o tratamento de tamanhos e endereçamento de variáveis do C é diferente daquele utilizado pelo .NET. Por isso é necessário obter o retorno da chamada da função através do endereçamento de memória da variável e não da variável propriamente dita. Para isto é preciso utilizar um ponteiro. Fiz da seguinte forma caso alguém precise?
     
    Vinculação da DLL dentro da classe pelo PInvoke:
    <DllImport("c:\SAT\SAT.dll", CallingConvention:=CallingConvention.Cdecl)> _ Public Function ConsultarSAT(ByVal nSessionRandom As Int32) As IntPtr End Function Chamada da função e leitura do resultado na memória: 
    Dim cmdLineStr As IntPtr = ConsultarSAT(Sessao) Dim strResposta As String = Marshal.PtrToStringAnsi(cmdLineStr) MsgBox(strResposta) Agora esta funfando legal e estou indo em frente até o próximo buraco, obrigado a todos que tentaram ajudar.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.